Files
mnote/bugs/03-rust-web/process/3-21-acp-run-payload-consumed-and-removed-v1.md
T
lix-2026 3311bd0366 chore: document architecture gaps and add dev hot reload
- add npm dev:hot wrapper using cargo-watch and page reload polling

- add mnote-web dev hot reload endpoint and coverage

- record current architecture review and tracked bug findings across realtime, tree, editor, and AI runtimes

Verification:

- node scripts/task-dev-hot-plan-test.js

- node --check scripts/dev-hot.js

- cargo test -p mnote-web dev_hot -- --nocapture
2026-05-17 23:09:56 +08:00

1.1 KiB

3-21 [process][bug] ACP run payload 被第一次 stream_events 消费后移除 v1

发现时间:2026-05-17

状态:[process]

关联主线:03-rust-web

1. 问题定义

ACP run 的 payload 在 stream_events 路径被消费后从内存表移除。刷新页面、多个 SSE 订阅、断线重连时,后续订阅可能无法再取到同一个 run 的 payload。

2. 证据

  • hermes_client.rs 进入 stream_events
  • ACP 分支中存在 ACP_RUN_PAYLOADS.remove 语义,payload 生命周期与第一次 stream 订阅绑定。

3. 影响

  • 浏览器刷新或 SSE 重连可能导致同一 run 无法恢复。
  • 多个客户端观察同一 run 时只有第一个订阅者成功。
  • abort / retry / reconnect 语义不可靠。

4. 建议修复

  • payload 应有 run 级持久生命周期,至少保留到 run completed / failed / aborted 后短 TTL。
  • stream subscription 不应拥有 payload 的删除权。
  • 增加 SSE 断线重连与重复订阅测试。

5. 状态

已确认 payload 生命周期与 stream 订阅耦合,尚未修复。