Skip to content

Releases: adcontextprotocol/adcp-client-python

v5.6.0

19 May 23:35
ee62e59

Choose a tag to compare

5.6.0 (2026-05-19)

Features

  • auth: per-instance discovery_tools override for BearerTokenAuth (#743) (76d0673)

Bug Fixes

  • types: open Format.assets discriminated union with UnknownFormatAsset fallback arm (issue #742) (#744) (7904f85)
  • types: resolve capability sub-models via field annotation, not numbered names (#745) (b63c7e6)

Documentation

  • decisioning: document AccountStore.resolve() as the multi-tenant encoding seam (#739) (0b30743)

v5.5.0

14 May 12:22
49c4b5a

Choose a tag to compare

5.5.0 (2026-05-14)

Features

  • agents: adopt shared .agents/roles/ layout from adcp#4500 (#730) (fe02c17)
  • agents: Phase 3 — weekly sync workflow from adcp (#731) (884873a)
  • decisioning: PgProposalStore + framework package derivation (#727) (#732) (c41d4a8)

Bug Fixes

Documentation

  • response-extension import path guidance for context-specific schema variants (#644) (61fb835)

v5.4.0

13 May 14:08
eb9945a

Choose a tag to compare

5.4.0 (2026-05-13)

Features

  • decisioning: LazyPlatformRouter.proposal_stores= + proposal_store_factory= (#722) (#724) (a65185e)
  • decisioning: ProposalCapabilities.auto_commit_on_put_draft (#723) (#725) (5567e2b)
  • idempotency: inject 'replayed: true' on cache hit (#714) (#717) (b511e01)
  • server: on_startup / on_shutdown hooks on serve(transport='both') (#713) (aca625e)
  • types: SchemaVariant marker + mypy plugin for cross-class overrides (#710) (#718) (0b53cc9)

Bug Fixes

  • decisioning: async-safe create_adcp_server_from_platform (#700) (#719) (056714f)
  • server: Authorization: Bearer always accepted; legacy headers additive (#720) (#721) (dd6503e)
  • server: emit WWW-Authenticate on every 401 (RFC 6750 §3) #712 (#715) (ce707d3)

v5.3.0

12 May 22:20
116cddb

Choose a tag to compare

5.3.0 (2026-05-12)

Features

  • adagents: add validate_adagents_structure helper (#708) (ccd1955)
  • adagents: ads.txt MANAGERDOMAIN fallback discovery (#704) (#705) (fddea1a)
  • buyer-agent-registry: with_caching factory auto-invalidates on mutations (#692) (de65957)
  • server: boot validator for webhook_signing.supported capability invariant (#695) (7e9a734)
  • testing: add SellerA2AClient for in-process A2A handler testing (#694) (2d1ae2f)
  • testing: add SellerTestClient for in-process handler testing (#666) (965eeda)
  • types: Sequence[T] on response-only list fields for covariant adoption (#635) (19be8db)

Bug Fixes

  • ci: v3 reference seller storyboard job actually asserts on results (#693) (27a5866)
  • compat: extract hostname from brand_manifest URLs with paths (#679) (6bb2c26), closes #677
  • compat: handle inline BrandManifest object in v2.5 adapters (#685) (edd7d0a)
  • compat: warn on non-standard brand_manifest path in inline-object branch (#688) (840e6b3), closes #687
  • compat: warn when brand_manifest non-standard path is flattened to domain (#686) (0568d2e)
  • server: preserve Starlette lifespan when public_url is callable (#680) (8632847), closes #676

v5.2.0

11 May 17:31
abac33b

Choose a tag to compare

5.2.0 (2026-05-11)

Features

  • client: server_version constructor scaffold (stage 7-lite) (#674) (5c7acb4)
  • client: surface structured adcp_error on TaskResult (#675) (fe66335)
  • compat: AdapterPair pattern + v2.5 sync_creatives (stage 4) (#665) (0e47dcc)
  • compat: server-side shape-based v2.5 detection (stage 6) (#673) (d6210cc)
  • compat: v2.5 create_media_buy + update_media_buy adapters (stage 5c) (#669) (4e3473a)
  • compat: v2.5 get_products adapter (stage 5b) (#668) (2025520)
  • compat: v2.5 list_creative_formats + preview_creative adapters; deprecate spec_compat_hooks (#667) (fec91d6)
  • schemas: fetch + bundle v2.5 schemas from pinned upstream SHA (stage 4b1) (#670) (bd6837f)
  • server: pre-adapter validation against legacy schema (stage 4b2) (#671) (4ef032b)
  • server: route validation by wire adcp_version (stage 3) (#664) (d2ffac7)
  • validation: per-version validator loader (stage 2 of versioned validation) (#659) (6311a9a)

v5.1.0

11 May 08:07
140cbd1

Choose a tag to compare

5.1.0 (2026-05-11)

Features

  • a2a: per-request agent-card URL resolution via callable public_url (#650) (1b4f3e0)
  • server: add spec_compat_hooks() for pre-v3 / pre-4.4 buyer compatibility (#648) (30690e5)
  • server: TenantRegistry.as_platform() adapter for serve() integration (#649) (0e396ca)
  • testing: forward pre_validation_hooks through build_asgi_app (#655) (2df49c0)

Bug Fixes

  • decisioning: wrap pydantic.ValidationError from delegates as INVALID_REQUEST (#656) (976ab4f)

v5.0.0

10 May 17:32
b279d1a

Choose a tag to compare

5.0.0 (2026-05-10)

⚠ BREAKING CHANGES

  • types: callers passing affected_packages into a function typed def f(x: list[Package]) will see a mypy error and need to migrate to Sequence[Package]. Runtime behavior is unchanged; the change is annotation-only.
  • types: Subclasses that add fields without Field(exclude=True) will now have those fields appear in model_dump() output where they were previously dropped by Pydantic's declared-schema firewall. Audit each subclass and mark internal fields with Field(exclude=True). To restore the prior behavior at a specific call site, pass serialize_as_any=False explicitly.
  • webhooks: domain kwarg removed from create_mcp_webhook_payload and WebhookSender.send_mcp. Migrate to protocol (kebab-case string or AdcpProtocol enum value).
  • webhooks: create_mcp_webhook_payload returns a Pydantic model, not a dict; task_type is now required.

Features

  • a2a: add public_url param to agent card for production deployments (#621) (14d294c)
  • server: add TenantRegistry with per-tenant health tracking (#628) (ae687b6)
  • server: default MCP streamable-http to stateful with idle eviction (#636) (3173a54)
  • server: expose RequestContext.transport and current_transport ContextVar (#627) (20e5d53)
  • server: pre-validation request hook for spec-default injection (#614) (#629) (05d4cd8)
  • testing: adopter type-checking test suite with zero-ignore contract (#634) (20e496c)
  • testing: extend build_asgi_app with full serve-layer kwargs (#626) (8679a95)
  • types: default serialize_as_any=True in AdCPBaseModel.model_dump (#639) (3160ace), closes #615
  • types: widen extension-point list[X] to Sequence[X] (#624) (#640) (96ccfd4)
  • webhooks: create_mcp_webhook_payload returns McpWebhookPayload (#632) (9eb962c)
  • webhooks: replace domain kwarg with typed protocol (AdcpProtocol enum) (#637) (fdd4053)

Bug Fixes

  • server: register /.well-known/agent.json alias route in create_a2a_server (#613) (2989101)
  • server: strip None-valued asset fields from dict-based response builder output (#631) (c02ea84), closes #622
  • types: widen canceled Literal[True]=True to Literal[True]|None=None on request types (#643) (120ae3b)

Documentation

  • types: document Field(exclude=True) and @model_serializer for nested wire isolation (#630) (4912af9)

v4.6.1

10 May 11:15
fca954e

Choose a tag to compare

4.6.1 (2026-05-10)

Bug Fixes

  • decisioning: wire sync_accounts/list_accounts dispatch to AccountStore Protocols (#610) (dabf4fb)

v4.6.0

09 May 12:54
7125bce

Choose a tag to compare

4.6.0 (2026-05-09)

Features

  • webhooks: public to_wire_dict() serialization seam (#602) (6a06e88)

Bug Fixes

  • decisioning: re-validate params through platform method's stricter subclass annotation (#597) (3d269f5)
  • webhooks: add canceled/rejected/auth-required to A2A status map; fail fast on unknowns (#606) (89f9491)
  • webhooks: correct type annotations for extract_webhook_result_data and payload builders (#600) (e624b5c)
  • webhooks: reject unknown AdCP status in create_a2a_webhook_payload (#605) (37d2cda)

Documentation

  • contributing: document PR title format to prevent silent CHANGELOG drops (#580) (2c5ec64)

v4.5.0

08 May 02:56
2cd6496

Choose a tag to compare

4.5.0 (2026-05-07)

Features

  • auth: per-leg header config + agent-card bearerAuth scheme (#595) (52f45ef)

Bug Fixes

  • client: preserve agent_uri trailing slash; widen MCP URL fallbacks (#582) (1db3ce3)