fix: seed AI model config at runtime

This commit is contained in:
2026-06-22 17:35:56 +08:00
parent 9a61a432d9
commit 74338c383e
6 changed files with 151 additions and 2 deletions
+1
View File
@@ -108,6 +108,7 @@
2. 打包态(`sys.frozen`)→ `~/.cmbot`(即 `%USERPROFILE%\.cmbot`)。**不依赖启动器注入环境变量**:即使用户绕过 `Launcher.exe` 直接双击 `app\CMBot.exe`,数据也落在 `~/.cmbot`。
3. 开发态 → 项目根(不污染开发者主目录,保持现状)。
- **首次运行播种**:`~/.cmbot/config/app_config.json`、`templates.json`、`ai_models.json` 不存在时,从程序包内 `app\config\` 拷贝对应出厂默认;缺省再退回内置默认(呼应 `docs/09` 第 6 节)。`ai_models.json` 出厂模板不得包含真实 API key,管理员在用户数据目录中填写。
- **新增配置的更新兼容**:启动器当前先执行播种,再应用 `staging\app.new`。因此用户通过自更新换到新版时,播种阶段读取的仍可能是旧版 `app\config\`,新增的出厂配置文件(例如 `ai_models.json`)不会在这次启动被复制。且 `Launcher.exe` 本身不参与自更新,旧 Launcher 也可能不知道新增文件名。新增配置文件必须由**主程序运行时兜底补种**:新版 app 启动或加载配置时,如果 `~/.cmbot/config/<name>` 不存在,应从当前新版 `app\config\<name>` 复制一次,仍不得覆盖用户已有文件。
- 写入配置/模板/日志/输出前按需创建多级目录(`parents=True`)。
数据目录分离与 `~/.cmbot` 约定后续需同步 `docs/05-project-architecture.md` 与 `docs/09` 第 5、6 节的目录说明。