Skip to content

feat!: Make ServerCallContext parameter mandatory across all places#405

Merged
bartek-gralewicz merged 6 commits into
epic/1.0_breaking_changesfrom
bgralewicz/make_ServerCallContext_mandatory
Apr 13, 2026
Merged

feat!: Make ServerCallContext parameter mandatory across all places#405
bartek-gralewicz merged 6 commits into
epic/1.0_breaking_changesfrom
bgralewicz/make_ServerCallContext_mandatory

Conversation

@bartek-gralewicz
Copy link
Copy Markdown
Contributor

@bartek-gralewicz bartek-gralewicz commented Apr 9, 2026

Description

Made ServerCallContext a mandatory parameter across all extension points.

Notes:

InMemoryTaskStore does not use the ServerCallContext but still accepts it as an argument to align with TaskStore interface which it implements.

Fixes #179 🦕

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Apr 9, 2026

🧪 Code Coverage

⬇️ Download Full Report

Base PR Delta
src/server/push_notification/push_notification_store.ts 83.78% 85.36% 🟢 +1.58%
src/server/request_handler/default_request_handler.ts 78.17% 78.25% 🟢 +0.08%
Total 83.69% 83.71% 🟢 +0.02%

Generated by coverage-comment.yml

@bartek-gralewicz bartek-gralewicz marked this pull request as ready for review April 9, 2026 12:54
@bartek-gralewicz bartek-gralewicz requested a review from a team as a code owner April 9, 2026 12:54
@bartek-gralewicz bartek-gralewicz requested a review from ishymko April 9, 2026 12:54
@bartek-gralewicz
Copy link
Copy Markdown
Contributor Author

/gemini review

Copy link
Copy Markdown
Contributor

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

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 updates the codebase to make the ServerCallContext parameter mandatory across several key interfaces and classes, including A2ARequestHandler, TaskStore, RequestContext, and ResultManager. This change ensures that execution context is explicitly handled throughout the request lifecycle. The DefaultRequestHandler and JsonRpcTransportHandler implementations, along with the associated test suites, have been updated to comply with these new type requirements. The review feedback highlights several instances where optional chaining and runtime null checks have become redundant due to these type changes, presenting opportunities for code simplification.

Comment thread src/server/request_handler/default_request_handler.ts
Comment thread src/server/request_handler/default_request_handler.ts
Comment thread test/server/default_request_handler.spec.ts Outdated
gemini-code-assist[bot]

This comment was marked as outdated.

Comment thread src/server/agent_execution/request_context.ts Outdated
Comment thread src/server/push_notification/default_push_notification_sender.ts Outdated
@bartek-gralewicz bartek-gralewicz merged commit ee4b906 into epic/1.0_breaking_changes Apr 13, 2026
9 checks passed
@bartek-gralewicz bartek-gralewicz deleted the bgralewicz/make_ServerCallContext_mandatory branch April 13, 2026 13:52
ishymko added a commit that referenced this pull request May 11, 2026
🤖 I have created a release *beep* *boop*
---

## 1.0.0-alpha.0 (2026-05-11)

See the [v0.3 -> v1.0-alpha.0 migration
guide](https://github.com/a2aproject/a2a-js/blob/v1.0.0-alpha.0/docs/migration-guide.md).

**Note**: Enabling backward compatibility with v0.3 is tracked in
[#452](#452).


### ⚠ BREAKING CHANGES

* Drop support for node 18
([#368](#368))
* Make ServerCallContext parameter mandatory across all places
([#405](#405))
* Remove JSON-RPC client
([#353](#353))
* Remove transport-specific exports
([#404](#404))
* Update codebase to use A2A 1.0.0 data model
([#375](#375))
* Remove A2AExpressApp
([#363](#363))

### Features

* Add A2A Version Header
([#422](#422))
([b5f3db7](b5f3db7))
* Add cache-headers logic to the agent card handler
([#435](#435))
([955b52b](955b52b))
* Add resource scoping
([#450](#450))
([c527086](c527086))
* Add support for custom authentication scheme and credentials in
auth-headers ([#430](#430))
([5a4389b](5a4389b))
* AgentCardSignature support
([#448](#448))
([4a41a8c](4a41a8c))
* Enforce events ordering
([#437](#437))
([157cf48](157cf48))
* Enriched Error Model
([#427](#427))
([c130778](c130778))
* Implement listTasks method
([#383](#383))
([7d4c472](7d4c472))
* Send current task as the first event after subscribing to it
([#418](#418))
([4bfcf5f](4bfcf5f))
* Support multi-tenancy
([#419](#419))
([1877877](1877877))

### Code Refactoring

* remove A2AExpressApp
([#363](#363))
([0b84728](0b84728))

---
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: bartek-gralewicz <bgralewicz@google.com>
Co-authored-by: Ivan Shymko <ishymko@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.

3 participants