feat: enable multi-mode protocol testing for both TCKs#875
Conversation
There was a problem hiding this comment.
Code Review
This pull request implements backward compatibility for v0.3 clients by enhancing the v1.0 AgentCard model with legacy fields (url, preferredTransport, and additionalInterfaces) and providing a mechanism to populate them when both protocol versions are enabled. It includes significant updates to documentation, TCK profiles, and test suites to support multi-version environments. Furthermore, it refines the server's request handling by moving the BodyHandler to a per-route basis to avoid conflicts with gRPC services. I have no further feedback to provide as the existing review comment was purely explanatory.
Add CI for 0.3 TCK, and multi-mode testing (v1.0 + v0.3 together) for both TCK servers. - Add Legacy_0_3_AgentInterface and additionalInterfaces to AgentCard so v1.0 cards are parsable by v0.3 clients - Add DerivedAgentCardProducer in compat-0.3/tck to convert v0.3 AgentCard to v1.0 format for multi-mode - Add multiversion dispatcher deps to both TCK multi-mode profiles - Fix global BodyHandler consuming gRPC request bodies by moving to per-route BodyHandler in A2AServerRoutes - Ignore additionalInterfaces in gRPC AgentCardMapper - Add Compat03Fields utility to selectively add v0.3 fields to v1.0 AgentCard producers when running in a multi-version setup - Enable previously @disabled multiversion agent card tests - Allow Long JSON-RPC request ids Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
/gemini review |
There was a problem hiding this comment.
Code Review
This pull request introduces backward compatibility for v0.3 clients by adding legacy fields to the v1.0 AgentCard and providing utilities to populate them. It also refines JSON-RPC ID validation to include all Number types and moves Vert.x BodyHandlers to a per-route basis to avoid gRPC conflicts. Feedback highlighted a potential NullPointerException in the DerivedAgentCardProducer when additionalInterfaces is null and suggested including the primary v0.3 endpoint in the interface mapping.
Add CI for 0.3 TCK, and multi-mode testing (v1.0 + v0.3 together) for both TCK servers.