Files
goodbuddy/docs/features/model-connections/progress.md
T
mesalogo 9c88ca20f3 feat: layer runtime and model selection across conversation, project and global
- 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.
2026-09-29 21:33:06 +08:00

7.4 KiB
Raw Blame History

模型连接请求定制进度

2026-09-29:执行方式与模型分层选择

设计见执行方式与模型选择设计。

已完成(未提交)

  • 共享选择层契约、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 节。
  • 用途模型,见设计第 7 节。

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/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 上的受管远程模型请求。