fix: complete runtime and workspace workflows
Restore Ask workspace reads and output paging without granting write access, and let programming Subagents reuse their parent's browser page. Allocate browser resources only when used, keep Agent pages aligned with workbar tabs, recover released bindings, and remove unused automatic screenshot work. Preserve inherited Runtime selections during remote usage persistence and manual compression. Keep viable channel model fallbacks, display the actual scheduled-task mode and Harness model source, and avoid rediscovery delays when calling healthy MCP tools. Fix directory/history refresh, case-only renames, rename-aware commit diffs, and FastGPT probe success reporting. Add regression coverage and align feature documentation. The Agent-side connection timeout fix requires deploying an updated Agent; existing Ask read-only and Execute authorization boundaries remain unchanged. Final validation: 3839 tests passed, 66 skipped; typecheck, lint, development build, and diff checks passed. Isolated Electron UI/MCP workflows passed with a loopback model fixture. Current-source Linux x64 Host checks passed with three successful real model requests. Chromium loadURL rejection was not reproduced in the UI; released-binding recovery has automated coverage. Release note: 修复 Ask 读取项目文件、浏览器页面显示与恢复、文件管理及模型配置跟随中的不一致,并减少无用截图和 MCP 等待。定时任务显示实际工作模式,远程会话可正常保存继承 Runtime 的用量;远端连接超时修复需更新 Agent 后生效。
This commit is contained in:
@@ -12,6 +12,10 @@ Provider 要求的附加元数据;GoodBuddy 只在直连链路或 Runtime 明
|
||||
| [技术设计](./technical-design.md) | 契约、持久化、合并优先级、Runtime 支持矩阵和验证 |
|
||||
| [功能进度](./progress.md) | 已验证实现、剩余工作和验证证据 |
|
||||
|
||||
模型连接选择准确性也在本目录维护:技术设计第 8 节定义通道直连回退修复,
|
||||
UI 设计末节定义 Harness 来源标签和公开设置展示;Harness 的实际解析顺序由其
|
||||
[技术设计](../deepseek-harness/technical-design.md#121-配置来源)唯一维护。
|
||||
|
||||
本次改动是现有模型连接的有界扩展,不新增独立业务对象或工作流,因此不单独建立 PRD、
|
||||
User Stories 和逻辑设计;本页定义产品边界,技术设计定义唯一的请求合并规则。
|
||||
|
||||
|
||||
@@ -1,5 +1,23 @@
|
||||
# 模型连接请求定制进度
|
||||
|
||||
## 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
|
||||
|
||||
### 已完成
|
||||
|
||||
@@ -85,3 +85,33 @@ JSON 对象,标准认证 Header 也由 schema 拒绝。
|
||||
Utility 启动配置和 Pi-AI Provider 配置。
|
||||
- 远程:Main/Agent 网关合并、认证优先级、摘要绑定、大小限制和不重放。
|
||||
- UI:默认值、保存、无效 JSON 保留和 Runtime 支持说明。
|
||||
|
||||
## 8. 通道直连模型选择修复
|
||||
|
||||
`repairChannelRuntimeSelection` 只在默认连接可用于文本通道时保留动态
|
||||
`{ provider: 'model' }`。默认连接为图像生成、API Key 认证但明确缺少凭据,或默认 ID
|
||||
已不存在时,若找到可用文本连接,修复结果必须携带该连接的 `profileId`,使后续
|
||||
`applyRuntimeSelection` 使用已验证回退,而不是重新解析到不可用的全局默认值。
|
||||
已有可用显式引用保持不变;没有可用连接时不虚构 ID 或声称可运行。
|
||||
|
||||
共享回归测试将修复结果直接传入 Main 的生产 resolver,验证动态默认、显式固定、
|
||||
图像默认、缺少凭据和失效默认 ID。该修复不改变 OpenCode、Continue 或托管 SSH 的
|
||||
Runtime 选择路径。
|
||||
|
||||
## 9. Harness 平台来源公开投影
|
||||
|
||||
`RuntimeSettings.deepseekHarnessPlatformModel` 是可选只读元数据,描述 `platform`
|
||||
选项在当前已保存模型设置与管理员环境下的实际解析结果:
|
||||
|
||||
- `{ source: 'environment', name, modelName }`:使用完整管理员预置。
|
||||
- `{ source: 'profile', profileId, name, modelName }`:使用兼容 GoodBuddy 连接回退。
|
||||
- `{ source: 'unavailable' }`:没有可解析的连接。
|
||||
|
||||
Main 的 `toPublicSettings` 复用 `resolveDeepSeekHarnessModelProfile`,只在调用中将来源
|
||||
设为 `platform`,不改变用户已保存的 `default`、`profile` 或 `platform` 选择。投影逐字段
|
||||
构造,不包含地址、API Key、自定义 Header/Body 或凭据状态,不写入设置文件、迁移或新状态。
|
||||
公开契约保持可选,缺失时 UI 明确来源信息不可用,不从通用模型或环境凭据猜测。
|
||||
|
||||
`source: 'profile'` 描述来源分支,不代表凭据来源:仅环境密钥或旧环境变量可能仍影响该
|
||||
GoodBuddy 连接,但不会被误报为完整管理员预置。连接解析不代替真实模型请求或可用性测试。
|
||||
UI 的未保存兼容候选只作草稿预览,保存后继续以 Main 返回的投影为准。
|
||||
|
||||
@@ -36,3 +36,20 @@ OpenCode 与 DeepSeek Harness 不使用该值。
|
||||
- 无效状态不能只依赖颜色,必须同时提供错误文字和 `aria-invalid`。
|
||||
- 文本域遵循标准键盘编辑、选择、复制和粘贴行为;保存继续使用设置页唯一的主保存操作。
|
||||
- 焦点边框、字体、间距、颜色和深浅主题全部复用全局语义令牌。
|
||||
|
||||
## Harness 模型来源展示
|
||||
|
||||
DeepSeek Harness 的 `platform` 选项命名为“管理员环境优先,回退 GoodBuddy 兼容连接”,
|
||||
不能沿用 OpenCode/Continue 的“Runtime 自有配置”标签。来源规则以
|
||||
[Harness 模型配置](../deepseek-harness/technical-design.md#121-配置来源)为准。
|
||||
帮助文字与选择器通过 `aria-describedby` 关联,并明确此选项不加载用户 profile 或
|
||||
配置文件;无兼容 GoodBuddy 连接时仍可选择管理员环境来源。
|
||||
|
||||
概览使用 Main 提供的[平台来源投影](./technical-design.md#9-harness-平台来源公开投影),
|
||||
明确显示实际管理员预置模型,或“未配置完整的管理员预置”及已保存兼容回退的名称与模型;
|
||||
没有可解析连接时显示明确空状态,但保留 `platform` 选项。不得从通用模型名称或
|
||||
`credentialSource` 猜测管理员来源,也不得显示密钥或读取 Main 环境。
|
||||
|
||||
没有管理员覆盖且草稿兼容候选发生变化时,额外显示“草稿兼容候选(未保存)”,保留实际
|
||||
已保存来源;草稿失去兼容连接时也明确说明。管理员覆盖生效时不把草稿回退显示为实际模型。
|
||||
保存完成后以 Main 重新解析的投影刷新概览。
|
||||
|
||||
Reference in New Issue
Block a user