Skip to content

feat(acp): dispatch dynamic tools through websocket#619

Closed
gaofeng21cn wants to merge 1 commit into
iOfficeAI:mainfrom
gaofeng21cn:codex/dynamic-tool-dispatch-20260715
Closed

feat(acp): dispatch dynamic tools through websocket#619
gaofeng21cn wants to merge 1 commit into
iOfficeAI:mainfrom
gaofeng21cn:codex/dynamic-tool-dispatch-20260715

Conversation

@gaofeng21cn

@gaofeng21cn gaofeng21cn commented Jul 15, 2026

Copy link
Copy Markdown

Summary

  • add typed WebSocket registration, call, result, and acknowledgement messages for Codex dynamic tools
  • bind registrations to conversation, connection, generation, ACP thread, and turn identity
  • dispatch ACP extension requests through the owning WebSocket and fail closed for unknown, ambiguous, stale, disconnected, timed-out, or mismatched results
  • clean registrations and pending calls deterministically on WebSocket disconnect without logging tool arguments or result bodies

Protocol

This is the AionCore host half of agentclientprotocol/codex-acp#301.

WebSocket events:

  • agent.dynamicToolsRegister
  • agent.dynamicToolsRegistered
  • agent.dynamicToolCall
  • agent.dynamicToolResult

ACP session metadata uses codex/dynamic_tools; the extension request is codex/dynamic_tool_call. Ambiguous ownership is sticky fail-closed: disconnecting one claimant does not resurrect another claimant; a new explicit registration is required.

Validation

Validated on e1e022c9e327870bebefa26e417dc5f482349e10:

  • API dynamic type tests: 2 passed
  • dynamic registry tests: 5 passed
  • realtime tests: 81 passed
  • App WebSocket E2E: 21 passed
  • AI agent suite: 617 passed
  • affected crate strict clippy and cargo build --workspace
  • cargo test --workspace
  • repository-native just push
  • git diff --check HEAD^ HEAD
  • fork HTTPS/SSH:443 readback exact

Cross-repo evidence

This PR is ready for upstream review. The fork branch remains a contribution checkpoint, not a canonical product carrier. Product completion still requires both upstream canonical mains to merge and the Shell to consume released canonical refs.

@gaofeng21cn gaofeng21cn marked this pull request as ready for review July 15, 2026 02:13
@gaofeng21cn gaofeng21cn deleted the codex/dynamic-tool-dispatch-20260715 branch July 15, 2026 23:58
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.

1 participant