Skip to content

fix(runtime): persist external tool effects - #89

Open
AsperforMias wants to merge 4 commits into
langgenius:fix/openai-app-server-init-stop-racefrom
AsperforMias:fix/runtime-persist-external-tool-effects
Open

fix(runtime): persist external tool effects#89
AsperforMias wants to merge 4 commits into
langgenius:fix/openai-app-server-init-stop-racefrom
AsperforMias:fix/runtime-persist-external-tool-effects

Conversation

@AsperforMias

Copy link
Copy Markdown

Summary

  • Require a durable external-effect ledger before MCP provider execution.
  • Redeliver saved results after a lost terminal receipt; fence interrupted effects as unknown without a replay.
  • Pass a stable MCP idempotency key and preserve provider metadata as an opaque receipt.

Why

  • Prevents a Driver restart from duplicating a write-capable MCP call.

Verification

  • bun run --filter @mosoo/agent-driver tc
  • bun test tests/driver-runtime-boundary-state.test.ts tests/agent-driver-kernel-lifecycle.test.ts
  • Root integration: just check; just e2e deterministic session-log

Compatibility

  • Driver control protocol moves from v1 to v2; an old Driver is rejected rather than allowed to make an unsafe call.
  • Generic MCP has no standardized reconciliation protocol, so unknown effects deliberately fail closed.

Dependency

  • The parent Mosoo PR will update its submodule pointer after this lands on fix/openai-app-server-init-stop-race.

@AsperforMias

AsperforMias commented Jul 29, 2026

Copy link
Copy Markdown
Author

driver这边的#89先合

@AsperforMias
AsperforMias force-pushed the fix/runtime-persist-external-tool-effects branch from 751d778 to 8e55ce2 Compare July 29, 2026 14:23
@Yevanchen
Yevanchen force-pushed the fix/runtime-persist-external-tool-effects branch from 8e55ce2 to 9cd6c78 Compare July 30, 2026 16:10
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.

2 participants