Files
mnote/bugs/old/03-rust-web/done/3-19-acp-reasonix-tool-call-missing-identity-fields-v1.md
T
Agent Board b798f628ee chore: land tree view-state, vault, Pi module split, and repo hygiene
Persist PageTree expand state via control-plane view-state and align
chevron/DOM with restored expansion; keep Sidex-style shallow page-tree
scan and drop the unused recursive scanner that only added cargo noise.

Add password vault workbench routes/runtime/skill/CLI, split page_ai_pi
into a module package, and retire Hermes/ACP/OpenHub recycle + root
harness evidence from the index while gitignoring recycle and local
diag dumps.

Archive superseded design/bugs docs under old/, point architecture at
ARCHITECTURE.md, and refresh smokes for Pi S1–S7, vault, and editor
regressions so the working tree can stay clean.
2026-07-21 05:13:05 +08:00

2.6 KiB
Raw Blame History

[recycle] 3-19 [done][bug] Reasonix ACP wrapper 调 mnote tool 缺少身份与幂等字段 v1

发现时间:2026-05-17

状态:[done]

关联主线:03-rust-web

1. 问题定义

Reasonix ACP wrapper 调用 mnote tool 时只发送 toolNameargsworkspaceId,没有传递 actorIdsessionIdrunIdtoolCallIdtraceIddryRunidempotencyKey 等工具合同字段。

2. 证据

3. 影响

  • Rust tool executor 难以稳定进行鉴权、审计、追踪和幂等。
  • 写工具可能被拒绝,或在缺少幂等键时产生重复写入风险。
  • Reasonix 与 Hermes 对同一 tool 的调用合同不一致。

4. 建议修复

  • wrapper 必须从 ACP run/session 中透传 actor、session、run、toolCall、trace、dryRun、idempotency 字段。
  • 写工具缺失必要字段时应 fail fast。
  • 增加 Reasonix 端到端 smoke,断言请求字段完整。

5. 修复

已修复:

  • reasonix-acp-wrapper.mjs 新增 buildMnoteToolPayload,统一构造 mnote tool 请求体。
  • reasonix-acp-wrapper.mjs tool payload 现在包含 actorIdsessionIdrunIdtoolCallIdtraceIddryRunidempotencyKeyworkspaceIddocumentId
  • reasonix-acp-wrapper.mjs HTTP 请求头同步携带 x-mnote-actor-idx-mnote-workspace-id
  • reasonix-acp-wrapper.mjs ACP session/prompt 期间通过 AsyncLocalStorage 保存 mnote tool contexttool 调用继承 run/session/actor/trace。
  • acp_types.rs SessionPromptParams 扩展可选 mnote 上下文字段。
  • acp_session_manager.rs 增加 run_prompt_with_mnote_context
  • hermes_client.rs ACP Reasonix prompt 启动时透传 mnote session/run/actor/trace/workspace/document 上下文。

6. 验证

node --check scripts/reasonix-acp-wrapper.mjs
MNOTE_REASONIX_ACP_SELFTEST=1 node scripts/reasonix-acp-wrapper.mjs
cargo test --manifest-path rust/Cargo.toml -p mnote-web acp_session_manager -- --nocapture

结果:JS 语法检查通过,wrapper selftest 通过,ACP session manager 5 个测试通过。