Skip to content

deps: migrate to a2a-sdk 1.0.0 breaking rewrite #240

@bokelley

Description

@bokelley

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions