Skip to content

OpenCode: serve and delegate A2A tasks#9

Open
dimavrem22 wants to merge 16 commits into
mainfrom
feat/a2a-v1
Open

OpenCode: serve and delegate A2A tasks#9
dimavrem22 wants to merge 16 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: Remove obsolete paused lifecycle guidance while keeping contact-rule mutation console-only.
  • Durability: Store each receiver delivery before acknowledgement, reconcile the registry first on restart, and then page all submitted tasks.
  • Session isolation: Serialize inbound work in a2a:{identity}:{context} sessions and authorize complete, ask-caller, and fail through active turn context only.
  • Cross-process authorization: Share active inbound turn context with the host tool process through an atomic mode-0600 file keyed by the isolated session, then remove it when the turn ends.
  • Delegation continuity: Persist outbound message/retry data before SendMessage, promote it to (identity, RPC origin, context), and inject later task updates into the original OpenCode session.
  • Write controls: Reuse the existing outbound approval and recipient allowlist for A2A calls and replies.
  • 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 lifecycle interpretation from the bundled contact-rule guidance.
  • Add default-enabled A2A call, check/wait, reply, and inbound outcome tools.
  • Add durable inbound serving, task-addressed cancellation, context serialization, restart recovery, and guarded default completion.
  • Preserve verified inbound task authorization across sidecar and host processes.
  • Prevent default completion from overwriting input-required or auth-required outcomes.
  • Add durable caller-side delegation routing and sent-task update injection.
  • Document the A2A tool group and staged-rollout behavior.

Related pull requests

Prerequisites

Merge after A2A server support is available and Inkbox SDK 0.5.6 or newer is released.

Verification

@dimavrem22
dimavrem22 force-pushed the fix/remove-paused-write-contracts branch from 05f876e to af8a76a 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
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