Skip to content

feat(server)!: replace individual properties with SendMessageRequest in RequestContext - #581

Merged
JakubWorek merged 4 commits into
epic/1.0_breaking_changesfrom
jakubworek/use-send-message-request-in-request-context
Jul 16, 2026
Merged

feat(server)!: replace individual properties with SendMessageRequest in RequestContext#581
JakubWorek merged 4 commits into
epic/1.0_breaking_changesfrom
jakubworek/use-send-message-request-in-request-context

Conversation

@JakubWorek

Copy link
Copy Markdown
Contributor

Description

In order to simplify the interface of RequestContext, provide more data from the request and mimic Python sdk it adds request: SendMessageRequest as a member of RequestContextParams.

@JakubWorek
JakubWorek requested a review from a team as a code owner July 15, 2026 15:08
@github-actions

github-actions Bot commented Jul 15, 2026

Copy link
Copy Markdown

🧪 Code Coverage

⬇️ Download Full Report

Base PR Delta
src/server/agent_execution/request_context.ts 100% 93.1% 🔴 -6.90%
src/server/request_handler/default_request_handler.ts 88.19% 87.83% 🔴 -0.36%
Total 90.75% 90.7% 🔴 -0.05%

Generated by coverage-comment.yml

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

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.

Comment thread src/server/agent_execution/request_context.ts Outdated
@JakubWorek
JakubWorek requested a review from ishymko July 15, 2026 15:29
@JakubWorek
JakubWorek force-pushed the jakubworek/use-send-message-request-in-request-context branch from dec1011 to 4c9582d Compare July 15, 2026 16:16
Comment thread src/server/agent_execution/request_context.ts Outdated
Comment thread src/server/agent_execution/request_context.ts Outdated
Comment thread src/server/agent_execution/request_context.ts
@JakubWorek JakubWorek changed the title feat(server): encapsulate SendMessageRequest in RequestContext feat(server)!: replace individual properties with SendMessageRequest in RequestContext Jul 16, 2026
@JakubWorek
JakubWorek requested a review from ishymko July 16, 2026 08:39
@JakubWorek
JakubWorek force-pushed the jakubworek/use-send-message-request-in-request-context branch from b6464f6 to 203fcec Compare July 16, 2026 09:51
@JakubWorek
JakubWorek merged commit 7cd30de into epic/1.0_breaking_changes Jul 16, 2026
14 of 16 checks passed
@JakubWorek
JakubWorek deleted the jakubworek/use-send-message-request-in-request-context branch July 16, 2026 10:53
JakubWorek added a commit that referenced this pull request Jul 22, 2026
🤖 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>
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