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.2.12
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.2.13
Choose a head ref
  • 11 commits
  • 36 files changed
  • 6 contributors

Commits on Jul 14, 2025

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

Commits on Jul 15, 2025

  1. feat: Support for Database based Push Config Store (#299)

    # Description
    Introduces support for Database backed Push Notification Config Store.
    
    Push Notification Config persisted to the database table gets encrypted
    when encryption_key param is set for the
    DatabasePushNotificationConfigStore.
    
    Usage:
    
    ```py
    httpx_client = httpx.AsyncClient()
     engine = create_async_engine(
                "sqlite+aiosqlite:///file::memory:?cache=shared",
                echo=False
            )
    
    push_config_store = DatabasePushNotificationConfigStore(engine=engine,
                        encryption_key=Fernet.generate_key()) 
    push_sender = BasePushNotificationSender(
        httpx_client=httpx_client,
        config_store=push_config_store)
    
     request_handler = DefaultRequestHandler(
                agent_executor=CurrencyAgentExecutor(),
                task_store=DatabaseTaskStore(engine=engine),
                push_config_store=push_config_store,
                push_sender=push_sender)
    ```
    kthota-g authored Jul 15, 2025
    Configuration menu
    Copy the full SHA
    e5d99ee View commit details
    Browse the repository at this point in the history
  2. fix: Handle readtimeout errors. (#305)

    Fixes #249
    kthota-g authored Jul 15, 2025
    Configuration menu
    Copy the full SHA
    b94b8f5 View commit details
    Browse the repository at this point in the history
  3. fix: Add validation for empty artifact lists in completed_task (#308)

    This update addresses an issue where the `completed_task` function in
    `a2a/utils/task.py` did not perform any validation on the `artifacts`
    list. This could lead to unexpected behavior if an empty or invalid list
    was provided.
    
    This change introduces a validation check to ensure that the `artifacts`
    list is a non-empty list of `Artifact` objects, raising a `ValueError`
    if the validation fails.
    
    **Changes:**
    
    - Modified `a2a/utils/task.py` to add a validation check for the
    `artifacts` parameter in the `completed_task` function.
    - Updated `tests/utils/test_task.py` to include tests for the new
    validation logic, covering cases with empty lists and lists containing
    invalid items.
    pankaj-bind authored Jul 15, 2025
    Configuration menu
    Copy the full SHA
    c4a324d View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    ecbbb7e View commit details
    Browse the repository at this point in the history

Commits on Jul 16, 2025

  1. fix: Add Input Validation for Task IDs in TaskManager (#310)

    Previously, the `TaskManager` class in
    `a2a/server/tasks/task_manager.py` did not perform any validation on the
    `task_id` during initialization. This could lead to silent failures or
    inconsistencies in task storage if an invalid ID (such as an empty
    string) was provided.
    
    ### Impact
    
    Adding this validation improves the robustness of the `TaskManager` and
    prevents downstream errors in task management, especially for database
    or in-memory stores.
    
    ### Fix
    
    In `a2a/server/tasks/task_manager.py`, a check has been added to the
    `__init__` method of the `TaskManager` to validate the `task_id`. It now
    ensures that if a `task_id` is provided, it is a non-empty string. If
    the validation fails, a `ValueError` is raised.
    
    A corresponding unit test has been added to
    `tests/server/tasks/test_task_manager.py` to verify that the validation
    works as expected.
    pankaj-bind authored Jul 16, 2025
    Configuration menu
    Copy the full SHA
    a38d438 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    edf392c View commit details
    Browse the repository at this point in the history
  3. chore: fix task for no_existing_task scenario (#316)

    # 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 `nox -s format` from the
    repository root to format)
    - [ ] Appropriate docs were updated (if necessary)
    
    Fixes #<issue_number_goes_here> 🦕
    kthota-g authored Jul 16, 2025
    Configuration menu
    Copy the full SHA
    6a0a7da View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2025

  1. Configuration menu
    Copy the full SHA
    5b98c32 View commit details
    Browse the repository at this point in the history
  2. feat: Update A2A types from specification 🤖 (#319)

    This PR updates `src/a2a/types.py` based on the latest
    `specification/json/a2a.json` from
    [a2aproject/A2A](a2aproject/A2A@6f1d17b).
    
    ---------
    
    Co-authored-by: Holt Skinner <holtskinner@google.com>
    a2a-bot and holtskinner authored Jul 17, 2025
    Configuration menu
    Copy the full SHA
    18506a4 View commit details
    Browse the repository at this point in the history
  3. chore(main): release 0.2.13 (#307)

    🤖 I have created a release *beep* *boop*
    ---
    
    
    ##
    [0.2.13](v0.2.12...v0.2.13)
    (2025-07-17)
    
    
    ### Features
    
    * Add `get_data_parts()` and `get_file_parts()` helper methods
    ([#312](#312))
    ([5b98c32](5b98c32))
    * Support for Database based Push Config Store
    ([#299](#299))
    ([e5d99ee](e5d99ee))
    * Update A2A types from specification 🤖
    ([#319](#319))
    ([18506a4](18506a4))
    
    
    ### Bug Fixes
    
    * Add Input Validation for Task IDs in TaskManager
    ([#310](#310))
    ([a38d438](a38d438))
    * Add validation for empty artifact lists in `completed_task`
    ([#308](#308))
    ([c4a324d](c4a324d))
    * Handle readtimeout errors.
    ([#305](#305))
    ([b94b8f5](b94b8f5)),
    closes [#249](#249)
    
    
    ### Documentation
    
    * Update Documentation Site Link
    ([#315](#315))
    ([edf392c](edf392c))
    
    ---
    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: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
    release-please[bot] authored Jul 17, 2025
    Configuration menu
    Copy the full SHA
    e229576 View commit details
    Browse the repository at this point in the history
Loading