feat(server)!: replace individual properties with SendMessageRequest in RequestContext - #581
Conversation
🧪 Code Coverage
Generated by coverage-comment.yml |
There was a problem hiding this comment.
Code Review
This pull request refactors RequestContext to encapsulate the full SendMessageRequest payload instead of individual properties, introducing a RequestContextParams interface and updating the request handler and tests accordingly. The review feedback highlights that assigning params.request directly via a shallow reference allows downstream executors to mutate the original request object, and suggests using structuredClone to deep-copy the request and maintain state safety.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
dec1011 to
4c9582d
Compare
…rove payload access and structure
…onstructor parameters
b6464f6 to
203fcec
Compare
🤖 I have created a release *beep* *boop* --- ## [1.0.0](v1.0.0-beta.0...v1.0.0) (2026-07-22) `@a2a-js/sdk` is now generally available. This release promotes the v1.0 line to stable, implementing the full [A2A Protocol Specification v1.0](https://a2a-protocol.org/v1.0.0/specification/) across all three transports (JSON-RPC, HTTP+JSON/REST, gRPC), with opt-in v0.3 backward compatibility for staged migrations. Upgrading from `0.3.x`? See the [v0.3 → v1.0 migration guide](https://github.com/a2aproject/a2a-js/blob/v1.0.0/docs/migration-guide.md). Interoperating with peers still on v0.3? See the [end-user v0.3 compatibility guide](https://github.com/a2aproject/a2a-js/blob/v1.0.0/docs/compatibility-v0_3.md). ### ⚠ BREAKING CHANGES * unify A2AError hierarchy with transport specific subclasses ([#587](#587)) * **server:** replace individual properties with SendMessageRequest in RequestContext ([#581](#581)) ### Features * add state bag and ServerCallContextBuilder to ServerCallContext ([#364](#364)) ([477e394](477e394)) * export SSE wire-format helpers from public entry point ([#548](#548)) ([8bc21f5](8bc21f5)), closes [#547](#547) * **server:** expose SendMessageRequest metadata to AgentExecutor via RequestContext ([#564](#564)) ([a92f54e](a92f54e)) * **server:** replace individual properties with SendMessageRequest in RequestContext ([#581](#581)) ([7cd30de](7cd30de)) * unify A2AError hierarchy with transport specific subclasses ([#587](#587)) ([4806f8f](4806f8f)) ### Bug Fixes * **client:** bound SSE event size to prevent client-side memory exhaustion ([#582](#582)) ([e6e8ce9](e6e8ce9)) * **client:** cancel the SSE stream on teardown to avoid leaking connections ([#580](#580)) ([83269a5](83269a5)) * **grpc:** preserve null values in protobuf Struct ([#578](#578)) ([f447e4e](f447e4e)), closes [#576](#576) * resolve sdk compatibility bugs ([#568](#568)) ([b57f026](b57f026)) * **server:** await _handleProcessingError so blocking drains surface errors ([#579](#579)) ([5833652](5833652)) * support GET for resubscribe route ([#569](#569)) ([8dd43d1](8dd43d1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). --------- Co-authored-by: JakubWorek <jakubworek@google.com>
Description
In order to simplify the interface of
RequestContext, provide more data from the request and mimic Python sdk it addsrequest: SendMessageRequestas a member ofRequestContextParams.