Releases: adcontextprotocol/adcp-client-python
Releases · adcontextprotocol/adcp-client-python
v6.1.0-beta.1
v6.0.0-beta.1
v5.7.0
5.7.0 (2026-05-22)
Features
- adagents: divergence detector + ?include=properties for directory inverse-lookup (#749 Part 3, adcp#4894) (#752) (1281076)
- adagents: fetch_agent_authorizations_from_directory for AAO inverse lookup (#769) (1c4e57d)
- adagents: publisher_domains compact form, revoked_publisher_domains, streaming fetch caps (closes #729) (#753) (352d1bb)
- decisioning: emit AGENT_SUSPENDED / AGENT_BLOCKED dedicated codes (closes #409) (#748) (12f8ffe)
- decisioning: Tier 3 brand-authz dispatch gate (#350 stage 5, closes #350) (#785) (1ad6df9)
- decisioning: wire create_media_buy_store into PlatformHandler dispatch (closes #462) (#773) (062c6f0)
- examples: handle @adcp/sdk@7.10.x storyboard scenarios (closes #782) (#788) (7ef1b1a)
- pick up beta 3 wholesale products and signals (#799) (0deeaeb)
- preview: opt-in v3.1.0-beta.1 client surface (#4761, #4762, #4763) (#747) (35fdd47)
- schemas: patches/ post-process infra + restore #753/#792 hand-edits (#795) (4e6a722)
- signing: BrandAuthorizationResolver (Tier 3, #350 stages 1-3) (#770) (9028a88)
- signing: verifier key_origins check + IDNA-2008 canonicalization (closes #776, #777) (#789) (31354b4)
- translation: list known keys in TranslationMap KeyError (#768) (7545424)
- types: auto-enforce publisher-selector XOR at Pydantic parse time (closes #759) (#761) (e973864)
- validation: validate_publisher_properties_item accepts Pydantic models (#756) (01c6491)
Bug Fixes
- adagents: disable follow_redirects on ads.txt MANAGERDOMAIN fetch (#754) (76a679f)
- adagents: inline-resolution path for publisher_properties selectors + publisher_domains[] fan-out (#750) (659135f)
- adagents: resolve-and-validate gate against DNS-based SSRF (#757, partial) (#760) (969f373)
- allow owned signals discovery without activation (#792) (46ae0c9)
- decisioning: timing-oracle defense on PERMISSION_DENIED branches (#772) (#774) (c23c9d5)
- preserve full sync_accounts request for account stores (#796) (2b7ad01)
- signing: Argus follow-ups on #789 — IDNA + IP literals, Protocol contract, misconfig warnings, diagnostic hygiene (#798) (fcb64fc)
Reverts
Documentation
v5.6.0
v5.5.0
v5.4.0
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
v5.3.0
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
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
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
v5.0.0
5.0.0 (2026-05-10)
⚠ BREAKING CHANGES
- types: callers passing
affected_packagesinto a function typeddef f(x: list[Package])will see a mypy error and need to migrate toSequence[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:
domainkwarg removed fromcreate_mcp_webhook_payloadandWebhookSender.send_mcp. Migrate toprotocol(kebab-case string orAdcpProtocolenum value). - webhooks:
create_mcp_webhook_payloadreturns a Pydantic model, not a dict;task_typeis 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
domainkwarg with typedprotocol(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)