Files
goodbuddy/docs/features/assistant-workbar/progress.md
T
mesalogo c82d0161a9
GoodBuddy Agents / Validate Agent source (push) Canceled after 0s
GoodBuddy Agents / Build darwin arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux arm64 Agent (push) Canceled after 0s
GoodBuddy Agents / Build linux x64 Agent (push) Canceled after 0s
Cross-platform packages / Validate source (push) Canceled after 0s
Cross-platform packages / Authorize desktop packaging (push) Canceled after 0s
Cross-platform packages / linux arm64 (push) Canceled after 0s
Cross-platform packages / macos arm64 (push) Canceled after 0s
Cross-platform packages / windows arm64 (push) Canceled after 0s
Cross-platform packages / linux x64 (push) Canceled after 0s
Cross-platform packages / macos x64 (push) Canceled after 0s
Cross-platform packages / windows x64 (push) Canceled after 0s
Cross-platform packages / Publish GitHub and OSS release (push) Canceled after 0s
fix: show accurate request status in message footers
Requests could appear to keep working while OpenCode waited to retry, and
retry backoff was described as an active attempt. Report native OpenCode
retry timing, distinguish direct-model backoff from dispatch, and show
preparation, tool activity, pending input, and terminal states accurately.

Keep only the message-footer indicator static. Conversation-list activity
indicators, send/stop controls, retry limits, and command replay behavior
remain unchanged. Align the feature documentation with verified behavior.

Validation: 3618 tests passed, 61 skipped; typecheck and lint passed.
Isolated desktop validation used five real text-model calls across three
profiles, with controlled local fault injection for retry transitions.

Release note: 消息底部现在准确区分请求准备、等待重试、开始重试和需要回答的状态,不再用闪烁暗示仍有进展;会话列表闪点及发送、停止行为保持不变。
2026-09-08 22:47:06 +08:00

9.5 KiB
Raw Blame History

工作栏实现与验证进度

2026-09-08 消息底部请求状态

  • 已接入本机 OpenCode 父会话的原生重试等待及开始事件;直连模型把退避等待与实际发起 重试分开显示,Continue 初始文案改为中性的请求处理。显示规则和未接入边界见 消息底部请求状态。
  • 消息底部按真实事件显示准备、工具、待回答及终态;有新进展时清除旧状态,结束后不 接受迟到状态覆盖。仅该处状态点改为静态,会话列表闪点、发送和停止按钮未改动。
  • Windows 隔离开发桌面通过实际 UI 发送验证 OpenCode 的 503/Retry-After 等待、 原生重试开始、真实模型回复与完成;直连模型通过派发前连接拒绝、500 ms 等待、 重试、真实回复与完成。故障由本机测试代理注入,不冒充服务商实际故障。 三个隔离测试配置总计 5 次真实文本模型调用;另有一次直连重试被测试代理的调用 上限明确拒绝,界面正确显示失败,最终单次补测完成。未执行用户命令或修改安装版。
  • DOM 状态记录确认底部无闪烁、完成后无旧重试文案,浅色截图可见原生重试计划与原因; 底部 WCAG 2 A/AA 定向检查无违规。最小化窗口的补充截图超时,未作为通过证据。 隔离窗口及测试代理已结束。
  • 最终 npm test -- --reporter=json --outputFile=<临时报告路径> 为 3618 项通过、 0 项失败、61 项按平台或手动条件跳过;首轮的压缩状态旧断言已修正,途中被用户中断 的运行不计为通过。npm run typecheck、npm run lint、 npm run release:notes:verify、差异空白与相关文档相对链接检查通过。

2026-09-08 Desktop 0.12.8 安装包修复

  • 真实 0.12.7 安装目录确认 OpenCode 配置缺少整个 node_modules。新增测试调用实际 electron-builder 资源复制器,复现相同 ENOENT;把复制源上移到 .runtime-resources 后,插件及传递依赖逐文件复制验证通过。
  • 真实安装的 DSH bootstrap 存在 dsh-session-projection 外部导入,而 Host 解包目录没有 对应依赖。将其加入 Vite bundling,配置回归从失败转为通过;最终包会拒绝同类外部导入。
  • Windows x64 CI 已接入包内 OpenCode 插件导入、真实 DSH UtilityProcess 握手及 npm 探针,位于解包目录清理和发布之前。用户要求不做本地打包;CI 探针结果尚待本候选执行, 不能把当前源码回归通过当作真实发布包已通过。
  • 本次不改变 Agent 0.11.21 源码或包。macOS 改为 DMG-only,用户明确接受旧版客户端 手动升级影响;格式与发布规则见发布手册。

2026-09-08 Execute 目录权限等待修复

  • 本机 OpenCode 的内部配置显式允许默认工具权限;每次 Ask 仍设置 deny-all 会话规则并 禁用工具,当前请求精确分配的只读能力例外。Execute 不把 Workspace 当作目录边界。
  • permission.asked 不再忽略所有非父会话事件。Main 用 OpenCode Session 的 parentID 确认属于当前请求的子孙会话后按当前模式回复;其他并行会话不受影响,同一请求只回复 一次。子会话权限不伪装为父会话中的待完成工具。
  • 真实 OpenCode 1.18.9 和候选 1.18.29 均已通过本地确定性模型驱动的原生 Task 工作区外读取回归;同一 Runtime 的 Ask 仍不暴露文件与命令工具。
  • Continue 1.5.47 的真实 CLI 已通过 Execute Shell 写入工作区外测试文件;DSH 固定 Host 已通过 Execute 工作区外写入、随后 Ask 拒绝同一写工具,未增加权限策略或人工审批。
  • 真实 OpenCode 1.18.29 已完成原生 Task 后的 yes/no 与自由文本问答回传;父、子会话 提问及后台任务不能交互时的失败路径均有回归测试。Continue 真实 AskQuestion 暴露了 QuizService 扁平数据结构与原适配器不一致的问题,现已按锁定版本修正;真实自由文本 回传、yes/no、选项及跳过均验证通过,自定义答案不再误标为选项。
  • DSH 活跃 Execute 的 ACP 权限回调不再等待第二次 authorizer,Ask 继续拒绝;未添加 通用业务问答工具或从终端日志猜测确认意图。完整范围见 Runtime 交互边界。
  • 当前源码 Linux x64 Agent 通过签名组包、生产安装、真实 Ask/Execute、原生子代理 工作区外写入、重连同一 daemon 和 stop/bootstrap。实机回归同时定位并修复了握手 Base64URL 响应误用 ID 校验及断流未结算等待;13 项 Unix 原生端点测试和连续 20 次 握手通过。两轮真实模型调用合计 10 次,均 completed;本轮测试 Agent 已停止。
  • 最终完整回归使用 npm test -- --reporter=json --outputFile=<临时报告路径>,并通过 GOODBUDDY_TEST_OPENCODE_BINARY 指向已验证版本的候选 OpenCode。结果为 338 个文件、 3597 项通过、0 项失败、61 项按平台/手动条件跳过,报告 success=true、退出码 0; Windows 跳过的 Unix 端点场景另在 Linux Host 运行了上述 13 项原生测试。
  • 最终 npm run typecheck、npm run lint、npm run release:notes:verify 和差异空白检查 通过,相关 Markdown 相对链接有效。此前失败、暂停及控制台截断的回归记录由本次完整 JSON 报告覆盖,不代表仍有测试失败。未执行系统休眠/唤醒或本地桌面生产构建、打包; 后续发布仍需对应候选的 CI 构建和跨平台验证。

2026-09-08 OpenCode 复用与原生控件恢复

  • OpenCodeRuntime 仅在没有活动请求时探测缓存的 embedded server;活动对话或 Compact 期间直接复用服务,避免新会话的一次短探测失败关闭其他会话正在使用的进程。 空闲探测失败时仍清除旧 client 和会话映射并重建;并发调用共享检查与重建。 进程退出或服务关闭会中止绑定它的对话与 Compact,事件流重连等待也可立即取消, 请求明确报错,不自动重放已执行命令。本次修复后的真实模型验证共 6 次:正常并发、 已复现场景下的共享服务保护均正常完成;主动结束测试进程后旧请求明确失败,新请求 在替换服务上完成。此前“新会话完成、旧会话持续等待”的故障不再出现。
  • 请求级 MCP 注册与断开通过实例内 mutateMcp 队列串行执行。仅实际发出 mcp.add 的名称进入清理列表;注册尚在排队时取消不追加断开。断开的 1 秒超时从出队后开始。
  • App 按本机/远程、连接方式、项目和 Runtime 选择组成 scope 缓存原生清单,用请求 代次阻止旧 scope 结果回写;同 scope 会话刷新不清空重取,切换会话重置消息级选择, Runtime 切换状态也按 generation 隔离。清单请求失败或返回 unavailable/partial 时保留已有可用缓存并有界重试;没有可用缓存时保留新返回的部分数据,因此 unavailable 重试为可用 partial 后可显示 Agent 和 Command。

验证记录:首轮定向测试 273 项通过、5 项跳过;补充修复后的 Runtime 与生命周期测试 77 项通过,界面定向测试 6 项通过,类型检查通过。修复前的 lint 检查通过。 全量测试超过 120 秒被终止,期间出现一项 DS 本地 stdio MCP 测试失败,尚待定位。 这是当次历史结果。后续发布前修复与实机验证见本文上方及 远程主机技术设计;真实系统休眠恢复仍未完成验证。

2026-09-06 项目工作区

范围见 PRD 工作区。

当前源码已移除重复标题与底部完整 Diff 入口,使用彩色 Git 状态字母,点击更改项读取 单文件 Diff。已暂存与未暂存差异分开展示;本机 Git 测试覆盖无首次提交、未跟踪、 暂存后继续修改、重命名、删除及包含方括号的路径。Git 刷新驱动目录树重新读取,保留 展开状态;SSH 项目不提供本机系统打开按钮。审查后补齐了当前 Diff 随刷新重读、 旧请求结果失效,以及超过 50 项变更的继续加载入口。

验证记录:

  • 最终 npm run typecheck、npm run lint、npm run build 均通过。
  • 工作区专项 7 个测试文件复跑:317 项通过,3 项 Linux 专用测试在 Windows 跳过。 任务完成测试同时检查目录树出现新文件。
  • 最终 npm test:326 个测试文件、3552 项测试通过,9 个文件、58 项测试按既有条件 跳过。复核首轮曾有一项浏览器地址草稿测试超时,单独复跑及最终全量复跑均通过; 更早的超时/失败记录不再作为最终验收结果。
  • 后续复核已通过既有凭据和固定 Host Key 经 VPN 连接共享 Linux x64 Host,使用当前 源码构建的隔离 Agent 包安装并启动。真实 RemoteWorkspaceAccess → Agent git/status 与 git/diff 路径覆盖暂存后继续修改、删除、重命名、未跟踪和方括号路径;均通过。 Git 验证未调用模型。
  • Windows 隔离桌面实例已通过真实点击验收:当前项目单文件暂存/工作树 Diff 分组与 增删颜色正确,修改测试文件后点击刷新可更新正在查看的 Diff,53 项变更经加载更多 全部可访问。截图留在本地验证目录,不纳入产品包。

目录分页、任意目录切换和 HTML 预览不在本轮改动范围内。