Skip to content

fix(agent): 修复网络重试后停止卡死【已审核 PR】 - #1742

Open
Andreaseszhang wants to merge 1 commit into
proma-ai:mainfrom
Andreaseszhang:fix/agent-stop-timeout-202608182143
Open

fix(agent): 修复网络重试后停止卡死【已审核 PR】#1742
Andreaseszhang wants to merge 1 commit into
proma-ai:mainfrom
Andreaseszhang:fix/agent-stop-timeout-202608182143

Conversation

@Andreaseszhang

Copy link
Copy Markdown
Contributor

概述

修复 Agent 在上游 Responses 流异常中断并进入自动重试后,用户点击停止可能导致停止按钮永久变灰、运行状态无法收敛的问题。此前 renderer 会锁定停止按钮并等待 STREAM_COMPLETE,但 utility runtime 可能只接受 abort 请求而未实际结束 query,导致 UI 和底层状态长期不一致。

改动

  • apps/electron/src/renderer/components/agent/AgentView.tsx — 停止期间继续禁止发送新消息以避免竞态,但允许重复下发幂等的停止请求;停止未确认时更新无障碍标签和提示。
  • apps/electron/src/utility/agent-runtime.tsQUERY_ABORT 返回 query 是否在 5 秒内真正完成。
  • apps/electron/src/main/lib/adapters/pi-utility-adapter.ts — abort 超时或 RPC 失败时失败当前事件队列并关闭卡住的 utility runtime,使 orchestrator 能走既有终态收尾。
  • apps/electron/package.json — patch 版本从 0.17.42 升至 0.17.43

测试方法

  1. bun run --filter=@proma/electron typecheck
  2. bun run --filter=@proma/electron build:main
  3. bun run --filter=@proma/electron build:agent-runtime
  4. bun run --filter=@proma/electron build:renderer
  5. 使用 fake runtime client 临时测试验证正常 abort、超时 abort、重复 abort 和 RPC 失败四条路径,结果 4/4 通过;临时测试文件已删除。
  6. 相关现有测试 32/32 通过。

备注

  • 默认 utility runtime 是本修复的目标路径;in-process 调试模式仍依赖 Pi SDK 自身的 abort 行为。
  • 全量测试为 465/469 通过,剩余 4 项是当前 Bun 下 Electron mock/原生 binary 环境限制,与本次改动无关。

Made with Proma · GitHub

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant