- Store runtime selection as { provider?, model? } layers and resolve them per
field (conversation -> project -> global); drop the legacy auto provider.
- Migrate stored selections (database v49) and clear deleted profile ids.
- Re-resolve selections in Main per request and at queue dispatch.
- Add ProjectRuntimeSelector and a two-column RuntimeModelPicker; manage
link opens model connections; restore per-runtime default model tabs.
- Stop duplicating trusted instructions and history across OpenCode,
Continue and DeepSeek Harness runtimes.
- Document the layered design, global provider removal plan and planned
purpose-specific models.
7.4 KiB
7.4 KiB
模型连接请求定制进度
2026-09-29:执行方式与模型分层选择
设计见执行方式与模型选择设计。
已完成(未提交)
- 共享选择层契约、
resolveRuntimeChoice分层解析及失效回退;移除auto。 - 数据库版本 49 迁移旧选择形状;连接删除后清理所有项目和会话的失效引用。
- Main 每次请求按会话层、项目层重新解析,不回写会话;排队输入在派发时重新解析。
- 项目设置
ProjectRuntimeSelector(本地、远程、通道共用),输入框两栏RuntimeModelPicker;系统设置恢复各 Runtime 页签的默认模型选择。 - 选择器修复:模型列不再与底栏重叠,长名称单行截断;“管理模型连接…”直接打开模型连接分类。
已验证
npm run typecheck与相关文件 eslint 通过。- Main、Shared、Daemon 测试集通过;
App.test.tsx与WorkspacePrimitives.test.tsx350 项中 349 项通过,唯一失败为既有不稳定用例“renders, saves and reloads OpenCode answers across question rounds”,单独运行通过。
待办
2026-09-27:窄容器协议显示
连接管理布局改用命名容器查询,不超过 640px 时列表和表单上下排列;移除原先仅在
窗口不超过 720px 时切换的规则。LLM、向量连接及角色编辑共用同一布局样式。
Windows Electron 验证覆盖 680/720/721/740/960/1180px 窗宽、短窗口、中英文及浅深
主题;另在 1180px 窗口中单独缩窄设置面板,确认布局由实际容器宽度决定。
协议文字完整、表单无横向溢出,原生 Tab 与方向键可选择并还原协议。没有保存配置或发送
模型请求。验证命令、截图说明和未测范围见
窄容器布局修复记录。
2026-09-20:模型设置可用性修复
- 模型接口 URL 保存失败时按连接名称显示错误,URL 字段同步提供
aria-invalid和就地 错误;共享契约同时拒绝空值、非 HTTP/HTTPS 地址和超长地址。 - 模型连接分类标题与 LLM、向量、重排、语音分段页签在模型内容滚动时共同固定;自定义 Header/Body 默认收纳在折叠的“高级设置”中,无效时自动展开。
- LLM 连接新增复制入口。复制保留当前草稿、请求定制和认证设置;已保存 API Key 由 Main 进程从加密凭据复制,不进入 Renderer 或错误信息。
- 已新增 SettingsPanel 与 RuntimeSettingsStore 回归覆盖;完整验证结果见后续条目。
2026-09-11:发布前固定模型说明修复
- 项目已保存固定 Runtime 模型时,恢复显示实际固定模型的帮助文字,保留简化后的菜单; 规则见 会话与项目 Runtime 选择。
npm exec vitest run src/renderer/src/ProjectRuntimeSelector.test.tsx:2 项通过, 覆盖中英文下 OpenCode、Continue、DeepSeek Harness 的固定选项及恢复跟随操作。npm test:343 个文件、3,911 项通过,66 项按平台或手工/真实服务条件跳过;npm run typecheck、npm run lint、npm run release:notes:verify通过。- 本次新增修复仅影响 Renderer 帮助文字,未修改共享模型解析、Desktop-to-Agent 请求、 Agent 或 Runtime 启动实现;不需要单独远程修复。真实模型调用 0 次,未运行真实 Host 或桌面端到端模型会话。本地未构建或打包,发布候选生产构建由主分支 CI 验证。
2026-09-10:配置准确性修复
- 通道直连回退修复已按技术设计第 8 节 实现;测试把修复结果交给现有 Main resolver,不仅断言返回对象。
- Harness 设置使用专用来源标签、关联帮助及 Main 直接从生产 resolver 派生的只读
deepseekHarnessPlatformModel投影;准确区分完整管理员预置、兼容回退和无连接, 不再从通用环境凭据状态推断。投影不含地址、密钥或请求定制,也不写入设置文件。 - 无兼容连接时管理员来源仍可选择;未保存候选与实际已保存来源分别展示。UI 验证涵盖 中英文、兼容默认、首个兼容回退、管理员覆盖、部分环境回退、无连接、草稿预览和保存动作。
- 聚焦命令
npx vitest run src/main/agent/runtime-selection-contracts.test.ts src/renderer/src/SettingsPanel.test.tsx对应的两个文件在本次五文件联合运行中全部通过,共 96 项。真实模型调用 0 次; 本次未运行全量测试、typecheck、lint 或真实 Harness 请求。 通道修复集成测试随后归入 Main 测试目录,避免 Shared/Web 类型项目导入主进程实现。 - 后续聚焦验证
npx vitest run src/main/runtime-settings-store.test.ts src/renderer/src/SettingsPanel.test.tsx全部通过:2 文件、181 项。Store 覆盖完整、部分与旧环境变量、默认/首个兼容回退、 无连接、精确字段白名单、非持久化以及不改变所选来源。真实模型/Host 调用均为 0; 未运行全量测试、构建、typecheck 或 lint。
2026-09-03
已完成
- 模型连接设置、v20 → v21 迁移、公开与 resolved profile 已接入有界自定义 Header/Body。
- 设置页已提供两个 JSON 编辑器、就地校验、保存阻止、普通设置存储提示和 Runtime 支持范围。
- 直连连接测试、文本、工具、摘要和图像请求已统一采用 Runtime 优先的浅合并。
- Continue 1.5.47 已通过原生
requestOptions.headers与extraBodyProperties接入两项配置。 - bundled OpenCode 已通过 Provider
options.headers接入 Header,并确认没有发送未支持的 自定义 Body。 - DeepSeek Harness 已通过控制协议 v3 把 Header 交给 Pi-AI Provider,没有接入未支持的 自定义 Body。
- Main 与 Agent 远程模型网关已接入 Prompt-scoped Header/Body;
runtime/acpcapability 已提升为 v5。 - 功能入口、支持矩阵、合并优先级、普通设置存储边界和协议版本已写入功能文档及双语
FEATURES。
已验证
npm run typechecknpm run lint- 20 个聚焦测试文件:527 项通过,4 项按环境跳过。
- 全量
npm test:326 个测试文件通过,8 个文件按环境跳过;3506 项通过,55 项跳过。 - bundled OpenCode 与 Continue 分别对 loopback Provider 验证 Chat Completions 和 Responses。4 项原生探针全部通过:两者都发送自定义 Header;Continue 发送自定义 Body; OpenCode 不发送不支持的 Body。
- Main/Agent 远程网关测试验证了合并优先级、认证优先、profile digest 绑定和单次分发。
- 三路清理审查完成;已复用共享协议路径、Header 规范化、ACP capability 常量和 JSON 类型,并为 Renderer JSON 草稿增加解析前长度上限。
待验证
- 生产
npm run build。 - 最小真实模型 Header/Body 探针。
- DeepSeek Harness 真实 Provider Header 探针。
- 当前源码 Agent bundle 在共享 Linux x64 Host 上的受管远程模型请求。