Skip to content

fix(agent): 隔离 Pi RPC 控制响应与 Prompt 事件流 - #92

Open
yetuge wants to merge 1 commit into
helsome:mainfrom
yetuge:codex/fix-pi-rpc-control-response-isolation
Open

yetuge wants to merge 1 commit into
helsome:mainfrom
yetuge:codex/fix-pi-rpc-control-response-isolation

Conversation

@yetuge

@yetuge yetuge commented Sep 12, 2026

Copy link
Copy Markdown

改动说明

修复 PiRpcClient 的 RPC 事件分流问题,避免控制命令响应或未知 ID 的过期响应串入唯一活跃 Prompt。

  • 将匹配的控制响应放在 Prompt 事件之前结算,并在处理后立即返回。
  • 控制响应返回 success: false 时正确拒绝对应控制请求。
  • 未命中 Prompt 请求 ID 的 type: 'response' 不再回退到唯一活跃 Prompt。
  • 保留普通 Agent 事件(包括无 ID 或使用消息/工具自身 ID 的事件)的单 Prompt 兼容回退。
  • 强化 abort 流测试,并增加未知 ID 响应与无 ID Agent 事件的回归测试。

关联 Issue

Closes #91

测试报告(正式审核前必填)

环境

  • Bun:1.3.10
  • OS:Windows NT 10.0.26100

实际执行命令与结果

bun test packages/shared/src/agent/pi-runtime-agent-backend.test.ts --isolate
→ 19 passed / 0 failed

bun test packages/shared/src/agent --isolate
→ 59 passed / 0 failed

bun run --filter @finagent/shared typecheck
→ exit 0

bun run typecheck
→ 全部 workspace exit 0

bun test --isolate
→ 967 passed / 384 failed / 8 skipped / 1 error

已知失败 / Baseline(如有)

全仓测试中的失败横跨 MarketDataService、registry、screening、JSON persistence、thesis、Langfuse、Massive provider、UI 等与本改动无关的模块,主要表现为全局 mock/共享测试环境耦合。本 PR 只修改 Pi RPC 内部事件分流及其测试;对应 focused test 和整个 agent 目录测试均全绿,shared 与全仓 typecheck 也全部通过。

本次未在干净的 origin/main 副本上执行完整基线对照,因此这里如实记录全仓结果,不将其描述为全仓测试通过。

  • 已提供实际测试命令与 pass/fail 结果
  • 已说明测试环境
  • 如果存在已知 baseline / 环境失败,已提供 main 对照或说明
  • 核心改动已有对应 focused test / smoke / integration 验证

UI 截图(涉及 UI 时必填)

  • 本 PR 不涉及 UI 变化
  • 已提供修改后的 UI 截图
  • 已提供 Before / After 对比截图(适用时)

Before(适用时)

不适用。

After

不适用。

Scope / 后续

本 PR 仅修复 Pi JSONL RPC 客户端内部的请求关联与事件隔离,不修改 Stream Event v1、renderer/UI、取消传输协议或公共 API。

@helsome helsome left a comment

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

改动范围很小,核心 bug(控制 response / stale response 被误路由进 active prompt)有直接 focused regression coverage,agent 目录 59/0、typecheck 全绿,足以验证这一内部 RPC 修复。全仓大面积失败没有 main 对照,因此不能据此宣称全仓健康,但这些失败与 2-file diff 无明显关联,也不值得要求作者做无关清理。代码可批准;当前 mergeable=false,只需 rebase/解决冲突并在更新后的 head 上跑 focused tests + typecheck/基本 CI。action_required 不作为质量失败。

@yetuge
yetuge force-pushed the codex/fix-pi-rpc-control-response-isolation branch from 033c8b4 to 265b6e3 Compare September 14, 2026 04:09
@yetuge

yetuge commented Sep 14, 2026

Copy link
Copy Markdown
Author

已按建议将分支 rebase 到最新 main8cd5d917),当前 PR head 为 265b6e3,现已无冲突并显示可合并。

已在更新后的 head 上重新验证:

  • bun test packages/shared/src/agent/pi-runtime-agent-backend.test.ts --isolate:19 passed / 0 failed
  • bun test packages/shared/src/agent --isolate:62 passed / 0 failed
  • bun test packages/shared --isolate:907 passed / 0 failed
  • bun run typecheck:5 个 workspace 全部通过

最新 GitHub Actions run 仍为 action_required,尚未生成 jobs/checks,需要上游批准 fork 工作流后才能实际运行。

感谢审核!

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.

[Agent Runtime] 修复 Pi RPC 控制响应串入活跃 Prompt 事件流

2 participants