Add character management and release packaging

This commit is contained in:
2026-06-01 12:46:56 +08:00
parent 4388a168f1
commit 7ffc009307
17 changed files with 1397 additions and 65 deletions
+17 -4
View File
@@ -1394,16 +1394,29 @@ Windows 下不能只拷贝 exe。
8. 便携模式是否可用
```
建议后续提供:
当前提供:
```text
1. Windows x64 Release 构建
2. 打包脚本
3. README 部署说明
4. 示例角色包
4. Inno Setup 安装器脚本
```
第一版可以先不做安装器,但需要保证构建产物可以在普通 Windows 环境运行。
发布流程:
```text
1. 用户手动完成 Release 构建
2. 运行 tools/package_release.ps1,传入 QtDesktopPet.exe 路径
3. 脚本调用 windeployqt 收集 Qt 运行库
4. 脚本复制 resources/characters、resources/icons、LICENSE、README.md
5. 脚本生成 dist/QtDesktopPet-<version>-windows-x64.zip
6. 需要安装器时,脚本优先查找 D:\Inno Setup 7\ISCC.exe,并调用 ISCC 编译 installer/QtDesktopPet.iss
7. 安装器默认最终输出到项目根目录
8. Inno 编译阶段使用当前盘符下的纯 ASCII 临时目录,例如 D:\QtDesktopPetInstallerOutput,避免中文项目路径下出现 EndUpdateResource failed (5)
```
安装器卸载时需要询问用户是否删除用户数据。用户确认后,在卸载完成阶段删除当前用户的 QtDesktopPet 配置、导入角色、聊天记录和日志。
---
@@ -1683,7 +1696,7 @@ MIT License 开源
当前仍需补齐:
```text
1. 角色包导入和角色切换
1. 角色包导出和更完整管理界面
2. 对话历史导出、搜索或更完整管理界面
3. 发布前素材授权确认与打包验证
4. 长期性能压测记录
+6 -3
View File
@@ -84,7 +84,7 @@ cmake -S . -B build/mingw-debug -G Ninja `
## 3. 角色包约定
`resources/characters/shiroko` 目录作为当前默认角色包。角色`resources/characters/<characterId>/` 组织,后续新增角色包时放在同级子目录
`resources/characters/shiroko` 目录作为当前默认内置角色包。内置角色按 `resources/characters/<characterId>/` 组织,用户导入角色复制到 `QStandardPaths::AppDataLocation/characters/<characterId>/`
已检查到的结构:
@@ -504,6 +504,7 @@ tools/
docs/
reports/
build/
dist/
.git/
```
@@ -586,12 +587,14 @@ build/
懒加载当前为状态级首次播放加载,并已接入主线程分批预热和状态级 LRU 卸载;单轮预热不会反复重新加载刚被 LRU 卸载的状态
Windows 下 API Key 使用 DPAPI 加密保存,非 Windows 需用户确认后才允许明文保存
运行时资源优先读取可执行文件同级 resources/,找不到时回退到源码目录 resources/
已支持角色文件夹导入、角色切换和删除用户导入角色:验证通过后复制到用户数据目录,验证失败不做文件操作;内置角色不可删除
已新增 Windows 发布打包脚本和 Inno Setup 安装器脚本;脚本不负责 CMake 构建,安装器卸载时可由用户确认后清理当前用户数据目录
```
当前实现与计划仍存在差异:
```text
1. SettingsDialog 仍是最小设置界面,尚未包含完整角色切换流程和更完整的分区布局
1. SettingsDialog 仍是最小设置界面,角色页已有导入、切换和删除用户角色,但尚未包含导出和更完整角色管理流程
2. 对话历史已有内存上限和可选本地保存,但尚未提供导出、搜索或完整管理界面
3. 状态级懒加载尚未包含后台线程预热、单帧级缓存和长期压测记录
4. README 和开发文档已开始同步当前进度,但仍需随功能继续维护
@@ -639,6 +642,6 @@ build/
```text
1. shiroko 素材是否允许作为正式开源发布素材继续保留在仓库中
2. 设置页下一步先完善角色包配置,还是先补发布打包配置
2. 角色管理下一步是否需要导出、打开用户角色目录
3. 对话历史后续是否需要导出、搜索或按角色/Provider 分组管理
```
+12 -1
View File
@@ -15,7 +15,7 @@
| 显示器 / DPI | TODO |
| Qt 版本 | TODO |
| 角色包 | `resources/characters/shiroko` |
| AppConfig 关键项 | scale=TODO, performanceMode=TODO, pauseWhenHidden=TODO, enableLazyLoad=TODO, enableAnimationPrewarm=TODO, animationCacheLimitMb=TODO, unloadAnimationsWhenHidden=TODO |
| AppConfig 关键项 | characterId=TODO, scale=TODO, performanceMode=TODO, pauseWhenHidden=TODO, enableLazyLoad=TODO, enableAnimationPrewarm=TODO, animationCacheLimitMb=TODO, unloadAnimationsWhenHidden=TODO |
## 采样脚本
@@ -85,6 +85,7 @@ tools/
docs/
reports/
build/
dist/
.git/
```
@@ -99,6 +100,16 @@ LICENSE
README.md
```
安装器卸载验证:
```text
1. 正常卸载时程序文件应删除
2. 选择不删除用户数据时,配置、导入角色、聊天记录和日志应保留
3. 选择删除用户数据时,卸载完成阶段应删除当前用户下的 QtDesktopPet 数据目录
```
安装器最终文件默认放在项目根目录。Inno Setup 编译阶段使用当前盘符下的纯 ASCII 临时目录,例如 `D:\QtDesktopPetInstallerOutput`,再复制最终安装包回项目根目录,用于规避中文项目路径下可能出现的 `EndUpdateResource failed (5)`
运行时资源查找顺序:
```text