-
Notifications
You must be signed in to change notification settings - Fork 450
Comparing changes
Open a pull request
base repository: a2aproject/a2a-python
base: v0.2.10
head repository: a2aproject/a2a-python
compare: v0.2.11
- 10 commits
- 38 files changed
- 15 contributors
Commits on Jun 30, 2025
-
ci: Add Bandit security linter to CI (#252)
Introduce Bandit to CI checks. Fixes: #251 🦕
Configuration menu - View commit details
-
Copy full SHA for e75f27d - Browse repository at this point
Copy the full SHA e75f27dView commit details
Commits on Jul 1, 2025
-
test: update Middleware test types (#260)
# Description Replace the following: ```py params={ 'message': { 'messageId': 'msg1', 'role': 'user', 'parts': [], } } ``` by this: ```py params=MessageSendParams( message=Message( messageId='msg1', role=Role.user, parts=[], ) ) ```Configuration menu - View commit details
-
Copy full SHA for 84eaf83 - Browse repository at this point
Copy the full SHA 84eaf83View commit details -
Configuration menu - View commit details
-
Copy full SHA for bf939a8 - Browse repository at this point
Copy the full SHA bf939a8View commit details -
refactor!: Push notification changes [DO NOT MERGE] (#212)
``` Release-As: 0.2.11 ``` * Removes push_notifier interface from the SDK and introduces push_notification_config_store and push_notification_sender for supporting push notifications. Following is an example for the changes required with new version: Previously: ```py from a2a.server.tasks import InMemoryPushNotifier ... ... httpx_client = httpx.AsyncClient() request_handler = DefaultRequestHandler( agent_executor=CurrencyAgentExecutor(), task_store=InMemoryTaskStore(), push_notifier=InMemoryPushNotifier(httpx_client), ) ... ... ``` Now: ```py from a2a.server.tasks import InMemoryPushNotificationConfigStore, BasePushNotificationSender ... ... httpx_client = httpx.AsyncClient() push_notification_config_store = InMemoryPushNotificationConfigStore() push_notification_sender = BasePushNotificationSender(httpx_client, config_store=push_notification_config_store) request_handler = DefaultRequestHandler( agent_executor=CurrencyAgentExecutor(), task_store=InMemoryTaskStore(), push_config_store=push_notification_config_store, push_sender=push_notification_sender ) ... ... ``` * Adds support for more than one push_notification_config per task. * Adds support for List and Delete push notification configurations --------- Co-authored-by: Holt Skinner <[email protected]>Configuration menu - View commit details
-
Copy full SHA for f1b576e - Browse repository at this point
Copy the full SHA f1b576eView commit details -
chore(pyproject.toml): change license to text (#265)
`pip show a2a-sdk` was including the whole license file. Changed to just the license name
Configuration menu - View commit details
-
Copy full SHA for abd4ca8 - Browse repository at this point
Copy the full SHA abd4ca8View commit details -
feat: Support for database backend Task Store (#259)
``` Release-As: 0.2.11 ``` Add support for database backed TaskStore ### Installation ```bash uv add a2a-sdk[postgresql] #postgres driver or uv add a2a-sdk[mysql] #mysql driver or uv add a2a-sdk[sqlite] #sqlite driver or uv add a2a-sdk[sql]. #install all three sql drivers ``` ### Usage ```py from a2a.server.tasks import DatabaseTaskStore from sqlalchemy.ext.asyncio import ( create_async_engine, ) ... ... # Postgres - "postgresql+asyncpg://postgres:postgres@localhost:5432/a2a_test" # Sqlite - "sqlite+aiosqlite:///file::memory:?cache=shared" # Mysql - "mysql+aiomysql://admin:saysoyeah@localhost:3306/testDB" engine = create_async_engine( "postgresql+asyncpg://postgres:postgres@localhost:5432/a2a_test", echo=False ) request_handler = DefaultRequestHandler( agent_executor=CurrencyAgentExecutor(), task_store=DatabaseTaskStore(engine=engine), push_notifier=InMemoryPushNotifier(httpx_client), ) ``` --------- Co-authored-by: Zac <[email protected]> Co-authored-by: MEUNIER Laurent <[email protected]> Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com> Co-authored-by: Zac <[email protected]> Co-authored-by: Holt Skinner <[email protected]> Co-authored-by: Holt Skinner <[email protected]>Configuration menu - View commit details
-
Copy full SHA for 7c46e70 - Browse repository at this point
Copy the full SHA 7c46e70View commit details
Commits on Jul 2, 2025
-
feat: Add constants for Well-Known URIs (#271)
Prevents usage of "Magic Strings"
Configuration menu - View commit details
-
Copy full SHA for 1c8e12e - Browse repository at this point
Copy the full SHA 1c8e12eView commit details
Commits on Jul 7, 2025
-
refactor: refactor FastAPI route setup and docs (#280)
# Description ## Summary This PR improves the current implementation of `A2AFastAPIApplication` class that enables serving A2A endpoints using a FastAPI application. (#104) ### Implementation Details Refactors the `add_routes_to_app` method in `src/a2a/server/apps/jsonrpc/fastapi_app.py` to simplify route definitions by: * Directly associating handler methods with FastAPI route decorators * Removing unnecessary nested async function definitions by directly passing handler methods (`self._handle_requests`, `self._handle_get_agent_card`, and `self._handle_get_authenticated_extended_agent_card`) to the FastAPI decorators (`app.post` and `app.get`) * Enabling method descriptions to appear in Swagger documentation, improving developer experience These changes make the code more readable, maintainable, and better integrated with FastAPI's documentation features. ### Screenshots #### Before   #### After   --- Continues #104 🦕
Configuration menu - View commit details
-
Copy full SHA for cb08973 - Browse repository at this point
Copy the full SHA cb08973View commit details -
feat(server): Add lock to TaskUpdater to prevent race conditions (#279)
# Description This PR adds a lock to the `TaskUpdater` to prevent race conditions when updating tasks that are in a terminal state (e.g., completed, failed). This ensures updates are handled atomically, making task state management more robust. ### **File Changes** * `src/a2a/server/tasks/task_updater.py` * `tests/server/tasks/test_task_updater.py` ### **Benefits** * **Robustness**: Prevents race conditions during concurrent task updates. * **Stability**: Ensures reliable task execution in production. * **Test Coverage**: Adds new tests for concurrent scenarios. 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 `nox -s format` from the repository root to format) - [x] Appropriate docs were updated (if necessary) Fixes #278 🦕 --------- Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com> Co-authored-by: pstephengoogle <[email protected]>
Configuration menu - View commit details
-
Copy full SHA for 1022093 - Browse repository at this point
Copy the full SHA 1022093View commit details
Commits on Jul 8, 2025
-
chore(main): release 0.2.11 (#263)
🤖 I have created a release *beep* *boop* --- ## [0.2.11](v0.2.10...v0.2.11) (2025-07-07) ### ⚠ BREAKING CHANGES * Removes `push_notifier` interface from the SDK and introduces `push_notification_config_store` and `push_notification_sender` for supporting push notifications. ### Features * Add constants for Well-Known URIs ([#271](#271)) ([1c8e12e](1c8e12e)) * Adds support for List and Delete push notification configurations. ([f1b576e](f1b576e)) * Adds support for more than one `push_notification_config` per task. ([f1b576e](f1b576e)) * **server:** Add lock to TaskUpdater to prevent race conditions ([#279](#279)) ([1022093](1022093)) * Support for database backend Task Store ([#259](#259)) ([7c46e70](7c46e70)) ### Code Refactoring * Removes `push_notifier` interface from the SDK and introduces `push_notification_config_store` and `push_notification_sender` for supporting push notifications. ([f1b576e](f1b576e)) --- 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>
Configuration menu - View commit details
-
Copy full SHA for fda4223 - Browse repository at this point
Copy the full SHA fda4223View commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v0.2.10...v0.2.11