Context
a2a-sdk 1.0.0 was released 2026-04-20 as a breaking rewrite. PR #238 capped our pin at `<1.0` to keep CI green until migration.
Breaking changes surfaced by mypy (28 errors across 5 files):
- `a2a.types.DataPart`, `TextPart`, `MessageSendParams` no longer at top level — moved to `a2a.types.a2a_pb2`.
- `Part`, `Message`, `SendMessageRequest`, `TaskStatusUpdateEvent`, `AgentCard` constructors changed — `root=` kwarg removed, `final=`, `url=`, `id=`, `params=` changed.
- `DefaultRequestHandler` renamed (`RequestHandler` or `LegacyRequestHandler`).
- `a2a.utils.errors.ServerError` removed.
- `a2a.client.A2AClient` renamed to `Client`.
- `a2a.server.apps.jsonrpc.starlette_app` moved/missing.
- `TaskState` no longer Literal-comparable to plain strings.
Files affected
- `src/adcp/webhooks.py`
- `src/adcp/protocols/a2a.py`
- `src/adcp/client.py`
- `src/adcp/server/a2a_server.py`
- `src/adcp/server/translate.py`
Scope
Non-trivial. Probably wants to wait on the a2a-sdk 1.0.x changelog stabilising before we chase it. Defer until (a) we actually need a 1.0.x feature or (b) maintainers patch the `root=` deprecation.
Acceptance
- Drop the `<1.0` cap in pyproject.toml.
- Rewrite type imports, constructor call sites, error-module imports across the 5 files.
- Full suite + mypy clean on a2a-sdk 1.0.x.
Context
a2a-sdk 1.0.0 was released 2026-04-20 as a breaking rewrite. PR #238 capped our pin at `<1.0` to keep CI green until migration.
Breaking changes surfaced by mypy (28 errors across 5 files):
Files affected
Scope
Non-trivial. Probably wants to wait on the a2a-sdk 1.0.x changelog stabilising before we chase it. Defer until (a) we actually need a 1.0.x feature or (b) maintainers patch the `root=` deprecation.
Acceptance