Skip to content

fix: align HTTP+JSON REST interop#21

Merged
muscariello merged 1 commit intomainfrom
fix/rest-http-json-interop
Apr 4, 2026
Merged

fix: align HTTP+JSON REST interop#21
muscariello merged 1 commit intomainfrom
fix/rest-http-json-interop

Conversation

@muscariello
Copy link
Copy Markdown
Member

Summary

Align the Rust HTTP+JSON binding with the A2A 1.0 and cross-SDK REST contract.

  • switch the Rust REST client to canonical HTTP+JSON routes such as /message:send, /tasks/{id}:cancel, /tasks/{id}:subscribe, /tasks/{id}/pushNotificationConfigs, and /extendedAgentCard
  • preserve structured A2A error codes when the Rust REST client receives non-2xx responses
  • serve canonical HTTP+JSON routes from the Rust REST server and emit structured google.rpc.Status-style error payloads with ErrorInfo details
  • keep the older slash-style REST routes on the server as compatibility aliases while clients migrate
  • add regression coverage for REST error parsing and end-to-end transport behavior

Validation

  • cargo fmt --all
  • cargo test --workspace

Context

This is the upstream fix needed to convert the CSIT Rust <-> Go REST legs from documented incompatibilities into true interoperability passes.

Signed-off-by: Luca Muscariello <[email protected]>
@muscariello muscariello requested a review from a team as a code owner April 4, 2026 22:19
@codecov-commenter
Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 82.07547% with 57 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
a2a-server/src/rest.rs 81.54% 31 Missing ⚠️
a2a-client/src/rest.rs 82.66% 26 Missing ⚠️

📢 Thoughts on this report? Let us know!

@muscariello muscariello merged commit 9b14db3 into main Apr 4, 2026
5 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.

2 participants