Skip to content

[P2][sidecar/runtime] agent-runtime IO 批次 #411

Description

@CavinHuang

① settleToolCall 每 tool_result 全量读+重写 items.jsonl(O(N²) IO)

run-observer.ts:276-283 → run-state-store.ts:138-150;c81cb3317 新增。长 run(数百工具调用,items.jsonl 含流式 delta 行直至终态收敛)每条 tool_result 触发整文件 JSON.parse+原子重写。
修法:终态回写并入 finalize 的 compactModelStreamItems 一次完成,或追加 settled 侧车行。

② 总线读路径全文件扫描

thread-event-bus.ts:101-116 hasEvents 读全量只为看首行;resume-handlers.ts:61-70 GET_EVENTS 每次 afterSeq 增量仍整文件读 → 长会话 events.jsonl 每次重开/轮询整读。
修法:hasEvents 只读首块;read 记录文件 offset 增量读。

附(P3,存疑)

崩溃+后台任务 continuation waiting_background 疑似死路:run.ts:426-466 upsert 后 resume-service.ts:89-98 返回"已重新附着",但 workerIdentity/processToken 跨重启是否可再附着未闭环;getPendingResume(agent-handlers.ts:504-512) 只认 interrupted,waiting_background 不出横幅。修法方向:resume 时校验 job 可再附着否则转 dangling-fallback。

来源: 2026-08-22 全栈 review(main@1af3a94

Metadata

Metadata

Assignees

Labels

agent-working并行 agent 处理锁:打标即认领,勿重复处理

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions