# 模型连接请求定制进度 ## 2026-09-29:执行方式与模型分层选择 设计见[执行方式与模型选择设计](./runtime-selection-design.md)。 ### 已完成(未提交) - 共享选择层契约、`resolveRuntimeChoice` 分层解析及失效回退;移除 `auto`。 - 数据库版本 49 迁移旧选择形状;连接删除后清理所有项目和会话的失效引用。 - Main 每次请求按会话层、项目层重新解析,不回写会话;排队输入在派发时重新解析。 - 项目设置 `ProjectRuntimeSelector`(本地、远程、通道共用),输入框两栏 `RuntimeModelPicker`;系统设置恢复各 Runtime 页签的默认模型选择。 - 选择器修复:模型列不再与底栏重叠,长名称单行截断;“管理模型连接…”直接打开模型连接分类。 ### 已验证 - `npm run typecheck` 与相关文件 eslint 通过。 - Main、Shared、Daemon 测试集通过;`App.test.tsx` 与 `WorkspacePrimitives.test.tsx` 350 项中 349 项通过,唯一失败为既有不稳定用例“renders, saves and reloads OpenCode answers across question rounds”,单独运行通过。 ### 待办 - 在运行中的应用里目测两栏选择器(窄窗口、深色主题、长名称)。 - 移除全局 `provider`,见[设计第 6 节](./runtime-selection-design.md#6-全局-provider历史遗留待移除)。 - 用途模型,见[设计第 7 节](./runtime-selection-design.md#7-用途模型规划未实现)。 ## 2026-09-27:窄容器协议显示 连接管理布局改用命名容器查询,不超过 `640px` 时列表和表单上下排列;移除原先仅在 窗口不超过 `720px` 时切换的规则。LLM、向量连接及角色编辑共用同一布局样式。 Windows Electron 验证覆盖 `680/720/721/740/960/1180px` 窗宽、短窗口、中英文及浅深 主题;另在 `1180px` 窗口中单独缩窄设置面板,确认布局由实际容器宽度决定。 协议文字完整、表单无横向溢出,原生 Tab 与方向键可选择并还原协议。没有保存配置或发送 模型请求。验证命令、截图说明和未测范围见 [窄容器布局修复记录](../../quality/responsive-controls-review-2026-09-27.md)。 ## 2026-09-20:模型设置可用性修复 - 模型接口 URL 保存失败时按连接名称显示错误,URL 字段同步提供 `aria-invalid` 和就地 错误;共享契约同时拒绝空值、非 HTTP/HTTPS 地址和超长地址。 - 模型连接分类标题与 LLM、向量、重排、语音分段页签在模型内容滚动时共同固定;自定义 Header/Body 默认收纳在折叠的“高级设置”中,无效时自动展开。 - LLM 连接新增复制入口。复制保留当前草稿、请求定制和认证设置;已保存 API Key 由 Main 进程从加密凭据复制,不进入 Renderer 或错误信息。 - 已新增 SettingsPanel 与 RuntimeSettingsStore 回归覆盖;完整验证结果见后续条目。 ## 2026-09-11:发布前固定模型说明修复 - 项目已保存固定 Runtime 模型时,恢复显示实际固定模型的帮助文字,保留简化后的菜单; 规则见 [会话与项目 Runtime 选择](./ui-design.md#会话与项目-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 节](./technical-design.md#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/acp` capability 已提升为 v5。 - 功能入口、支持矩阵、合并优先级、普通设置存储边界和协议版本已写入功能文档及双语 `FEATURES`。 ### 已验证 - `npm run typecheck` - `npm 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 上的受管远程模型请求。