Skip to content

Claude Code: serve and delegate A2A tasks - #45

Merged
dimavrem22 merged 10 commits into
mainfrom
feat/a2a-v1
Jul 27, 2026
Merged

Claude Code: serve and delegate A2A tasks#45
dimavrem22 merged 10 commits into
mainfrom
feat/a2a-v1

Conversation

@dimavrem22

@dimavrem22 dimavrem22 commented Jul 23, 2026

Copy link
Copy Markdown
Contributor

Decisions

  • Live protocol coverage: Exercise inbound and outbound behavior at both single-turn and multi-turn lengths. Serialize the four cases because they share live identities and one tunnel endpoint.
  • Durability: Write receiver deliveries before acknowledgement and reconcile registry state before paging every submitted task on restart.
  • Session isolation: Serialize inbound work in a2a:{identity}:{context} sessions and expose complete, ask-caller, and fail only through verified turn context.
  • Delegation continuity: Persist outbound message and retry data before SendMessage, promote it to (identity, RPC origin, context) after submission, and inject later task updates into the originating Claude session.
  • Compatibility: Keep the base SDK range for non-A2A users, while requiring Inkbox SDK 0.5.6 or newer for A2A.

Changes

  • Add a published-SDK live A2A workflow that boots the real host and verifies all four protocol legs.
  • Add A2A call, check/wait, reply, and explicit inbound outcome tools.
  • Subscribe and serve inbound A2A tasks with durable deduplication, context sessions, cancellation, restart recovery, and guarded default completion.
  • Persist caller-side delegation routing and return a2a.sent_task.updated events to the delegating session.
  • Bump the plugin to 0.1.4.

Related pull requests

Verification

  • Tests: Python 3.11 and 3.12 unit suites and the Claude Code host contract passed.
  • Full stack e2e: mock and real channel suites, inbound and outbound A2A at single-turn and multi-turn lengths, both voice scenarios, external events, and the aggregate gate passed.
  • uv run --with pytest python -m pytest -q: 303 passed, 22 skipped.

@dimavrem22
dimavrem22 marked this pull request as draft July 27, 2026 05:55
@dimavrem22
dimavrem22 marked this pull request as ready for review July 27, 2026 08:39
@dimavrem22
dimavrem22 merged commit 5c0773f into main Jul 27, 2026
29 of 31 checks passed
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