Skip to content

OpenClaw: serve and delegate A2A tasks - #43

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

OpenClaw: serve and delegate A2A tasks#43
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.
  • Contact-rule contract: Require an allow/block action in contact-rule updates and remove the obsolete paused lifecycle surface.
  • Durability: Persist each receiver delivery before acknowledgement, reconcile the registry first on restart, and then page all submitted tasks.
  • Session isolation: Route inbound tasks to exact a2a:{identity}:{context} sessions, capture output without normal channel delivery, and authorize complete, ask-caller, and fail only during the active A2A turn.
  • Cancellation: Track every active run for a task so task-addressed cancellation aborts all matching work without affecting another context.
  • Delegation continuity: Persist outbound message/retry data before SendMessage, promote it to (identity, RPC origin, context), and inject later task updates into the original OpenClaw session.
  • Compatibility: Keep the base SDK range for non-A2A users, while documenting that A2A requires @inkbox/sdk 0.5.6 or newer.

Changes

  • Add a published-SDK live A2A workflow that boots the real host and verifies all four protocol legs.
  • Remove paused contact-rule update inputs and guidance, require explicit allow/block actions, and cover action-only updates.
  • Add A2A call, check, reply, and inbound complete/ask/fail tools.
  • Subscribe and serve inbound tasks with durable deduplication, context sessions, cancellation, restart recovery, and guarded default completion.
  • Add durable caller-side delegation routing and sent-task update injection.
  • Update the public tool contract and documentation.

Related pull requests

Merge order

Merge after the A2A server surface is available and SDK 0.5.6 or newer is released.

Verification

  • npm run typecheck
  • npm test: 358 passed
  • npm run build
  • PR checks — typecheck, unit, and contract: Node 22, Node 24, and the latest-host contract passed.
  • Full stack e2e: mock and real channels; inbound and outbound A2A at single-turn and multi-turn lengths; inbound and realtime voice; external events; and the aggregate passed.

@dimavrem22
dimavrem22 force-pushed the fix/remove-paused-write-contracts branch from 67fe832 to 8d6872d Compare July 27, 2026 04:58
@dimavrem22
dimavrem22 marked this pull request as draft July 27, 2026 05:55
@dimavrem22
dimavrem22 changed the base branch from fix/remove-paused-write-contracts to main July 27, 2026 05:56
@dimavrem22
dimavrem22 marked this pull request as ready for review July 27, 2026 08:39
@dimavrem22
dimavrem22 merged commit 47b4b45 into main Jul 27, 2026
23 of 25 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