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.23
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.24
Choose a head ref
  • 3 commits
  • 4 files changed
  • 5 contributors

Commits on Feb 18, 2026

  1. fix(deps): DeprecationWarning on HTTP_413_REQUEST_ENTITY_TOO_LARGE (

    #693)
    
    # Description
    
    In [This commit that landed in
    v0.48.0](Kludex/starlette@40a8147)
    starlette changed constants to conform to
    [RFC9110](https://www.rfc-editor.org/rfc/rfc9110#name-413-content-too-large).
    
    It's the only [one
    affected](Kludex/starlette@40a8147#diff-966c562bff3b11736a75544f42526c942c185b9fe9eb4b7f5a0dabbeca874fa7R180)
    that I could find in this codebase.
    
    
    - [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.
    - [x] Ensure the tests and linter pass (Run `bash scripts/format.sh`
    from the repository root to format)
    - [x] Appropriate docs were updated (if necessary)
    
    # Tests
    ```zsh
    uv sync --all-groups
    ```
    Before and after: confirmed that this is fixed.
    ```zsh
    uv run python -W error::DeprecationWarning -c "from a2a.server.apps.jsonrpc.fastapi_app import *"   
    ```
    Confirmed that tests worked with
    ```zsh
    uv run pytest
    ```
    
    # Other
    uv.lock currently has 
    
    ```toml
    [[package]]
    name = "starlette"
    version = "0.50.0"
    ```
    So I don't think the dependency pinning is a breaking change.
    
    ---------
    
    Co-authored-by: Holt Skinner <13262395+holtskinner@users.noreply.github.com>
    SrzStephen and holtskinner authored Feb 18, 2026
    Configuration menu
    Copy the full SHA
    9968f9c View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2026

  1. fix(core): preserve legitimate falsy values in _clean_empty (#713)

    # 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:
    
    - [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.
    - [x] Ensure the tests and linter pass (Run `bash scripts/format.sh`
    from the repository root to format)
    - [x] Appropriate docs were updated (if necessary)
    
    Fixes #692 🦕
    
    ## Problem
    
    `_clean_empty` uses a truthiness check (`if v`) that drops legitimate
    falsy values like `0`, `False`, and `0.0` alongside the intended empties
    (`''`, `[]`, `{}`).
    
    This affects `canonicalize_agent_card()` — the only caller — which
    produces canonical JSON for signature verification (RFC 8785). An
    `AgentCard` with e.g. `AgentCapabilities(streaming=False)` would have
    the field silently stripped, losing the distinction between "explicitly
    disabled" and "unspecified".
    
    ## Fix
    
    Restructured `_clean_empty` so that only empty strings are converted to
    `None` at the leaf level, and empty containers collapse naturally via
    `or None` after their children are cleaned. The filter becomes `if v is
    not None`, which only catches values the function itself converted —
    `0`, `False`, and `0.0` never go through any conversion and flow through
    unchanged.
    
    ### Alternatives considered
    
    If maintainers prefer a different style, happy to switch to either:
    
    - Inline sentinel: `if v not in (None, '', [], {})` directly in the
    comprehensions, keeping the original structure with a fixed filter.
    - Helper predicate: extract an `_is_empty(v)` function and use `if not
    _is_empty(v)` as the filter in both dict and list comprehensions.
    
    ## Tests
    
    Parametrized tests covering empty removal, falsy value preservation,
    mixed cases, non-mutation, and a regression test confirming
    `streaming=False` survives in `canonicalize_agent_card` output. Happy to
    trim test cases if seen as excessive.
    
    ---------
    
    Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
    cchinchilla-dev and gemini-code-assist[bot] authored Feb 20, 2026
    Configuration menu
    Copy the full SHA
    7632f55 View commit details
    Browse the repository at this point in the history
  2. chore(main): release 0.3.24 (#708)

    🤖 I have created a release *beep* *boop*
    ---
    
    
    ##
    [0.3.24](v0.3.23...v0.3.24)
    (2026-02-20)
    
    
    ### Bug Fixes
    
    * **core:** preserve legitimate falsy values in _clean_empty
    ([#713](#713))
    ([7632f55](7632f55))
    * **deps:** `DeprecationWarning` on `HTTP_413_REQUEST_ENTITY_TOO_LARGE`
    ([#693](#693))
    ([9968f9c](9968f9c))
    
    ---
    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 Feb 20, 2026
    Configuration menu
    Copy the full SHA
    d2d3860 View commit details
    Browse the repository at this point in the history
Loading