| 文件 | 使用方式 |
|---|---|
| src/chat.ts | getCurrentConfig() 作为 fallback |
| src/chat-enhanced.ts | 同上 |
| src/chat-factory.ts | 通过引擎间接使用 |
| src/web.ts | getCurrentModel/setCurrentModel/getCurrentConfig/getAllModels/resolveModelById 全部正确连接 |
| src/cli.ts | getCurrentConfig() + setCurrentModel() |
| webui/index.html | 前端通过 /api/model/switch 调用后端 setCurrentModel() |
| web/cmdcode-web.html | 前端 switchToModel() 调用 /api/model/switch |
src/commands/model.ts — 6 处 setCurrentModel() 添加handleModelCommand() 自定义模型添加成功 → setCurrentModel(setup.model)handleModelCommand() 用户模型切换成功 → setCurrentModel(modelConfig.model)handleModelCommand() 内置模型添加成功 → setCurrentModel(provider.id)switchModelDirect() 用户模型匹配 → setCurrentModel(modelConfig.model)switchModelDirect() 内置+密钥池存在 → setCurrentModel(provider.id)switchModelDirect() 免费内置 → setCurrentModel(provider.id)src/commands/set.ts — 2 处 setCurrentModel() 添加/set 交互式配置成功 → setCurrentModel(model)/set <key> 快捷设置成功 → setCurrentModel(config.model)src/memory/embedding.ts — 通过 DEFAULT_MEMORY_SEARCH + getEmbeddingApiKey() 独立配置,未接入 useModel.ts,符合要求
✅
修改前,CLI 切换模型(/model, /set)时只更新本地 config 对象和 ChatEngine,不通知 useModel.ts。
⚠️ 这导致:Web UI 看到的当前模型与实际 CLI 使用的模型不一致
⚠️ 新建的 ChatEngine(如 /clear 后)不知道 CLI 已切模型
修改后,所有模型切换路径都调用 setCurrentModel(),确保 ~/.cmdcode/current-model.json 持久化 + 全系统一致。