Skip to content

feat(composer): 记忆新会话的模型和思考等级 - #712

Open
hui455 wants to merge 1 commit into
vastsa:mainfrom
hui455:feat/remember-composer-model
Open

hui455 wants to merge 1 commit into
vastsa:mainfrom
hui455:feat/remember-composer-model

Conversation

@hui455

@hui455 hui455 commented Sep 20, 2026 •

Copy link
Copy Markdown
Contributor

问题与改动

新会话会回到全局默认模型和思考等级,用户在上一会话中调整后,下次仍需重新选择。现在记住 Composer 中最近主动选择的供应商和模型,并按供应商/模型分别保存思考等级。

  • 新会话和空白首页按“显式草稿 → 最近可用选择 → 全局默认”恢复配置。
  • 切换模型时恢复该模型自己的思考等级;没有记忆时使用模型默认值,恢复时校验当前支持的档位。
  • 删除、禁用供应商或移除模型后回退全局默认。浏览历史会话、修改模式或权限不会更新记忆。
  • 配置失败不更新记忆;运行中接受的下一轮配置会记录,较早请求晚完成时不会覆盖更新的选择。

范围与兼容性

权限继续继承全局默认,不沿用上一会话临时开启的 Auto。已有会话和 Settings 保持不变;修改全局默认不会清空已有记忆。

记忆保存在本机应用配置的 localStorage 中,最多保留 100 组;存储损坏或不可用时回退默认。不改变 IPC、host RPC、Plugin SDK 或数据库结构,无需迁移,不跨设备同步。

同步中英文模型选择规格、E2E-COMPOSER-remember-model-and-thinking 场景及追溯矩阵、docs/adr/remember-composer-model-preferences.md 和未发布变更说明。

验证

基线 aad46adb;Windows、Electron 43.6.0、Node 24.2.0。

  • 相关模型偏好、会话创建、思考等级、配置暂存和菜单测试:54/54 通过。
  • node scripts/e2e-composer-preferences.mjs 通过:真实 Composer 控件、React/store 和 Chromium localStorage,覆盖模型往返、新建会话、重载、权限隔离、失败/过时写入、审批阻塞、运行中暂存和草稿首次创建。
  • 相同步骤在上游基线回到 Alpha/high,改动后恢复 Beta/low;新会话权限均为继承全局默认。
  • pnpm build:js、最终 Desktop build、Desktop typecheck、lint、架构及 diff 检查通过;pnpm docs:check 验证 78 组中英文规格和 491 页文档通过。
  • Desktop 全量测试:2394 通过、45 失败、7 跳过。45 个失败均在独立的原始 aad46adb 基线复现,涉及平台脚本、SSH、发布/打包、插件及既有源契约,未纳入本次修改。

验证边界

自动化使用隔离组件窗口和 host API 夹具,未请求真实模型或使用用户配置;不作为真实 host/provider 端到端验证。未验证原生 macOS/Linux。构建保留已有 CSS 优化与包体积提示;远程 CI 以本 PR 的实际运行结果为准。

本次覆盖 #678 的模型与思考等级记忆,权限记忆不在范围内。

Refs #678

PR 集成候选

任务提交 d81ed2b722778e23fc2f849df1723e90c82c3c65 基于 main aad46adb,提交后重新通过 54 项相关测试、架构检查和 Composer Chromium E2E。

GitHub merge ref 160a5624a8d50dd5d96c450fa604b22d910d7cc4 的 tree 为 ccb7918d4f9f63f02fcc82315aded8b80b05ec02,与上述已验证任务提交完全一致;未重复执行相同代码树的 E2E。

远端 CI 与文档检查正在运行。Vercel 预览需要项目方部署授权,不将其视为代码测试失败或通过。PR 保持打开,等待项目作者审阅并合并。

Keep explicit Composer selections available to subsequent conversations
without rewriting global defaults or propagating session permissions.
Restore reasoning preferences per provider and model, with validated
fallbacks and protection against stale configuration completions.

Refs vastsa#678

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant