Conversation
Summary of ChangesHello @wgd3, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed! This pull request addresses an upstream change in the A2A project by updating the HTTP header used for extension support. The core purpose is to transition to the new 'A2A-Extensions' header while maintaining robust backward compatibility with the previously used 'X-A2A-Extensions' header. This ensures that services can adopt the new standard without immediately breaking existing client integrations, providing a smooth transition path. Highlights
Using Gemini Code AssistThe full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips. Invoking Gemini You can request assistance from Gemini at any point by creating a comment using either
Customization To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a Limitations & Feedback Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here. You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension. Footnotes
|
There was a problem hiding this comment.
Code Review
This pull request correctly updates the HTTP header for A2A extensions from X-A2A-Extensions to the standard A2A-Extensions. The implementation thoughtfully includes backward compatibility to support the deprecated header, ensuring a smooth transition. The changes are consistent across the JSON-RPC and gRPC handlers, and the tests have been updated accordingly. I've provided a couple of minor suggestions to improve code conciseness, but overall, this is a solid and well-executed change.
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
lkawka
left a comment
There was a problem hiding this comment.
If the server accepts both the legacy and new headers keys, we should also return both.
|
|
||
| HTTP_EXTENSION_HEADER = 'X-A2A-Extensions' | ||
| HTTP_EXTENSION_HEADER = 'A2A-Extensions' | ||
| HTTP_EXTENSION_HEADER_DEPRECATED = 'X-A2A-Extensions' |
There was a problem hiding this comment.
Two things:
- How about naming it
LEGACY_HTTP_EXTENSION_HEADER? - Please add a comment explaining that this will be removed in future versions of the SDK.
| state['headers'] = dict(request.headers) | ||
| extension_values = request.headers.getlist( | ||
| HTTP_EXTENSION_HEADER | ||
| ) or request.headers.getlist(HTTP_EXTENSION_HEADER_DEPRECATED) |
There was a problem hiding this comment.
IMHO we should log a warning message when using a deprecated header, so that server developers are aware of the deprecation.
Description
This PR updates the HTTP header name for extension support. It is currently defined as
X-A2A-Extensions, however as of this recent commit that has changed:Changes
The primary change comes from the
src/a2a/extensions/common.pyfile:Minor functional changes were made in the JSON-RPC app:
Additional Notes
There is also support for the deprecated
X-A2A-Extensionsheader built-in as part of this PR. I'm happy to remove or enhance this support if necessary.CONTRIBUTINGGuide.fix:which represents bug fixes, and correlates to a SemVer patch.feat:represents a new feature, and correlates to a SemVer minor.feat!:, orfix!:,refactor!:, etc., which represent a breaking change (indicated by the!) and will result in a SemVer major.bash scripts/format.shfrom the repository root to format)