fix(a2a): add A2A Python SDK as project dependency #3178

Merged
freemo merged 1 commit from fix/a2a-python-sdk-dependency into master 2026-04-05 21:09:56 +00:00
Owner

Summary

  • Adds a2a-sdk>=0.3.0 to [project.dependencies] in pyproject.toml
  • Regenerates uv.lock to include a2a-sdk 0.3.25 and its transitive dependencies
  • Adds Behave TDD scenarios confirming the a2a module is importable as a project dependency

Motivation

The specification (§Overview, §Server and Client Architecture) explicitly states: "Both transports use the A2A Python SDK." The a2a-sdk package (the official A2A Python SDK from a2a-protocol.org, published by Google) was absent from pyproject.toml and uv.lock, making the project non-compliant with ADR-047.

The a2a-sdk package installs as the a2a Python module and provides A2AClient, A2AGrpcClient, and the full transport layer required by the spec.

Approach

  1. TDD: Wrote failing Behave scenarios first (3 scenarios covering: dependency declaration, module importability, and A2AClient class availability)
  2. Implementation: Added "a2a-sdk>=0.3.0" to [project.dependencies] with a comment referencing ADR-047
  3. Lock file: Regenerated uv.lock via uv lock — resolves to a2a-sdk 0.3.25
  4. Verification: uv sync installs cleanly; uv pip list | grep a2a confirms a2a-sdk 0.3.25 is installed

Quality Gates

  • nox -e lint — all checks passed
  • nox -e typecheck — 0 errors, 0 warnings
  • nox -e unit_tests — 14,429 scenarios passed, 0 failed (including 3 new TDD scenarios)
  • uv sync — installs cleanly
  • uv pip list | grep a2aa2a-sdk 0.3.25 confirmed

Files Changed

  • pyproject.toml — added a2a-sdk>=0.3.0 to [project.dependencies]
  • uv.lock — regenerated with a2a-sdk and transitive dependencies
  • features/tdd_a2a_sdk_dependency.feature — new TDD Behave scenarios
  • features/steps/tdd_a2a_sdk_dependency_steps.py — step definitions

Closes #2922


Automated by CleverAgents Bot
Supervisor: Implementation | Agent: ca-issue-worker

## Summary - Adds `a2a-sdk>=0.3.0` to `[project.dependencies]` in `pyproject.toml` - Regenerates `uv.lock` to include `a2a-sdk 0.3.25` and its transitive dependencies - Adds Behave TDD scenarios confirming the `a2a` module is importable as a project dependency ## Motivation The specification (§Overview, §Server and Client Architecture) explicitly states: *"Both transports use the A2A Python SDK."* The `a2a-sdk` package (the official A2A Python SDK from [a2a-protocol.org](https://a2a-protocol.org), published by Google) was absent from `pyproject.toml` and `uv.lock`, making the project non-compliant with ADR-047. The `a2a-sdk` package installs as the `a2a` Python module and provides `A2AClient`, `A2AGrpcClient`, and the full transport layer required by the spec. ## Approach 1. **TDD**: Wrote failing Behave scenarios first (3 scenarios covering: dependency declaration, module importability, and `A2AClient` class availability) 2. **Implementation**: Added `"a2a-sdk>=0.3.0"` to `[project.dependencies]` with a comment referencing ADR-047 3. **Lock file**: Regenerated `uv.lock` via `uv lock` — resolves to `a2a-sdk 0.3.25` 4. **Verification**: `uv sync` installs cleanly; `uv pip list | grep a2a` confirms `a2a-sdk 0.3.25` is installed ## Quality Gates - ✅ `nox -e lint` — all checks passed - ✅ `nox -e typecheck` — 0 errors, 0 warnings - ✅ `nox -e unit_tests` — 14,429 scenarios passed, 0 failed (including 3 new TDD scenarios) - ✅ `uv sync` — installs cleanly - ✅ `uv pip list | grep a2a` — `a2a-sdk 0.3.25` confirmed ## Files Changed - `pyproject.toml` — added `a2a-sdk>=0.3.0` to `[project.dependencies]` - `uv.lock` — regenerated with `a2a-sdk` and transitive dependencies - `features/tdd_a2a_sdk_dependency.feature` — new TDD Behave scenarios - `features/steps/tdd_a2a_sdk_dependency_steps.py` — step definitions Closes #2922 --- **Automated by CleverAgents Bot** Supervisor: Implementation | Agent: ca-issue-worker
fix(a2a): add A2A Python SDK as project dependency
All checks were successful
CI / lint (pull_request) Successful in 3m44s
CI / typecheck (pull_request) Successful in 3m58s
CI / build (pull_request) Successful in 23s
CI / helm (pull_request) Successful in 24s
CI / security (pull_request) Successful in 4m3s
CI / quality (pull_request) Successful in 3m40s
CI / unit_tests (pull_request) Successful in 10m23s
CI / e2e_tests (pull_request) Successful in 17m10s
CI / integration_tests (pull_request) Successful in 25m25s
CI / coverage (pull_request) Successful in 14m4s
CI / docker (pull_request) Successful in 1m24s
CI / status-check (pull_request) Successful in 2s
CI / benchmark-publish (pull_request) Has been skipped
CI / benchmark-regression (pull_request) Successful in 57m0s
a5d6f0c393
Add a2a-sdk>=0.3.0 to [project.dependencies] in pyproject.toml.
The specification mandates that both local (stdio) and server (HTTP)
transports use the A2A Python SDK (ADR-047). Previously the package
was absent from pyproject.toml and uv.lock, making the project
non-compliant with the spec requirement.

Changes:
- Add 'a2a-sdk>=0.3.0' to [project.dependencies] in pyproject.toml
- Regenerate uv.lock to include a2a-sdk 0.3.25 and its transitive deps
- Add Behave scenarios confirming a2a is importable as a project dependency
- Add step definitions for the new TDD scenarios

ISSUES CLOSED: #2922
freemo added this to the v3.4.0 milestone 2026-04-05 07:25:34 +00:00
Author
Owner

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-3178-1743897600]


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-3178-1743897600] --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo left a comment

Code Review — LGTM

PR: fix(a2a): add A2A Python SDK as project dependency

Review Checklist

Correctness: Adds a2a-sdk>=0.3.0 to [project.dependencies] in pyproject.toml. The spec explicitly states "Both transports use the A2A Python SDK." This was a missing dependency.

TDD Approach: Failing Behave scenarios written first — 3 scenarios covering dependency declaration, module importability, and A2AClient class availability.

Test Coverage: 3 new BDD scenarios in features/tdd_a2a_sdk_dependency.feature.

Type Safety: No # type: ignore. Pyright passes with 0 errors.

Commit Format: fix(a2a): follows Conventional Changelog format.

Labels/Milestone: Type/Bug, milestone v3.4.0 — correctly assigned.

Decision: LGTM — Proceeding to merge when CI passes.


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

## Code Review — LGTM ✅ **PR:** fix(a2a): add A2A Python SDK as project dependency ### Review Checklist **✅ Correctness:** Adds `a2a-sdk>=0.3.0` to `[project.dependencies]` in `pyproject.toml`. The spec explicitly states "Both transports use the A2A Python SDK." This was a missing dependency. **✅ TDD Approach:** Failing Behave scenarios written first — 3 scenarios covering dependency declaration, module importability, and `A2AClient` class availability. **✅ Test Coverage:** 3 new BDD scenarios in `features/tdd_a2a_sdk_dependency.feature`. **✅ Type Safety:** No `# type: ignore`. Pyright passes with 0 errors. **✅ Commit Format:** `fix(a2a):` follows Conventional Changelog format. **✅ Labels/Milestone:** `Type/Bug`, milestone `v3.4.0` — correctly assigned. ### Decision: **LGTM** — Proceeding to merge when CI passes. --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo scheduled this pull request to auto merge when all checks succeed 2026-04-05 08:32:33 +00:00
Author
Owner

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-3178-1775373200]


Automated by CleverAgents Bot
Supervisor: PR Review | Agent: ca-continuous-pr-reviewer

🔒 Review claimed by reviewer-pool-1 [claim-token: reviewer-pool-1-3178-1775373200] --- **Automated by CleverAgents Bot** Supervisor: PR Review | Agent: ca-continuous-pr-reviewer
freemo merged commit 920faa0dd8 into master 2026-04-05 21:09:45 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Reference
cleveragents/cleveragents-core!3178
No description provided.