Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: a2aproject/a2a-python
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v0.3.3
Choose a base ref
...
head repository: a2aproject/a2a-python
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v0.3.4
Choose a head ref
  • 11 commits
  • 18 files changed
  • 10 contributors

Commits on Aug 25, 2025

  1. fix: resolve streaming endpoint deadlock by pre-consuming request body (

    #426)
    
    - Fix infinite hang issue in `/v1/message:stream` endpoint
    - Pre-consume `request.body()` in `_handle_streaming_request` to prevent
    deadlock
    - `EventSourceResponse` context was causing `request.body()` consumption
    to block
    - Add comprehensive error handling for body consumption failures
    - Add regression tests for streaming endpoint request body handling
    
    Fixes deadlock where `request.body()` consumption inside
    `EventSourceResponse` context caused the event loop to hang
    indefinitely.
    
    Breaking changes: None
    Backward compatibility: Maintained
    
    Fixes [#1001](#431) 🦕
    
    Release-As: 0.3.4
    youngchannelforyou authored Aug 25, 2025
    Configuration menu
    Copy the full SHA
    4186731 View commit details
    Browse the repository at this point in the history

Commits on Aug 27, 2025

  1. feat: Add extensions support to TaskUpdater.add_artifact (#436)

    Fixes #433 🦕
    
    Co-authored-by: Lukasz Kawka <lkawka@google.com>
    lkawka and Lukasz Kawka authored Aug 27, 2025
    Configuration menu
    Copy the full SHA
    598d8a1 View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2025

  1. Configuration menu
    Copy the full SHA
    9193208 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2025

  1. fix: convert auth_required state in proto utils (#444)

    # Description
    
    The A2A client is receiving `unknown` state over REST transport while it
    should receive `auth_required`.
    
    - [x] Follow the [`CONTRIBUTING`
    Guide](https://github.com/a2aproject/a2a-python/blob/main/CONTRIBUTING.md).
    - [x] Make your Pull Request title in the
    <https://www.conventionalcommits.org/> specification.
    - Important Prefixes for
    [release-please](https://github.com/googleapis/release-please):
    - `fix:` which represents bug fixes, and correlates to a
    [SemVer](https://semver.org/) patch.
    - `feat:` represents a new feature, and correlates to a SemVer minor.
    - `feat!:`, or `fix!:`, `refactor!:`, etc., which represent a breaking
    change (indicated by the `!`) and will result in a SemVer major.
    - [ ] Ensure the tests and linter pass (Run `bash scripts/format.sh`
    from the repository root to format)
    - [ ] Appropriate docs were updated (if necessary)
    
    ---------
    
    Signed-off-by: Tomas Pilar <thomas7pilar@gmail.com>
    pilartomas authored Aug 29, 2025
    Configuration menu
    Copy the full SHA
    ac12f05 View commit details
    Browse the repository at this point in the history
  2. fix: Sync jsonrpc and rest implementation of authenticated agent card (

    …#441)
    
    # Description
    
    Thank you for opening a Pull Request!
    Before submitting your PR, there are a few things you can do to make
    sure it goes smoothly:
    
    - [ ] Follow the [`CONTRIBUTING`
    Guide](https://github.com/a2aproject/a2a-python/blob/main/CONTRIBUTING.md).
    - [ ] Make your Pull Request title in the
    <https://www.conventionalcommits.org/> specification.
    - Important Prefixes for
    [release-please](https://github.com/googleapis/release-please):
    - `fix:` which represents bug fixes, and correlates to a
    [SemVer](https://semver.org/) patch.
    - `feat:` represents a new feature, and correlates to a SemVer minor.
    - `feat!:`, or `fix!:`, `refactor!:`, etc., which represent a breaking
    change (indicated by the `!`) and will result in a SemVer major.
    - [ ] Ensure the tests and linter pass (Run `bash scripts/format.sh`
    from the repository root to format)
    - [ ] Appropriate docs were updated (if necessary)
    
    Fixes #<issue_number_goes_here> 🦕
    rajeshvelicheti authored Aug 29, 2025
    Configuration menu
    Copy the full SHA
    9da9ecc View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2025

  1. fix: handle concurrent task completion during cancellation (#449)

    ### Description
    
    We
    [check](https://github.com/a2aproject/a2a-python/blob/d2e869f/src/a2a/server/request_handlers/default_request_handler.py#L149)
    that a Task is in a cancellable state before calling
    `agent_executor.cancel`.
    
    This doesn't guarantee there's no task completion event in the queue
    which will be applied before our task cancellation request gets handled.
    
    This PR adds an extra check to ensure that we don't return a Task in a
    non-cancelled state as a successful cancellation call response. Instead
    we raise `TaskNotCancelableError`.
    yarolegovich authored Sep 2, 2025
    Configuration menu
    Copy the full SHA
    f4c9c18 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    42ff0d4 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    813f5cd View commit details
    Browse the repository at this point in the history
  4. feat: Add ServerCallContext into task store operations (#443)

    In production systems the persistence of the task should be protected
    based on the credentials of the creator of the task (e.g. a user id or
    email). Additionally, applications may have other criteria to use for
    task persistence (like application name, or region task runs in).
    
    ---
    
    Providing the `ServerCallContext` into the calls to the `get`, `save`
    and `delete` interface for the task store allows customization of the
    persisted task data based on the characteristics needed for a real
    solution. Agent implementors can construct the appropriate
    `ServerCallContext` based on the incoming request and use that
    information at task creation, retrieval and deletion time.
    
    Fixes #442  🦕
    
    ---------
    
    Co-authored-by: Holt Skinner <13262395+holtskinner@users.noreply.github.com>
    Co-authored-by: Holt Skinner <holtskinner@google.com>
    3 people authored Sep 2, 2025
    Configuration menu
    Copy the full SHA
    e3e5c4b View commit details
    Browse the repository at this point in the history
  5. perf: Improve performance and code style for proto_utils.py (#452)

    - Pre-compile regular expressions
    - Use `cls` instead of `ClassName`
    - Change `ToProto.data()` to use `dict_to_struct()`
    - Reduce duplication by combining `ToProto.update_event()` and
    `ToProto.stream_response()`
    - Added missing conversion for type `MutualTlsSecurityScheme`
    holtskinner authored Sep 2, 2025
    Configuration menu
    Copy the full SHA
    1e4b574 View commit details
    Browse the repository at this point in the history
  6. chore(main): release 0.3.4 (#432)

    🤖 I have created a release *beep* *boop*
    ---
    
    
    ##
    [0.3.4](v0.3.3...v0.3.4)
    (2025-09-02)
    
    
    ### Features
    
    * Add `ServerCallContext` into task store operations
    ([#443](#443))
    ([e3e5c4b](e3e5c4b))
    * Add extensions support to `TaskUpdater.add_artifact`
    ([#436](#436))
    ([598d8a1](598d8a1))
    
    
    ### Bug Fixes
    
    * convert auth_required state in proto utils
    ([#444](#444))
    ([ac12f05](ac12f05))
    * handle concurrent task completion during cancellation
    ([#449](#449))
    ([f4c9c18](f4c9c18))
    * Remove logger error from init on `rest_adapter` and `jsonrpc_app`
    ([#439](#439))
    ([9193208](9193208))
    * resolve streaming endpoint deadlock by pre-consuming request body
    ([#426](#426))
    ([4186731](4186731))
    * Sync jsonrpc and rest implementation of authenticated agent card
    ([#441](#441))
    ([9da9ecc](9da9ecc))
    
    
    ### Performance Improvements
    
    * Improve performance and code style for `proto_utils.py`
    ([#452](#452))
    ([1e4b574](1e4b574))
    
    ---
    This PR was generated with [Release
    Please](https://github.com/googleapis/release-please). See
    [documentation](https://github.com/googleapis/release-please#release-please).
    a2a-bot authored Sep 2, 2025
    Configuration menu
    Copy the full SHA
    6941b06 View commit details
    Browse the repository at this point in the history
Loading