Skip to content

refactor!: remove A2AExpressApp#363

Merged
bartek-gralewicz merged 9 commits into
epic/1.0_breaking_changesfrom
bgralewicz/remove_a2a_express_app
Mar 20, 2026
Merged

refactor!: remove A2AExpressApp#363
bartek-gralewicz merged 9 commits into
epic/1.0_breaking_changesfrom
bgralewicz/remove_a2a_express_app

Conversation

@bartek-gralewicz
Copy link
Copy Markdown
Contributor

@bartek-gralewicz bartek-gralewicz commented Mar 19, 2026

Description

Removal of A2AExpressApp in favor of using middleware directly.

List of changes

  • Removed A2AExpressApp.
  • Updated tests for A2AExpressApp to use middleware directly.
    • Setup logic that was previously present in the A2AExpressApp is now present as a helper function in the test file.
    • Name update: a2a_express_app.spec.ts -> express_app.spec.ts.

Fixes (partially) #179 🦕

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Summary of Changes

Hello, 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 focuses on the removal of the A2AExpressApp test file. This change is a step towards a broader architectural refactoring, where the A2AExpressApp itself is being phased out in favor of a more direct middleware-based approach. The removal of its associated test suite reflects this strategic shift.

Highlights

  • Removal of A2AExpressApp Test File: The test file test/server/express/a2a_express_app.spec.ts has been entirely removed from the codebase.
  • Architectural Refactoring: This removal is part of a broader initiative to deprecate A2AExpressApp in favor of directly utilizing middleware, aiming to streamline the application's architecture.
Ignored Files
  • Ignored by pattern: .github/workflows/** (2)
    • .github/workflows/coverage-comment.yml
    • .github/workflows/unit-tests.yml
Using Gemini Code Assist

The 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 /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

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 .gemini/ folder in the base of the repository. Detailed instructions can be found here.

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.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@bartek-gralewicz bartek-gralewicz changed the title Bgralewicz/remove a2a express app feat: Remove A2AExpressApp Mar 19, 2026
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 removes the test file for A2AExpressApp. While the intent is to eventually remove the class, this change alone leaves the class untested in the codebase. My review comment highlights the risk of this approach and recommends including the removal of the A2AExpressApp class itself in this pull request to ensure the main branch remains in a consistent, tested state.

Comment thread test/server/express/a2a_express_app.spec.ts
bartek-gralewicz added a commit that referenced this pull request Mar 19, 2026
# Description

Modification to code coverage calculation workflow so that the
comparison is made against target branch and not `main`.
This is valuable when PR targets some epic branch. Comparing the
coverage with `main` branch is not accurate if the epic branch already
drifted from `main`.

# IMPORTANT NOTE

An attempt to test this change was done on a draft PR: #363 but the
coverage comment workflow is executed from the `main` branch and not
from the branch checkout. This means that in order to properly test this
functionality in action, it needs to reach `main` state.

In case any issues occur, I will provide an update to this logic or
revert back to the original state.
@github-actions
Copy link
Copy Markdown

github-actions Bot commented Mar 19, 2026

🧪 Code Coverage

⬇️ Download Full Report

No coverage changes.

Generated by coverage-comment.yml

ikubicki pushed a commit to ikubicki/a2a-js that referenced this pull request Mar 19, 2026
# Description

Modification to code coverage calculation workflow so that the
comparison is made against target branch and not `main`.
This is valuable when PR targets some epic branch. Comparing the
coverage with `main` branch is not accurate if the epic branch already
drifted from `main`.

# IMPORTANT NOTE

An attempt to test this change was done on a draft PR: a2aproject#363 but the
coverage comment workflow is executed from the `main` branch and not
from the branch checkout. This means that in order to properly test this
functionality in action, it needs to reach `main` state.

In case any issues occur, I will provide an update to this logic or
revert back to the original state.
@bartek-gralewicz bartek-gralewicz marked this pull request as ready for review March 20, 2026 10:24
@bartek-gralewicz bartek-gralewicz requested a review from a team as a code owner March 20, 2026 10:24
Comment thread .github/workflows/coverage-comment.yml Outdated
@ishymko ishymko changed the title feat: Remove A2AExpressApp refactor!: remove A2AExpressApp Mar 20, 2026
@bartek-gralewicz bartek-gralewicz merged commit 0b84728 into epic/1.0_breaking_changes Mar 20, 2026
12 checks passed
@bartek-gralewicz bartek-gralewicz deleted the bgralewicz/remove_a2a_express_app branch March 20, 2026 11:45
bartek-gralewicz added a commit that referenced this pull request Mar 23, 2026
# Description

Removal of `A2AExpressApp` in favor of using middleware directly.

# List of changes

- Removed `A2AExpressApp`.
- Updated tests for `A2AExpressApp` to use middleware directly.
- Setup logic that was previously present in the `A2AExpressApp` is now
present as a helper function in the test file.
  - Name update: `a2a_express_app.spec.ts` -> `express_app.spec.ts`.

Fixes (partially) #179  🦕
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.

2 participants