Skip to content

Migrate from A2A v0 to v1 (part 1)#1921

Open
supreme-gg-gg wants to merge 12 commits into
mainfrom
jetc/feat/a2a-v1-migration-a
Open

Migrate from A2A v0 to v1 (part 1)#1921
supreme-gg-gg wants to merge 12 commits into
mainfrom
jetc/feat/a2a-v1-migration-a

Conversation

@supreme-gg-gg
Copy link
Copy Markdown
Contributor

@supreme-gg-gg supreme-gg-gg commented May 25, 2026

The 1st of 3 PRs for A2A v0 to v1 zero downtime migration. This will go into release 0.10.0

Makes the controller compatible with A2A v0 (trpc-a2a-go) and v1 (a2a-go) data and both v0 and v1 JSON-RPC routes / agent card routes depending on A2A-Version header (designed explicitly by the protocol for version negotiations). Replaces all internal usages of trpc-a2a-go with a2a-go except in data conversion code and CLI client code.

This ensure that the controller is compatible with old / existing agents and UI in A2A v0 and existing v0 data in db, while adding the capability to communicate with v1 agents and UI during upgrade as they are added in the next part.

Follows https://a2a-protocol.org/latest/whats-new-v1/#migration-strategy-recommendations and db conversion reuses as much of existing a2a backward compatible code as possible.

@chromatic-com
Copy link
Copy Markdown

chromatic-com Bot commented May 25, 2026

Warning

Testing paused

Monthly snapshot limit reached. Update your plan to get more snapshots and resume testing.

@supreme-gg-gg supreme-gg-gg force-pushed the jetc/feat/a2a-v1-migration-a branch 3 times, most recently from 4aae019 to 2cea435 Compare May 26, 2026 18:31
Copy link
Copy Markdown
Contributor Author

@supreme-gg-gg supreme-gg-gg May 26, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reviewer, tracing context injection and associated tests have been moved to client_interceptors.go and client_interceptor_test.go (also where auth headers injection happens)

Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
@supreme-gg-gg supreme-gg-gg force-pushed the jetc/feat/a2a-v1-migration-a branch from 6350578 to d60eec4 Compare May 27, 2026 16:29
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For reviewer, this is a modified version of existing https://github.com/kagent-dev/kagent/blob/main/go/core/internal/a2a/manager.go (removed) for very similar functionality

This new passthrough handler is simpler and forwards RPC methods directly to the client and avoids having to go through things like task lifecycle, task status, etc. that the old AgentExecutor would do, and fits better since the controller is just a proxy to upstream agent runtime that handles the real executor.

Signed-off-by: Jet Chiang <pokyuen.jetchiang-ext@solo.io>
@supreme-gg-gg supreme-gg-gg marked this pull request as ready for review May 27, 2026 16:47
Copilot AI review requested due to automatic review settings May 27, 2026 16:47
@supreme-gg-gg supreme-gg-gg changed the title [DNM] Migrate from A2A v0 to v1 (part 1) Migrate from A2A v0 to v1 (part 1) May 27, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

@supreme-gg-gg
Copy link
Copy Markdown
Contributor Author

@copilot review

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