From a8fa7e22f98654273f4ee6491a2a3cb787aca320 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 26 May 2026 16:05:57 +0000 Subject: [PATCH] chore(main): release adcp 6.0.0-beta.1 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 550 ++++++++++++++++++++++++++++++++++ pyproject.toml | 2 +- 3 files changed, 552 insertions(+), 2 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index d311c30d..d41bd0f1 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "6.3.0-beta.4" + ".": "6.0.0-beta.1" } diff --git a/CHANGELOG.md b/CHANGELOG.md index d734a5d7..bac867d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,555 @@ # Changelog +## [6.0.0-beta.1](https://github.com/adcontextprotocol/adcp-client-python/compare/adcp-v6.3.0-beta.4...adcp-v6.0.0-beta.1) (2026-05-26) + + +### ⚠ BREAKING CHANGES + +* read `media_buy_status` for lifecycle; `status` is now the task envelope. +* **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. +* **migration:** ``FormatId.__name__`` and ``__qualname__`` change from ``"FormatId"`` to ``"FormatReferenceStructuredObject"`` because AdCP 3.0.1 polished the schema title on ``core/format-id.json``. The public ``adcp.FormatId`` alias keeps working — ``Format(format_id= FormatId(...))`` and ``isinstance(x, FormatId)`` are unchanged. Two niche cases break: pickled ``FormatId`` instances from 4.0 fail to unpickle on 4.1, and snapshot tests / log scrapers asserting on ``__name__`` see the rename. See MIGRATION_v4.0_to_v4.1.md. +* **a2a:** `ADCPClient.pending_task_id` is now `ADCPClient.active_task_id` (same for `A2AAdapter`). The constructor's `context_id=` kwarg and `reset_context()` now raise `TypeError` (was `ValueError`) on non-A2A protocols — the string value is fine, the operation doesn't apply to MCP. +* **types:** rename Asset content types to Content +* **server:** pluggable TaskStore on A2A — unblock production A2A adoption +* **server:** expert-review followups — tenant-scoped idempotency, A2A context_factory, ContextVar safety +* **types:** AssetsNN semantic aliases + format_category shim + downstream smoke +* **sdk:** ResolvedBrand.brand_manifest removed. Use .brand. CreateMediaBuyRequest.brand_manifest removed. Use brand. BrandManifest, FormatCategory, DeliverTo, PromotedProducts, PromotedOfferings, Pricing, PackageStatus imports now raise ImportError. See MIGRATION_v3_to_v4.md. +* **webhooks:** ADCPClient webhook verification now requires raw_body to be passed through from the HTTP handler. Callers that relied on the implicit re-serialize-from-payload fallback will start seeing ADCPWebhookSignatureError until they plumb the raw body through from their framework's pre-parse hook. Fix path: +* **webhooks:** get_adcp_signed_headers_for_webhook now signs the compact-separator JSON form of the payload. Callers that previously hand-serialized spaced JSON and POSTed it with content= will see signature mismatches after this change. The fix is to also serialize with separators=(",", ":") or switch to httpx json= which already uses that form. +* serve(mount=...) kwarg removed. + +### Features + +* **a2a:** add public_url param to agent card for production deployments ([#621](https://github.com/adcontextprotocol/adcp-client-python/issues/621)) ([14d294c](https://github.com/adcontextprotocol/adcp-client-python/commit/14d294c7922ad0fa91b30ad1f03de75ff9c7b694)) +* **a2a:** auto-retain contextId + taskId across multi-turn calls ([0564635](https://github.com/adcontextprotocol/adcp-client-python/commit/056463547e88dde2919d644d2dbc32e13dea947a)) +* **a2a:** auto-retain contextId + taskId across multi-turn calls ([8a084ec](https://github.com/adcontextprotocol/adcp-client-python/commit/8a084ecd1e8cf3e31c57fbe6f6c25f673b6cbe07)) +* **a2a:** checkpoint/from_checkpoint API, harden context-id retention ([a17ffb3](https://github.com/adcontextprotocol/adcp-client-python/commit/a17ffb382aa1d777e5e98fdc26c6cc9efd4898c0)) +* **a2a:** expose peer protocol versions, add force_a2a_version pin ([3898c53](https://github.com/adcontextprotocol/adcp-client-python/commit/3898c536fb08dd088ff1074216a8c56ae727dc63)) +* **a2a:** migrate to a2a-sdk 1.0 with 0.3 wire-compat shim ([c07db7d](https://github.com/adcontextprotocol/adcp-client-python/commit/c07db7df96b1744b0660ecf367375178ef87defc)) +* **a2a:** migrate to a2a-sdk 1.0 with 0.3 wire-compat shim (Release-As: 4.1.0) ([28a4a13](https://github.com/adcontextprotocol/adcp-client-python/commit/28a4a13867adb039504fde59ceab48e2d961380a)) +* **a2a:** per-request agent-card URL resolution via callable public_url ([#650](https://github.com/adcontextprotocol/adcp-client-python/issues/650)) ([1b4f3e0](https://github.com/adcontextprotocol/adcp-client-python/commit/1b4f3e05bd075b65b334a289fa05403008918796)) +* **adagents:** add permissive property resolver ([#863](https://github.com/adcontextprotocol/adcp-client-python/issues/863)) ([7f45742](https://github.com/adcontextprotocol/adcp-client-python/commit/7f457422beec2912e10a84f7e3eed665bbc458af)) +* **adagents:** add validate_adagents_structure helper ([#708](https://github.com/adcontextprotocol/adcp-client-python/issues/708)) ([ccd1955](https://github.com/adcontextprotocol/adcp-client-python/commit/ccd19559b97417f9b6a0141e857d2c23cb78289f)) +* **adagents:** ads.txt MANAGERDOMAIN fallback discovery ([#704](https://github.com/adcontextprotocol/adcp-client-python/issues/704)) ([#705](https://github.com/adcontextprotocol/adcp-client-python/issues/705)) ([fddea1a](https://github.com/adcontextprotocol/adcp-client-python/commit/fddea1ab2f44db12fc932767b505009a457f2540)) +* **adagents:** divergence detector + ?include=properties for directory inverse-lookup ([#749](https://github.com/adcontextprotocol/adcp-client-python/issues/749) Part 3, adcp[#4894](https://github.com/adcontextprotocol/adcp-client-python/issues/4894)) ([#752](https://github.com/adcontextprotocol/adcp-client-python/issues/752)) ([1281076](https://github.com/adcontextprotocol/adcp-client-python/commit/128107638aaea1927e99db3fe67614d9e951f8c8)) +* **adagents:** fetch_agent_authorizations_from_directory for AAO inverse lookup ([#769](https://github.com/adcontextprotocol/adcp-client-python/issues/769)) ([1c4e57d](https://github.com/adcontextprotocol/adcp-client-python/commit/1c4e57d47ee774b0be8f77540df1b3b60953a175)) +* **adagents:** publisher_domains compact form, revoked_publisher_domains, streaming fetch caps (closes [#729](https://github.com/adcontextprotocol/adcp-client-python/issues/729)) ([#753](https://github.com/adcontextprotocol/adcp-client-python/issues/753)) ([352d1bb](https://github.com/adcontextprotocol/adcp-client-python/commit/352d1bb6719cfd20bf4a703d1d6bd0d1077a0c47)) +* **adcp:** support ADCP_BASE_URL env override in sync_schemas.py ([#285](https://github.com/adcontextprotocol/adcp-client-python/issues/285)) ([a2bc977](https://github.com/adcontextprotocol/adcp-client-python/commit/a2bc9770dfb86a5b2cca94b671af8cb899224ce5)) +* **adcp:** sync canonical agent skills from protocol tarball ([#275](https://github.com/adcontextprotocol/adcp-client-python/issues/275)) ([5312f05](https://github.com/adcontextprotocol/adcp-client-python/commit/5312f05df25d8b6ad240f497e88a4c15f58990a8)) +* add webhook proof-of-control helper ([#843](https://github.com/adcontextprotocol/adcp-client-python/issues/843)) ([232f7ef](https://github.com/adcontextprotocol/adcp-client-python/commit/232f7ef6d08e16234b6227ac34f5ba091043a51e)) +* add webhook URL policy and wholesale feed sender ([65f84d2](https://github.com/adcontextprotocol/adcp-client-python/commit/65f84d2ea74775c08b067bd393ab82127c558918)) +* **agents:** /claude-triage comment nudge ([5af8b47](https://github.com/adcontextprotocol/adcp-client-python/commit/5af8b4736516b986045717d62da94e700aa57cca)) +* **agents:** /claude-triage comment nudge ([d3b8b28](https://github.com/adcontextprotocol/adcp-client-python/commit/d3b8b28d8dc9cbf1ab2df86b1a0c7f619ad3c332)) +* **agents:** add Claude Code routines scaffolding ([aa23ef3](https://github.com/adcontextprotocol/adcp-client-python/commit/aa23ef3d35de8b7740924b4ae1ec6ec7b8a832a7)) +* **agents:** add Claude Code routines scaffolding ([d312abf](https://github.com/adcontextprotocol/adcp-client-python/commit/d312abff8e63af7a36b23073e33d8976dd9214aa)) +* **agents:** add silent-triage path to triage prompt ([6abb495](https://github.com/adcontextprotocol/adcp-client-python/commit/6abb49529d79a3947fd95c675c9f48852c8adff3)) +* **agents:** adopt shared .agents/roles/ layout from adcp[#4500](https://github.com/adcontextprotocol/adcp-client-python/issues/4500) ([#730](https://github.com/adcontextprotocol/adcp-client-python/issues/730)) ([fe02c17](https://github.com/adcontextprotocol/adcp-client-python/commit/fe02c173bfc5a33bfdd378f12f01bea5f2663876)) +* **agents:** commit .claude/agents/ experts for cloud routine access ([55144f2](https://github.com/adcontextprotocol/adcp-client-python/commit/55144f273513479ba64f3c95682a84ef69847815)) +* **agents:** migrate manual triage nudge to /triage slash-command-dispatch ([#267](https://github.com/adcontextprotocol/adcp-client-python/issues/267)) ([6bd434d](https://github.com/adcontextprotocol/adcp-client-python/commit/6bd434d488f480eb75f8dba075a22fcfa544d44a)) +* **agents:** Phase 3 — weekly sync workflow from adcp ([#731](https://github.com/adcontextprotocol/adcp-client-python/issues/731)) ([884873a](https://github.com/adcontextprotocol/adcp-client-python/commit/884873a12d51adafef51c298220f21dae6096d4b)) +* **agents:** security + product review fixes for triage routine ([cbafef5](https://github.com/adcontextprotocol/adcp-client-python/commit/cbafef5c76d2c59328139e743194c216a5dc5d51)) +* **agents:** switch triage nudge prefix to [@claude-triage](https://github.com/claude-triage) ([#265](https://github.com/adcontextprotocol/adcp-client-python/issues/265)) ([77bfce2](https://github.com/adcontextprotocol/adcp-client-python/commit/77bfce298e7fc879ea409dc97f6975e72511dd1e)) +* **agents:** triage bundles ready items, never splits issues ([#266](https://github.com/adcontextprotocol/adcp-client-python/issues/266)) ([2227a6b](https://github.com/adcontextprotocol/adcp-client-python/commit/2227a6bb23e4c7486388c3663f9b87611d39914f)) +* **agents:** triage default — execute when outcome is clear ([e3f8a6c](https://github.com/adcontextprotocol/adcp-client-python/commit/e3f8a6c8787f623881d3b3a2c9e8df43b126c4c5)) +* **agents:** triage defer subtypes + partial-rollout linkage rule ([#273](https://github.com/adcontextprotocol/adcp-client-python/issues/273)) ([c97aa95](https://github.com/adcontextprotocol/adcp-client-python/commit/c97aa95e1e9e8325802a71f92f807306128556e5)) +* **agents:** triage fires on comments + claude-triaging lifecycle label ([#277](https://github.com/adcontextprotocol/adcp-client-python/issues/277)) ([604d795](https://github.com/adcontextprotocol/adcp-client-python/commit/604d79587be99af4a08e815c1dddc527d3b36721)) +* **agents:** triage PR ergonomics — refs adcp[#3121](https://github.com/adcontextprotocol/adcp-client-python/issues/3121) ([#279](https://github.com/adcontextprotocol/adcp-client-python/issues/279)) ([31606eb](https://github.com/adcontextprotocol/adcp-client-python/commit/31606eb2230267fe9de7c5149ac716af239ff33a)) +* **agents:** triage prompt handles RFC/epic/scope bucket/milestone ([cac3525](https://github.com/adcontextprotocol/adcp-client-python/commit/cac35250b8a57a978bb481aa5134f38d1731fe5f)) +* **agents:** triage runs pre-PR build+test gate before expert review ([#271](https://github.com/adcontextprotocol/adcp-client-python/issues/271)) ([8fcc5ee](https://github.com/adcontextprotocol/adcp-client-python/commit/8fcc5ee220a0f4792fec9b724e7b602b99596024)) +* **agents:** triage runs pre-PR expert review on diff before opening PR ([#269](https://github.com/adcontextprotocol/adcp-client-python/issues/269)) ([46dd708](https://github.com/adcontextprotocol/adcp-client-python/commit/46dd708f7dcc6a241b655745ab281001b6a1dbc7)) +* **agents:** triage v2 — expert consultation + race + coverage ([bf6e18b](https://github.com/adcontextprotocol/adcp-client-python/commit/bf6e18bdacebdf69f959bb7c915ef34cd6333a13)) +* align media-buy responses with AdCP 3.1 ([391dae6](https://github.com/adcontextprotocol/adcp-client-python/commit/391dae6c9c8a753a790aa049970c80205a14309d)) +* allow externally managed webhook signing capabilities ([#876](https://github.com/adcontextprotocol/adcp-client-python/issues/876)) ([3c312a0](https://github.com/adcontextprotocol/adcp-client-python/commit/3c312a0dacea1c99535dac0bac68db54a6301d26)) +* AssetsNN aliases, format_category shim, MCP adoption hooks — unblock salesagent ([ed7d30a](https://github.com/adcontextprotocol/adcp-client-python/commit/ed7d30a8508b00c970247165191c0d9c83255d64)) +* **auth:** header_name + bearer_prefix_required on BearerTokenAuthMiddleware ([#545](https://github.com/adcontextprotocol/adcp-client-python/issues/545)) ([b16d18f](https://github.com/adcontextprotocol/adcp-client-python/commit/b16d18f88f4c905843e297c06341e475a89a991b)) +* **auth:** per-instance discovery_tools override for BearerTokenAuth ([#743](https://github.com/adcontextprotocol/adcp-client-python/issues/743)) ([76d0673](https://github.com/adcontextprotocol/adcp-client-python/commit/76d067344390693f811d412b7d4deea64e0e2633)) +* **auth:** per-leg header config + agent-card bearerAuth scheme ([#595](https://github.com/adcontextprotocol/adcp-client-python/issues/595)) ([52f45ef](https://github.com/adcontextprotocol/adcp-client-python/commit/52f45efbc4e2ba20bbb824e3b86b17d171d7570b)) +* **buyer-agent-registry:** caching + rate-limit + audit emission ([#380](https://github.com/adcontextprotocol/adcp-client-python/issues/380)) ([#407](https://github.com/adcontextprotocol/adcp-client-python/issues/407)) ([5a1e6b6](https://github.com/adcontextprotocol/adcp-client-python/commit/5a1e6b620c86da88259f7477f91179762c4a04e2)) +* **buyer-agent-registry:** with_caching factory auto-invalidates on mutations ([#692](https://github.com/adcontextprotocol/adcp-client-python/issues/692)) ([de65957](https://github.com/adcontextprotocol/adcp-client-python/commit/de65957e26209befd9a1e3cca34df9ca5361de50)) +* **canonical-formats:** public API + v2→v1 projection ([#741](https://github.com/adcontextprotocol/adcp-client-python/issues/741), half 1 of 2) ([#841](https://github.com/adcontextprotocol/adcp-client-python/issues/841)) ([b455e2a](https://github.com/adcontextprotocol/adcp-client-python/commit/b455e2a8dd8197499404d546dfc512da1814e7c4)) +* **canonical-formats:** v1↔v2 reverse + pixel_tracker + narrowing ([#741](https://github.com/adcontextprotocol/adcp-client-python/issues/741), half 2 of 2) ([#845](https://github.com/adcontextprotocol/adcp-client-python/issues/845)) ([37e9225](https://github.com/adcontextprotocol/adcp-client-python/commit/37e92256891892c923e303acf73a5a9fee904090)) +* **client:** ADCPClient.from_mcp_client() factory for in-process MCP transport ([#293](https://github.com/adcontextprotocol/adcp-client-python/issues/293)) ([d83aa53](https://github.com/adcontextprotocol/adcp-client-python/commit/d83aa53981c80b9e50a84b5a745e85d5837e0d1a)) +* **client:** looks_like_v3_capabilities — drop the v2-downgrade footgun on capabilities-validation failure ([#475](https://github.com/adcontextprotocol/adcp-client-python/issues/475)) ([385dc80](https://github.com/adcontextprotocol/adcp-client-python/commit/385dc80f9c2043d175b7420dda7cfa3a8d387403)) +* **client:** server_version constructor scaffold (stage 7-lite) ([#674](https://github.com/adcontextprotocol/adcp-client-python/issues/674)) ([5c7acb4](https://github.com/adcontextprotocol/adcp-client-python/commit/5c7acb4be3e86d55f039e0643758605383c8c098)) +* **client:** surface structured adcp_error on TaskResult ([#675](https://github.com/adcontextprotocol/adcp-client-python/issues/675)) ([fe66335](https://github.com/adcontextprotocol/adcp-client-python/commit/fe66335006d188fdc77194403e77f08b44bfce6b)) +* **compat:** AdapterPair pattern + v2.5 sync_creatives (stage 4) ([#665](https://github.com/adcontextprotocol/adcp-client-python/issues/665)) ([0e47dcc](https://github.com/adcontextprotocol/adcp-client-python/commit/0e47dcc1cf19c2d6b31b90749af1b6733891694e)) +* **compat:** server-side shape-based v2.5 detection (stage 6) ([#673](https://github.com/adcontextprotocol/adcp-client-python/issues/673)) ([d6210cc](https://github.com/adcontextprotocol/adcp-client-python/commit/d6210cce69ae04a64536a5f35edc45d1bd0d67cc)) +* **compat:** v2.5 create_media_buy + update_media_buy adapters (stage 5c) ([#669](https://github.com/adcontextprotocol/adcp-client-python/issues/669)) ([4e3473a](https://github.com/adcontextprotocol/adcp-client-python/commit/4e3473a3a35b478bb6a6ef174af6790725d62a27)) +* **compat:** v2.5 get_products adapter (stage 5b) ([#668](https://github.com/adcontextprotocol/adcp-client-python/issues/668)) ([2025520](https://github.com/adcontextprotocol/adcp-client-python/commit/2025520985063303c162b46d68546734344f309a)) +* **compat:** v2.5 list_creative_formats + preview_creative adapters; deprecate spec_compat_hooks ([#667](https://github.com/adcontextprotocol/adcp-client-python/issues/667)) ([fec91d6](https://github.com/adcontextprotocol/adcp-client-python/commit/fec91d67cd0192b74470aa52c04688dbc34b37f4)) +* **decisioning:** Account v3 projection helpers — bank-details write-only guard ([#356](https://github.com/adcontextprotocol/adcp-client-python/issues/356)) ([#366](https://github.com/adcontextprotocol/adcp-client-python/issues/366)) ([5d898b6](https://github.com/adcontextprotocol/adcp-client-python/commit/5d898b6dda23db54e56d155a1de151a14721cf56)) +* **decisioning:** Account.mode + sandbox-authority gate for comply_test_controller (Phase 1) ([#483](https://github.com/adcontextprotocol/adcp-client-python/issues/483)) ([f5cd8cf](https://github.com/adcontextprotocol/adcp-client-python/commit/f5cd8cf7f4f2e03425302b5945d109c5f90cf2f9)) +* **decisioning:** add full stack registry factory ([#862](https://github.com/adcontextprotocol/adcp-client-python/issues/862)) ([28c4f64](https://github.com/adcontextprotocol/adcp-client-python/commit/28c4f6490a89fb9af413e6d3df7328878f60d94c)) +* **decisioning:** add registry observer removal ([#861](https://github.com/adcontextprotocol/adcp-client-python/issues/861)) ([2657a8b](https://github.com/adcontextprotocol/adcp-client-python/commit/2657a8ba0c72556aea027bb5a32a3897d299944f)) +* **decisioning:** add request-scoped capabilities hook ([#869](https://github.com/adcontextprotocol/adcp-client-python/issues/869)) ([23fb317](https://github.com/adcontextprotocol/adcp-client-python/commit/23fb3176a6d88f6986f5c81f185bc2fd848f822d)) +* **decisioning:** adopt structured capabilities in v3 reference seller ([8316105](https://github.com/adcontextprotocol/adcp-client-python/commit/83161053ecda45f10b2d263e902c628a6b158ef5)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** advertise_all kwarg + handler.get_advertised_tools ([#529](https://github.com/adcontextprotocol/adcp-client-python/issues/529)) ([8b1b384](https://github.com/adcontextprotocol/adcp-client-python/commit/8b1b384f410818ae0a35ad4bcaf1a496d706f3c6)) +* **decisioning:** align AccountStore.resolution literal with JS + Tier 1 docs ([#330](https://github.com/adcontextprotocol/adcp-client-python/issues/330)) ([6490948](https://github.com/adcontextprotocol/adcp-client-python/commit/6490948ae5d9abb668775db50652c36b989a80e0)) +* **decisioning:** AuthInfo.from_verified_signer — bridge to RFC 9421 verifier ([#365](https://github.com/adcontextprotocol/adcp-client-python/issues/365)) ([5ae109b](https://github.com/adcontextprotocol/adcp-client-python/commit/5ae109b893cedc998ffb0fa50699cb8af7cc8839)) +* **decisioning:** boot-time capabilities response shape validation ([#422](https://github.com/adcontextprotocol/adcp-client-python/issues/422)) ([#446](https://github.com/adcontextprotocol/adcp-client-python/issues/446)) ([127f164](https://github.com/adcontextprotocol/adcp-client-python/commit/127f164faa18b51e24e050e934d9dbd41956c9e2)) +* **decisioning:** boot-time validator for declared idempotency vs wired [@wrap](https://github.com/wrap) ([#543](https://github.com/adcontextprotocol/adcp-client-python/issues/543)) ([7657ad4](https://github.com/adcontextprotocol/adcp-client-python/commit/7657ad446b9bfd449b0170be7659838e093dc363)) +* **decisioning:** BrandRights/ContentStandards/PropertyLists/CollectionLists Protocols (breadth sprint Batch 4 — FINAL) ([#335](https://github.com/adcontextprotocol/adcp-client-python/issues/335)) ([aeb2543](https://github.com/adcontextprotocol/adcp-client-python/commit/aeb25434847828928bca45644769e77e22a09905)) +* **decisioning:** built-in fields projection on get_products responses ([#503](https://github.com/adcontextprotocol/adcp-client-python/issues/503)) ([06aaf51](https://github.com/adcontextprotocol/adcp-client-python/commit/06aaf5193890f96ab5730574498346e7380aeffb)) +* **decisioning:** CampaignGovernancePlatform Protocol (breadth sprint Batch 3) ([#334](https://github.com/adcontextprotocol/adcp-client-python/issues/334)) ([2ca828a](https://github.com/adcontextprotocol/adcp-client-python/commit/2ca828a6ab84f49521b819aecd917924c02d80b0)) +* **decisioning:** composeMethod + security composer helpers ([#466](https://github.com/adcontextprotocol/adcp-client-python/issues/466)) ([ddad4b9](https://github.com/adcontextprotocol/adcp-client-python/commit/ddad4b9853fb0df022eae5be3dec5ee660b76dc7)) +* **decisioning:** comprehensive Emma DX follow-up (P0/P1/P2 + examples) ([#339](https://github.com/adcontextprotocol/adcp-client-python/issues/339)) ([985dcd9](https://github.com/adcontextprotocol/adcp-client-python/commit/985dcd9a287a89d1fb79e321f856075c3b31af71)) +* **decisioning:** create_tenant_store — opinionated multi-tenant AccountStore with fail-closed isolation ([#473](https://github.com/adcontextprotocol/adcp-client-python/issues/473)) ([8dd5dab](https://github.com/adcontextprotocol/adcp-client-python/commit/8dd5dabc06f38f7045ec000190f6c8ad6565baa7)) +* **decisioning:** createOAuthPassthroughResolver — Shape B account resolver factory ([#472](https://github.com/adcontextprotocol/adcp-client-python/issues/472)) ([defa022](https://github.com/adcontextprotocol/adcp-client-python/commit/defa022b5325d89a23c595521bd969eb2482d0dd)) +* **decisioning:** createUpstreamHttpClient + createTranslationMap ([#464](https://github.com/adcontextprotocol/adcp-client-python/issues/464)) ([7e5f2c4](https://github.com/adcontextprotocol/adcp-client-python/commit/7e5f2c4fad15ce5ce8d14b19955fafb66513e329)) +* **decisioning:** CreativeBuilderPlatform + CreativeAdServerPlatform (breadth sprint Batch 2) ([#333](https://github.com/adcontextprotocol/adcp-client-python/issues/333)) ([5921949](https://github.com/adcontextprotocol/adcp-client-python/commit/592194904ee70424d50f8421cf57812c0668a010)) +* **decisioning:** credential-leak strip on every echo path + ctx_metadata guidance ([#481](https://github.com/adcontextprotocol/adcp-client-python/issues/481)) ([52b15fa](https://github.com/adcontextprotocol/adcp-client-python/commit/52b15fa2f252b4e213f2dd2a5795dba08700019e)) +* **decisioning:** cursor-based pagination helper for list responses ([#499](https://github.com/adcontextprotocol/adcp-client-python/issues/499)) ([524c608](https://github.com/adcontextprotocol/adcp-client-python/commit/524c608fb1ea2fdf9c8c7659172bec731f4a2ff3)) +* **decisioning:** emit AGENT_SUSPENDED / AGENT_BLOCKED dedicated codes (closes [#409](https://github.com/adcontextprotocol/adcp-client-python/issues/409)) ([#748](https://github.com/adcontextprotocol/adcp-client-python/issues/748)) ([12f8ffe](https://github.com/adcontextprotocol/adcp-client-python/commit/12f8ffe7fa4318affeb2ad728296db4ac88a452b)) +* **decisioning:** F12 — auto-emit completion webhook on sync mutating responses ([#331](https://github.com/adcontextprotocol/adcp-client-python/issues/331)) ([9d29754](https://github.com/adcontextprotocol/adcp-client-python/commit/9d29754e310e370ca8b9730d61070513640d1e45)) +* **decisioning:** handoff_to_workflow — externally-completed task primitive ([#336](https://github.com/adcontextprotocol/adcp-client-python/issues/336)) ([bff48ab](https://github.com/adcontextprotocol/adcp-client-python/commit/bff48abbc26a33a7649ca0264329bcba294dc6fa)) +* **decisioning:** LazyPlatformRouter for tenant-on-first-request construction ([#552](https://github.com/adcontextprotocol/adcp-client-python/issues/552)) ([98fd456](https://github.com/adcontextprotocol/adcp-client-python/commit/98fd4566c57925da84a34cabca37281901882350)) +* **decisioning:** LazyPlatformRouter.proposal_stores= + proposal_store_factory= ([#722](https://github.com/adcontextprotocol/adcp-client-python/issues/722)) ([#724](https://github.com/adcontextprotocol/adcp-client-python/issues/724)) ([a65185e](https://github.com/adcontextprotocol/adcp-client-python/commit/a65185e83637bfe039c9d349b468a8e90cecb1ee)) +* **decisioning:** mock-mode upstream URL routing — Account.metadata['mock_upstream_url'] + DecisioningPlatform.upstream_for (Phase 2) ([#487](https://github.com/adcontextprotocol/adcp-client-python/issues/487)) ([5c605b4](https://github.com/adcontextprotocol/adcp-client-python/commit/5c605b463c2fa48bc079ed301cffc5608a5b001c)) +* **decisioning:** MockAdServer Protocol + /_debug/traffic counters ([#383](https://github.com/adcontextprotocol/adcp-client-python/issues/383)) ([#405](https://github.com/adcontextprotocol/adcp-client-python/issues/405)) ([53d8b8c](https://github.com/adcontextprotocol/adcp-client-python/commit/53d8b8cbe7be5208e3d1250a7e1068f93c33ca28)) +* **decisioning:** PgBuyerAgentRegistry — durable Tier 2 commercial-identity store ([#364](https://github.com/adcontextprotocol/adcp-client-python/issues/364)) ([fbdcb31](https://github.com/adcontextprotocol/adcp-client-python/commit/fbdcb31f2e4d18a8cff6875aa6ad5fd7b5643e5f)) +* **decisioning:** PgProposalStore + framework package derivation ([#727](https://github.com/adcontextprotocol/adcp-client-python/issues/727)) ([#732](https://github.com/adcontextprotocol/adcp-client-python/issues/732)) ([c41d4a8](https://github.com/adcontextprotocol/adcp-client-python/commit/c41d4a8e01148e71bbf7e97df95e4f241fe11bf1)) +* **decisioning:** PlatformRouter + multi-platform proof ([#477](https://github.com/adcontextprotocol/adcp-client-python/issues/477)) ([#490](https://github.com/adcontextprotocol/adcp-client-python/issues/490)) ([786e6a2](https://github.com/adcontextprotocol/adcp-client-python/commit/786e6a2708522e4b6308b91534b1f412ca58ae9d)) +* **decisioning:** PostgresTaskRegistry — durable HITL task state (v6.1) ([#361](https://github.com/adcontextprotocol/adcp-client-python/issues/361)) ([e01eef0](https://github.com/adcontextprotocol/adcp-client-python/commit/e01eef0a3f4e3d4eb3acfb66f22d9486f101d54f)) +* **decisioning:** ProductConfigStore lookup helper for create_media_buy ([#498](https://github.com/adcontextprotocol/adcp-client-python/issues/498)) ([59f3b6e](https://github.com/adcontextprotocol/adcp-client-python/commit/59f3b6e2968fb5b2ece8f745e6af386a8bf4cf2a)) +* **decisioning:** project full capability blocks via DecisioningCapabilities ([c09433c](https://github.com/adcontextprotocol/adcp-client-python/commit/c09433c2526d3a7635ea6cb7a975f840e03dc82d)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** project full get_adcp_capabilities response schema into DecisioningCapabilities ([55613f8](https://github.com/adcontextprotocol/adcp-client-python/commit/55613f8def13d0c388f131709262c9003b26add1)) +* **decisioning:** property_list resolver + intersection helper for get_products ([#500](https://github.com/adcontextprotocol/adcp-client-python/issues/500)) ([1dfdcd5](https://github.com/adcontextprotocol/adcp-client-python/commit/1dfdcd5e00242e3e79faba6f4a255fe822194cb0)) +* **decisioning:** ProposalCapabilities.auto_commit_on_put_draft ([#723](https://github.com/adcontextprotocol/adcp-client-python/issues/723)) ([#725](https://github.com/adcontextprotocol/adcp-client-python/issues/725)) ([5567e2b](https://github.com/adcontextprotocol/adcp-client-python/commit/5567e2b91e979697091641039092a8ee5c5586cf)) +* **decisioning:** ProposalManager v1 — Protocol + MockProposalManager forwarder + tenant binding ([#504](https://github.com/adcontextprotocol/adcp-client-python/issues/504)) ([fe8e5b0](https://github.com/adcontextprotocol/adcp-client-python/commit/fe8e5b0382324365a5b86bd4467853b6284f354a)) +* **decisioning:** ProposalManager v1.5 — primitives, capability validation, lifecycle helpers ([#538](https://github.com/adcontextprotocol/adcp-client-python/issues/538)-impl) ([#550](https://github.com/adcontextprotocol/adcp-client-python/issues/550)) ([c7c317e](https://github.com/adcontextprotocol/adcp-client-python/commit/c7c317eb1f466c32d696ff135de1d55d8f074889)) +* **decisioning:** re-export SignalsFeatures + ContentStandards capability sub-models ([74671d0](https://github.com/adcontextprotocol/adcp-client-python/commit/74671d0efe20fb3f1abcd28650eb8fc121163292)), closes [#485](https://github.com/adcontextprotocol/adcp-client-python/issues/485) +* **decisioning:** refine[] flow scaffold for get_products ([#496](https://github.com/adcontextprotocol/adcp-client-python/issues/496)) ([#505](https://github.com/adcontextprotocol/adcp-client-python/issues/505)) ([b584e70](https://github.com/adcontextprotocol/adcp-client-python/commit/b584e70e8563044434898d0b78c3ca00d3c13eea)) +* **decisioning:** retype DecisioningCapabilities.specialisms to Specialism enum union ([9fb7fc9](https://github.com/adcontextprotocol/adcp-client-python/commit/9fb7fc93a9cbc6602cffe0ee88d7d8e118390b77)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** SignalsPlatform + AudiencePlatform Protocols (breadth sprint Batch 1) ([#332](https://github.com/adcontextprotocol/adcp-client-python/issues/332)) ([c66ff72](https://github.com/adcontextprotocol/adcp-client-python/commit/c66ff72688bee46d6e34aad08840938b278dc8fe)) +* **decisioning:** state-machine helpers + typed exception classes + ref_account_id ([#465](https://github.com/adcontextprotocol/adcp-client-python/issues/465)) ([9301acf](https://github.com/adcontextprotocol/adcp-client-python/commit/9301acf01576b24ae79718a9792bee385e9d7717)) +* **decisioning:** surface capability sub-models via adcp.decisioning.capabilities ([bc5bb9a](https://github.com/adcontextprotocol/adcp-client-python/commit/bc5bb9af06a6c189aa3219221d2fac4078cc5706)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** TaskHandoff create_media_buy on_complete + on_failure hooks ([#561](https://github.com/adcontextprotocol/adcp-client-python/issues/561)) ([3072c6e](https://github.com/adcontextprotocol/adcp-client-python/commit/3072c6e0675a707ec8c933c5c20e49efb3927fff)) +* **decisioning:** Tier 2 — BuyerAgentRegistry + dispatch wire-up + AuthInfo v3 fields ([#349](https://github.com/adcontextprotocol/adcp-client-python/issues/349)) ([#359](https://github.com/adcontextprotocol/adcp-client-python/issues/359)) ([9dad22c](https://github.com/adcontextprotocol/adcp-client-python/commit/9dad22c94f15052777cddf4652b007a44d2f1136)) +* **decisioning:** Tier 3 brand-authz dispatch gate ([#350](https://github.com/adcontextprotocol/adcp-client-python/issues/350) stage 5, closes [#350](https://github.com/adcontextprotocol/adcp-client-python/issues/350)) ([#785](https://github.com/adcontextprotocol/adcp-client-python/issues/785)) ([1ad6df9](https://github.com/adcontextprotocol/adcp-client-python/commit/1ad6df907c5b81c98f079900cb8adf394bc6cbb1)) +* **decisioning:** time_budget deadline wrapper + incomplete projection on get_products ([#501](https://github.com/adcontextprotocol/adcp-client-python/issues/501)) ([bc6ad13](https://github.com/adcontextprotocol/adcp-client-python/commit/bc6ad13ee18454c2091f5d8951574761ca1c0df0)) +* **decisioning:** UserWarning when sales-* required methods missing ([#423](https://github.com/adcontextprotocol/adcp-client-python/issues/423)) ([#445](https://github.com/adcontextprotocol/adcp-client-python/issues/445)) ([5349ddc](https://github.com/adcontextprotocol/adcp-client-python/commit/5349ddc91b0299f18b96e7fb75383971c7446136)) +* **decisioning:** v6.0 DecisioningPlatform foundation (skeleton + design) ([#316](https://github.com/adcontextprotocol/adcp-client-python/issues/316)) ([3539359](https://github.com/adcontextprotocol/adcp-client-python/commit/353935951a7358ea749519a702b2bb5b54355a1c)) +* **decisioning:** warn when compliance_testing capability is declared without test_controller wired ([37f42a7](https://github.com/adcontextprotocol/adcp-client-python/commit/37f42a76402bcb4a8dbcf90a1af6cf7481fbd4e7)), closes [#485](https://github.com/adcontextprotocol/adcp-client-python/issues/485) +* **decisioning:** warn when supported_protocols is auto-derived from specialisms ([a0eb1e2](https://github.com/adcontextprotocol/adcp-client-python/commit/a0eb1e265562f7a5d8e0fc1ee84b76c44e157d85)), closes [#485](https://github.com/adcontextprotocol/adcp-client-python/issues/485) +* **decisioning:** WebhookDeliverySupervisor + SQLAlchemy A2A stores example ([#348](https://github.com/adcontextprotocol/adcp-client-python/issues/348)) ([73a7512](https://github.com/adcontextprotocol/adcp-client-python/commit/73a7512cd3d5c3fcee265455f7e54d7738c77124)) +* **decisioning:** widen DecisioningCapabilities with structured wire fields ([5a5219e](https://github.com/adcontextprotocol/adcp-client-python/commit/5a5219e2f6fb965ff489f5ae19feaaf10c953e3c)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** wire create_media_buy_store into PlatformHandler dispatch (closes [#462](https://github.com/adcontextprotocol/adcp-client-python/issues/462)) ([#773](https://github.com/adcontextprotocol/adcp-client-python/issues/773)) ([062c6f0](https://github.com/adcontextprotocol/adcp-client-python/commit/062c6f03e34dd47f818251c9b0382d3a7537b5dc)) +* **examples:** add seller_agent.py reference impl ([40341c9](https://github.com/adcontextprotocol/adcp-client-python/commit/40341c90fea23df5a67ff3196bc68ed4026e3347)) +* **examples:** DemoStore overrides for force_create_media_buy_arm, force_task_completion, and seed_* scenarios ([#313](https://github.com/adcontextprotocol/adcp-client-python/issues/313)) ([e2a2707](https://github.com/adcontextprotocol/adcp-client-python/commit/e2a270778960a891cdb8afa8d30d00e3570afd4d)) +* **examples:** dual-emit v1 format_ids + v2 format_options on reference seller ([#847](https://github.com/adcontextprotocol/adcp-client-python/issues/847)) ([7731f53](https://github.com/adcontextprotocol/adcp-client-python/commit/7731f53dc0ec82d60938b8467b16cce63f91e1c1)), closes [#741](https://github.com/adcontextprotocol/adcp-client-python/issues/741) +* **examples:** handle @adcp/sdk@7.10.x storyboard scenarios (closes [#782](https://github.com/adcontextprotocol/adcp-client-python/issues/782)) ([#788](https://github.com/adcontextprotocol/adcp-client-python/issues/788)) ([7ef1b1a](https://github.com/adcontextprotocol/adcp-client-python/commit/7ef1b1a520b0059f6c8759f33fdb487cf727d36d)) +* **examples:** v3 reference seller — runnable Tier 2 + v3 wiring ([#357](https://github.com/adcontextprotocol/adcp-client-python/issues/357)) ([#373](https://github.com/adcontextprotocol/adcp-client-python/issues/373)) ([cda07f9](https://github.com/adcontextprotocol/adcp-client-python/commit/cda07f997ce9b5cca40f6149b439e7ac0769ddb3)) +* **handlers:** expose sync_catalogs through sales-catalog-driven specialism ([#838](https://github.com/adcontextprotocol/adcp-client-python/issues/838)) ([6fdcb77](https://github.com/adcontextprotocol/adcp-client-python/commit/6fdcb7758e6d7123ffc9493c9a1c89ea24a3fc3d)) +* **idempotency:** inject 'replayed: true' on cache hit ([#714](https://github.com/adcontextprotocol/adcp-client-python/issues/714)) ([#717](https://github.com/adcontextprotocol/adcp-client-python/issues/717)) ([b511e01](https://github.com/adcontextprotocol/adcp-client-python/commit/b511e010fff3c336a6308e01139642c1c689bbd8)) +* **mcp:** auto-generate sync_governance inputSchema from Pydantic ([ac1edb3](https://github.com/adcontextprotocol/adcp-client-python/commit/ac1edb3fda6f9848b95c40539c5bcfde03442cbe)) +* **mcp:** inline \$defs in generated inputSchema (closes [#208](https://github.com/adcontextprotocol/adcp-client-python/issues/208)) ([8eaeb4d](https://github.com/adcontextprotocol/adcp-client-python/commit/8eaeb4d085d7fd3f5268a818d11e339eda950b26)) +* **mcp:** inline $defs in generated inputSchema (closes [#208](https://github.com/adcontextprotocol/adcp-client-python/issues/208)) ([ffa58e5](https://github.com/adcontextprotocol/adcp-client-python/commit/ffa58e594130d400e3f300edead1ea04cb0361ca)) +* **migrate:** --auto-apply mode for mechanically-rewritable codemod findings ([#540](https://github.com/adcontextprotocol/adcp-client-python/issues/540)) ([d19e71e](https://github.com/adcontextprotocol/adcp-client-python/commit/d19e71e0deed2514fd87a6e30f0e8d145a2e1efb)) +* **migrate+types:** v3->v4 codemod, strict-validation flag, version helpers, subclass test ([0f50d39](https://github.com/adcontextprotocol/adcp-client-python/commit/0f50d39ba6481f4a5bfcee11a82d16bfacb0f716)) +* **migrate+types:** v3->v4 codemod, strict-validation flag, version helpers, subclass test ([32bfbeb](https://github.com/adcontextprotocol/adcp-client-python/commit/32bfbeb88f7be83e690adaf78a60aa753be88c25)) +* **migrate:** flag MediaBuyStatus.pending_activation split in v3-to-v4 codemod ([#523](https://github.com/adcontextprotocol/adcp-client-python/issues/523)) ([d0659c7](https://github.com/adcontextprotocol/adcp-client-python/commit/d0659c759dbc79f8086ee02a377609c172ea57a2)) +* pick up beta 3 wholesale products and signals ([#799](https://github.com/adcontextprotocol/adcp-client-python/issues/799)) ([0deeaeb](https://github.com/adcontextprotocol/adcp-client-python/commit/0deeaebfd7269d9100185e9d842dedb071f3a991)) +* **preview:** opt-in v3.1.0-beta.1 client surface ([#4761](https://github.com/adcontextprotocol/adcp-client-python/issues/4761), [#4762](https://github.com/adcontextprotocol/adcp-client-python/issues/4762), [#4763](https://github.com/adcontextprotocol/adcp-client-python/issues/4763)) ([#747](https://github.com/adcontextprotocol/adcp-client-python/issues/747)) ([35fdd47](https://github.com/adcontextprotocol/adcp-client-python/commit/35fdd47f9a3319b4325a8dc3597ab6a1a4dfc74f)) +* **schemas:** bundle adcp-agents.json as adcp.schemas package, eliminate inlined test copy ([#442](https://github.com/adcontextprotocol/adcp-client-python/issues/442)) ([9a8fef1](https://github.com/adcontextprotocol/adcp-client-python/commit/9a8fef13f74371e13b39e92da9828e0e348229d4)) +* **schemas:** fetch + bundle v2.5 schemas from pinned upstream SHA (stage 4b1) ([#670](https://github.com/adcontextprotocol/adcp-client-python/issues/670)) ([bd6837f](https://github.com/adcontextprotocol/adcp-client-python/commit/bd6837fcab043b3a4cf3b6000daf2e5a92d96b6f)) +* **schemas:** patches/ post-process infra + restore [#753](https://github.com/adcontextprotocol/adcp-client-python/issues/753)/[#792](https://github.com/adcontextprotocol/adcp-client-python/issues/792) hand-edits ([#795](https://github.com/adcontextprotocol/adcp-client-python/issues/795)) ([4e6a722](https://github.com/adcontextprotocol/adcp-client-python/commit/4e6a722a70820fbdad50f38b0e15dc6b646daddb)) +* **schemas:** regen for AdCP 3.0 GA — custom pricing + experimental_features ([4dfaffe](https://github.com/adcontextprotocol/adcp-client-python/commit/4dfaffe867cefb4e91183542ab0e5a03d451ee6c)) +* **schemas:** regen for AdCP 3.0 GA — custom pricing + experimental_features ([db913ba](https://github.com/adcontextprotocol/adcp-client-python/commit/db913ba311ebba79e8401fe16e6674bb51bec9ef)), closes [#204](https://github.com/adcontextprotocol/adcp-client-python/issues/204) +* **sdk:** 4.0 beta cleanup — version wiring, brand_manifest drop, migration guide ([ebaab12](https://github.com/adcontextprotocol/adcp-client-python/commit/ebaab126db21877f27ceb5413ced02b315bc8dd3)) +* **sdk:** per-instance adcp_version pin + wire emission (Stage 2 + 3a) ([#294](https://github.com/adcontextprotocol/adcp-client-python/issues/294)) ([4aa7a6d](https://github.com/adcontextprotocol/adcp-client-python/commit/4aa7a6d1a19a6ff681b13d773e55cfb09bab495f)) +* **server:** /.well-known/adcp-agents.json discovery endpoint ([#381](https://github.com/adcontextprotocol/adcp-client-python/issues/381)) ([#406](https://github.com/adcontextprotocol/adcp-client-python/issues/406)) ([e6dfaad](https://github.com/adcontextprotocol/adcp-client-python/commit/e6dfaad8679d58f25c417c313ff054aff8b87499)) +* **server/a2a:** structured error parity with MCP — emit field/details/retry_after, catch decisioning AdcpError (closes [#530](https://github.com/adcontextprotocol/adcp-client-python/issues/530)) ([#536](https://github.com/adcontextprotocol/adcp-client-python/issues/536)) ([423d975](https://github.com/adcontextprotocol/adcp-client-python/commit/423d9758e654664a1eb8094757679d52b27f394d)) +* **server/idempotency:** complete PgBackend for multi-worker durable replay ([#555](https://github.com/adcontextprotocol/adcp-client-python/issues/555)) ([1123458](https://github.com/adcontextprotocol/adcp-client-python/commit/11234586f87d36aa2cdf9e1bd192a60a80913788)) +* **server+migrate:** round-1 feedback followups ([dbbc390](https://github.com/adcontextprotocol/adcp-client-python/commit/dbbc390fd30b78060e72108a01d45b09035e4cf6)) +* **server+migrate:** round-1 feedback followups ([0fe9cb5](https://github.com/adcontextprotocol/adcp-client-python/commit/0fe9cb56daf01cd1cee6cb5fb16e3a94f51d03d4)) +* **server:** Account v3 wire fields + AccountStore.upsert/list/syncGovernance receive ResolveContext ([#469](https://github.com/adcontextprotocol/adcp-client-python/issues/469)) ([62b58dc](https://github.com/adcontextprotocol/adcp-client-python/commit/62b58dc3e211e69814a4993ab32726ed514c297e)) +* **server:** AccountAwareToolContext + multi-tenant contract doc ([69fd3da](https://github.com/adcontextprotocol/adcp-client-python/commit/69fd3dab019c822d62fd1b4ac17b2628c3a36182)) +* **server:** AccountAwareToolContext + multi-tenant contract doc ([3747939](https://github.com/adcontextprotocol/adcp-client-python/commit/3747939427e77b391bd9444beaa60c8b2f72e425)) +* **server:** add asgi_middleware param to serve() ([#441](https://github.com/adcontextprotocol/adcp-client-python/issues/441)) ([69211a3](https://github.com/adcontextprotocol/adcp-client-python/commit/69211a3e17efc8b8fd7512e501c164e83ec9c222)) +* **server:** add force_create_media_buy_arm + force_task_completion controller scenarios ([#282](https://github.com/adcontextprotocol/adcp-client-python/issues/282)) ([9818250](https://github.com/adcontextprotocol/adcp-client-python/commit/9818250c75bc08deaf43af5c829c78eabb1cd342)) +* **server:** add spec_compat_hooks() for pre-v3 / pre-4.4 buyer compatibility ([#648](https://github.com/adcontextprotocol/adcp-client-python/issues/648)) ([30690e5](https://github.com/adcontextprotocol/adcp-client-python/commit/30690e54a0298960489e8595c3f5480a401ad00f)) +* **server:** add TenantRegistry with per-tenant health tracking ([#628](https://github.com/adcontextprotocol/adcp-client-python/issues/628)) ([ae687b6](https://github.com/adcontextprotocol/adcp-client-python/commit/ae687b6be5b0807717fd61e3a8dbb0e34ef5ac93)) +* **server:** add unknown-field policy and hook composition ([#860](https://github.com/adcontextprotocol/adcp-client-python/issues/860)) ([7b830c3](https://github.com/adcontextprotocol/adcp-client-python/commit/7b830c3ccd124729e28471ec753243cc10d8cc55)) +* **server:** AuditSink Protocol + LoggingAuditSink/SlackAlertSink reference impls ([#362](https://github.com/adcontextprotocol/adcp-client-python/issues/362)) ([66c3c57](https://github.com/adcontextprotocol/adcp-client-python/commit/66c3c57a70d29d778069665e1e0fb3b93966b1ae)) +* **server:** boot validator for webhook_signing.supported capability invariant ([#695](https://github.com/adcontextprotocol/adcp-client-python/issues/695)) ([7e9a734](https://github.com/adcontextprotocol/adcp-client-python/commit/7e9a73491feeacc9b1b595178c01733c88a2da1f)) +* **server:** CallableSubdomainTenantRouter for DB-backed tenant lookups ([#544](https://github.com/adcontextprotocol/adcp-client-python/issues/544)) ([80876c1](https://github.com/adcontextprotocol/adcp-client-python/commit/80876c165fa492799c804f44def23d12289a36ac)) +* **server:** context_factory, tenant_id, DISCOVERY_TOOLS — unblock MCP adoption ([2203c1d](https://github.com/adcontextprotocol/adcp-client-python/commit/2203c1d162649096ee3d32886666d2d5e4ef0d4b)) +* **server:** createMediaBuyStore — opt-in targeting_overlay echo for property-lists / collection-lists sellers ([#474](https://github.com/adcontextprotocol/adcp-client-python/issues/474)) ([4ba19fc](https://github.com/adcontextprotocol/adcp-client-python/commit/4ba19fc199ca715adc54d885c00b6a33b90ca94f)) +* **server:** createRosterAccountStore — Shape C explicit AccountStore for publisher-curated rosters ([#471](https://github.com/adcontextprotocol/adcp-client-python/issues/471)) ([7f919cc](https://github.com/adcontextprotocol/adcp-client-python/commit/7f919cc0c13c219b2a183adeb14caaa14964901d)) +* **server:** default MCP streamable-http to stateful with idle eviction ([#636](https://github.com/adcontextprotocol/adcp-client-python/issues/636)) ([3173a54](https://github.com/adcontextprotocol/adcp-client-python/commit/3173a545ade4c97a7da593279604359f48e40eff)) +* **server:** default validation=strict in serve() — wire-conformance by default ([#439](https://github.com/adcontextprotocol/adcp-client-python/issues/439)) ([a29b61f](https://github.com/adcontextprotocol/adcp-client-python/commit/a29b61f944732cdee8bff3f11310a67035349edb)) +* **server:** DISCOVERY_METHODS + document tools/list pre-auth posture (closes [#222](https://github.com/adcontextprotocol/adcp-client-python/issues/222)) ([a26c948](https://github.com/adcontextprotocol/adcp-client-python/commit/a26c94876226b17abee706c2e1df725af141d0c0)) +* **server:** DISCOVERY_METHODS + lock tools/list pre-auth posture (closes [#222](https://github.com/adcontextprotocol/adcp-client-python/issues/222)) ([ba2de29](https://github.com/adcontextprotocol/adcp-client-python/commit/ba2de2964547f38105a9354a81a7c4bddad49762)) +* **server:** expose RequestContext.transport and current_transport ContextVar ([#627](https://github.com/adcontextprotocol/adcp-client-python/issues/627)) ([20e5d53](https://github.com/adcontextprotocol/adcp-client-python/commit/20e5d53fa6eff6d7ea047c62d5a2a02e7f9a2c8e)) +* **server:** gate tools/list on method overrides ([#220](https://github.com/adcontextprotocol/adcp-client-python/issues/220)) ([816d22c](https://github.com/adcontextprotocol/adcp-client-python/commit/816d22ccd809a0e9cf45c05789eea7e0c8178464)) +* **server:** gate tools/list on method overrides (closes [#220](https://github.com/adcontextprotocol/adcp-client-python/issues/220)) ([fc1a788](https://github.com/adcontextprotocol/adcp-client-python/commit/fc1a7885325d3587a1066140c4838f4e46f8b9c8)) +* **server:** introduce ServeConfig dataclass to consolidate serve() kwargs ([#437](https://github.com/adcontextprotocol/adcp-client-python/issues/437)) ([07db849](https://github.com/adcontextprotocol/adcp-client-python/commit/07db849d51e95df4809dd47d404fa95c5469e5b1)) +* **server:** MCP error responses populate structuredContent.adcp_error (closes [#509](https://github.com/adcontextprotocol/adcp-client-python/issues/509)) ([#525](https://github.com/adcontextprotocol/adcp-client-python/issues/525)) ([b50a87a](https://github.com/adcontextprotocol/adcp-client-python/commit/b50a87ad63a5f00d53e03398d8ee7d9b055879d2)) +* **server:** middleware parity, auth, A2A parser hook, startup log ([549d190](https://github.com/adcontextprotocol/adcp-client-python/commit/549d190cf4ed9b82611f14e2a432d9dd43b870c3)) +* **server:** middleware parity, auth, A2A parser hook, startup log ([c9d7bbc](https://github.com/adcontextprotocol/adcp-client-python/commit/c9d7bbc14717e0710cc848cf74f11445b4d3f870)) +* **server:** negotiate media buy version handling and update actions ([#871](https://github.com/adcontextprotocol/adcp-client-python/issues/871)) ([5a89d86](https://github.com/adcontextprotocol/adcp-client-python/commit/5a89d86ffaf006ce79352eeb05365517b6f7791c)) +* **server:** on_startup / on_shutdown hooks on serve(transport='both') ([#713](https://github.com/adcontextprotocol/adcp-client-python/issues/713)) ([aca625e](https://github.com/adcontextprotocol/adcp-client-python/commit/aca625edf18b7f62f44c829a2317fc770a72ee05)) +* **server:** per-skill middleware hook in ADCPAgentExecutor ([#226](https://github.com/adcontextprotocol/adcp-client-python/issues/226)) ([4e95764](https://github.com/adcontextprotocol/adcp-client-python/commit/4e95764984f54498f16699f8d7ed288c4e77bc3b)) +* **server:** per-skill middleware hook in ADCPAgentExecutor (closes [#226](https://github.com/adcontextprotocol/adcp-client-python/issues/226)) ([6f9bd26](https://github.com/adcontextprotocol/adcp-client-python/commit/6f9bd26981af36cfa7f17731c683cf521a65732a)) +* **server:** pluggable PushNotificationConfigStore on A2A ([#225](https://github.com/adcontextprotocol/adcp-client-python/issues/225)) ([ea21864](https://github.com/adcontextprotocol/adcp-client-python/commit/ea21864fc8d490dc28b9d5a433d6baabc1518f4b)) +* **server:** pluggable PushNotificationConfigStore on A2A (closes [#225](https://github.com/adcontextprotocol/adcp-client-python/issues/225)) ([4f64c8d](https://github.com/adcontextprotocol/adcp-client-python/commit/4f64c8d0a87aee8875af1ffe27211bf766778ead)) +* **server:** pluggable TaskStore on A2A — unblock production A2A adoption ([69ebccd](https://github.com/adcontextprotocol/adcp-client-python/commit/69ebccd81eccf2970321c379c244cbc0e27873b2)) +* **server:** pre-adapter validation against legacy schema (stage 4b2) ([#671](https://github.com/adcontextprotocol/adcp-client-python/issues/671)) ([4ef032b](https://github.com/adcontextprotocol/adcp-client-python/commit/4ef032b2c153296616ab51ab0fe06489be5587ab)) +* **server:** pre-validation request hook for spec-default injection ([#614](https://github.com/adcontextprotocol/adcp-client-python/issues/614)) ([#629](https://github.com/adcontextprotocol/adcp-client-python/issues/629)) ([05d4cd8](https://github.com/adcontextprotocol/adcp-client-python/commit/05d4cd8617440aaa638086ffa5cabc0bf61b403f)) +* **server:** public register_handler_tools seam + advertised_tools class attr ([#318](https://github.com/adcontextprotocol/adcp-client-python/issues/318)) ([d96822a](https://github.com/adcontextprotocol/adcp-client-python/commit/d96822a64b54289c23e143b39d5e95808b65c1c2)) +* **server:** request-body size cap middleware (closes [#239](https://github.com/adcontextprotocol/adcp-client-python/issues/239)) ([21249a5](https://github.com/adcontextprotocol/adcp-client-python/commit/21249a5032c8afa4f59033dec0b896e6cc4b637d)) +* **server:** request-body size cap middleware (closes [#239](https://github.com/adcontextprotocol/adcp-client-python/issues/239)) ([9ccf960](https://github.com/adcontextprotocol/adcp-client-python/commit/9ccf9601182e248861bf0683fbfe55408f76e93f)) +* **server:** route validation by wire adcp_version (stage 3) ([#664](https://github.com/adcontextprotocol/adcp-client-python/issues/664)) ([d2ffac7](https://github.com/adcontextprotocol/adcp-client-python/commit/d2ffac70d9a71d1360ad2e1056acdcdf5381df45)) +* **server:** SubdomainTenantRouter middleware for multi-tenant deployments ([#355](https://github.com/adcontextprotocol/adcp-client-python/issues/355)) ([#368](https://github.com/adcontextprotocol/adcp-client-python/issues/368)) ([1e27dad](https://github.com/adcontextprotocol/adcp-client-python/commit/1e27dad86787cfa09155e937fa0c3b2e7d169911)) +* **server:** synthesize host:* siblings for bare allowed_hosts ([#537](https://github.com/adcontextprotocol/adcp-client-python/issues/537)) ([2733423](https://github.com/adcontextprotocol/adcp-client-python/commit/2733423bb8286ee809f9003804de096ce9fd9e0f)) +* **server:** TenantRegistry.as_platform() adapter for serve() integration ([#649](https://github.com/adcontextprotocol/adcp-client-python/issues/649)) ([0e396ca](https://github.com/adcontextprotocol/adcp-client-python/commit/0e396ca778ea0a4def1f44d315b0d69b6cc00443)) +* **server:** thread ToolContext through TestControllerStore (closes [#227](https://github.com/adcontextprotocol/adcp-client-python/issues/227)) ([a4c6489](https://github.com/adcontextprotocol/adcp-client-python/commit/a4c6489285ba76b1e57caf09bf561c3aa1461ecf)) +* **server:** thread ToolContext through TestControllerStore (closes [#227](https://github.com/adcontextprotocol/adcp-client-python/issues/227)) ([a0d89e3](https://github.com/adcontextprotocol/adcp-client-python/commit/a0d89e3be1a60fa29aa7b1dfd81d4f8b79f9132d)) +* **server:** transport="both" — host MCP and A2A on a single binary ([#354](https://github.com/adcontextprotocol/adcp-client-python/issues/354)) ([#370](https://github.com/adcontextprotocol/adcp-client-python/issues/370)) ([1d5d907](https://github.com/adcontextprotocol/adcp-client-python/commit/1d5d9074bc4868a6573fe1e2d862a660767dfab7)) +* **server:** typed handler params via Pydantic annotation (closes [#214](https://github.com/adcontextprotocol/adcp-client-python/issues/214)) ([dcc2c87](https://github.com/adcontextprotocol/adcp-client-python/commit/dcc2c876215546fa5e15d8db4ff7e6ba32c5b442)) +* **server:** typed handler params via Pydantic annotation (closes [#214](https://github.com/adcontextprotocol/adcp-client-python/issues/214)) ([4e86e1a](https://github.com/adcontextprotocol/adcp-client-python/commit/4e86e1a55cc09793d18e312f97124622b761feff)) +* **server:** TypeVar-bound ADCPHandler for typed ToolContext subclasses ([#223](https://github.com/adcontextprotocol/adcp-client-python/issues/223)) ([d737527](https://github.com/adcontextprotocol/adcp-client-python/commit/d737527027fcf5b77ba40c4502251449633f059d)) +* **server:** TypeVar-bound ADCPHandler for typed ToolContext subclasses (closes [#223](https://github.com/adcontextprotocol/adcp-client-python/issues/223)) ([e1eb923](https://github.com/adcontextprotocol/adcp-client-python/commit/e1eb92350e9872cfadbff4bff6a274a49af59c83)) +* **signing:** async_resolve_agent — bootstrap to JWKS via brand.json ([#389](https://github.com/adcontextprotocol/adcp-client-python/issues/389)) ([0d78bd1](https://github.com/adcontextprotocol/adcp-client-python/commit/0d78bd137391207313281f5abf0f364c5200e85e)) +* **signing:** BrandAuthorizationResolver (Tier 3, [#350](https://github.com/adcontextprotocol/adcp-client-python/issues/350) stages 1-3) ([#770](https://github.com/adcontextprotocol/adcp-client-python/issues/770)) ([9028a88](https://github.com/adcontextprotocol/adcp-client-python/commit/9028a880adbd1b16b5fbc67f8b0c58f124f0add1)) +* **signing:** close 4 SSRF gaps and add opt-in port hardening (foundation audit) ([84b837e](https://github.com/adcontextprotocol/adcp-client-python/commit/84b837e0e093dff041254781bb12b4a416150bd2)) +* **signing:** default replay store, signed-fetch preset, migration guide ([#272](https://github.com/adcontextprotocol/adcp-client-python/issues/272)) ([52019b8](https://github.com/adcontextprotocol/adcp-client-python/commit/52019b8942383ca9ec79a4bd4c0f7579f7aa1ffc)) +* **signing:** drain three foundation-audit deferreds ([#298](https://github.com/adcontextprotocol/adcp-client-python/issues/298), [#299](https://github.com/adcontextprotocol/adcp-client-python/issues/299), [#300](https://github.com/adcontextprotocol/adcp-client-python/issues/300)) ([072998a](https://github.com/adcontextprotocol/adcp-client-python/commit/072998a8fd7b33097b7e6ab0496c2ecadf33a691)) +* **signing:** full-wire e2e + DX fixes from integrator walkthrough ([a44896b](https://github.com/adcontextprotocol/adcp-client-python/commit/a44896b743ac4d0694be9b99dce2df103c2cfb0a)) +* **signing:** generate_signing_keypair() programmatic API (closes [#217](https://github.com/adcontextprotocol/adcp-client-python/issues/217)) ([dd2b961](https://github.com/adcontextprotocol/adcp-client-python/commit/dd2b9614957d65787868b5effddb2775b74afae9)) +* **signing:** generate_signing_keypair() programmatic API (closes [#217](https://github.com/adcontextprotocol/adcp-client-python/issues/217)) ([c6d5505](https://github.com/adcontextprotocol/adcp-client-python/commit/c6d5505c8d6025961f0bd9d6af1041102b4bee82)) +* **signing:** IP-pinned httpx transport closes DNS-rebinding TOCTOU ([9a7ee9c](https://github.com/adcontextprotocol/adcp-client-python/commit/9a7ee9c3185e6e7945f06bd27872363f24e164fd)) +* **signing:** IP-pinned httpx transport closes DNS-rebinding TOCTOU ([1fa0820](https://github.com/adcontextprotocol/adcp-client-python/commit/1fa082003acd317b9743099fb83dc898614db573)) +* **signing:** PostgreSQL-backed PgReplayStore for multi-instance verifiers ([8118033](https://github.com/adcontextprotocol/adcp-client-python/commit/811803396e13b185f6626c7011b449823b6a1e20)) +* **signing:** SigningProvider Protocol for KMS-backed signing ([#283](https://github.com/adcontextprotocol/adcp-client-python/issues/283)) ([#323](https://github.com/adcontextprotocol/adcp-client-python/issues/323)) ([4de648e](https://github.com/adcontextprotocol/adcp-client-python/commit/4de648e27f0df522269e9cfb28a5b40aa8138527)) +* **signing:** v3-identity Tier 1 — BrandJsonJwksResolver + CapabilityCache (port from JS) ([#345](https://github.com/adcontextprotocol/adcp-client-python/issues/345)) ([a016eca](https://github.com/adcontextprotocol/adcp-client-python/commit/a016eca80bfa9ee3db90d62045a847cb29004c8a)) +* **signing:** verifier key_origins check + IDNA-2008 canonicalization (closes [#776](https://github.com/adcontextprotocol/adcp-client-python/issues/776), [#777](https://github.com/adcontextprotocol/adcp-client-python/issues/777)) ([#789](https://github.com/adcontextprotocol/adcp-client-python/issues/789)) ([31354b4](https://github.com/adcontextprotocol/adcp-client-python/commit/31354b4d813116d55e255c2b5f28fa599a09b0e7)) +* **signing:** verify_from_agent_url — single-call resolver+verifier factory ([#401](https://github.com/adcontextprotocol/adcp-client-python/issues/401)) ([5931921](https://github.com/adcontextprotocol/adcp-client-python/commit/5931921a483fa2b1126e13c71da2e882812a16f7)) +* **storyboards:** require full proposal_finalize chain after @adcp/sdk@6.10.0 ([#565](https://github.com/adcontextprotocol/adcp-client-python/issues/565)) ([b1fe9d5](https://github.com/adcontextprotocol/adcp-client-python/commit/b1fe9d572253cab28ce6362d0bee7abb8ffb7fed)) +* support AdCP 3.1 Beta 4 ([1bae6e8](https://github.com/adcontextprotocol/adcp-client-python/commit/1bae6e895a125080158b06f758803ed17a071a25)) +* **test-controller:** add seed_creative_format scenario; advertise force_session_status in capabilities ([#315](https://github.com/adcontextprotocol/adcp-client-python/issues/315)) ([ce7e9ab](https://github.com/adcontextprotocol/adcp-client-python/commit/ce7e9ab2c9569a69a39601b224278c0b7a349b1e)) +* **testing:** add build_test_client async context manager ([#554](https://github.com/adcontextprotocol/adcp-client-python/issues/554)) ([5f038e5](https://github.com/adcontextprotocol/adcp-client-python/commit/5f038e5cc442173ed3e2726e38f856610d898473)) +* **testing:** add SellerA2AClient for in-process A2A handler testing ([#694](https://github.com/adcontextprotocol/adcp-client-python/issues/694)) ([2d1ae2f](https://github.com/adcontextprotocol/adcp-client-python/commit/2d1ae2faa7cb6526b56a9311db3667eff9cb6f89)) +* **testing:** add SellerTestClient for in-process handler testing ([#666](https://github.com/adcontextprotocol/adcp-client-python/issues/666)) ([965eeda](https://github.com/adcontextprotocol/adcp-client-python/commit/965eeda0b8253580da923c5b322618ea6d6d1aa6)) +* **testing:** adopter type-checking test suite with zero-ignore contract ([#634](https://github.com/adcontextprotocol/adcp-client-python/issues/634)) ([20e496c](https://github.com/adcontextprotocol/adcp-client-python/commit/20e496c1cf49ae3febf5d3f85930d4c962dd5238)) +* **testing:** extend build_asgi_app with full serve-layer kwargs ([#626](https://github.com/adcontextprotocol/adcp-client-python/issues/626)) ([8679a95](https://github.com/adcontextprotocol/adcp-client-python/commit/8679a9565b43d9bc3cda3bde032ac666684c5845)) +* **testing:** forward pre_validation_hooks through build_asgi_app ([#655](https://github.com/adcontextprotocol/adcp-client-python/issues/655)) ([2df49c0](https://github.com/adcontextprotocol/adcp-client-python/commit/2df49c03d4c34902c0869a6f25e65488ad303968)) +* **testing:** make SellerA2AClient event drain configurable ([#829](https://github.com/adcontextprotocol/adcp-client-python/issues/829)) ([62515d8](https://github.com/adcontextprotocol/adcp-client-python/commit/62515d85fe3753dcbfde8737c33f42a4a7829bb1)) +* **testing:** make_request_context + build_asgi_app helpers ([#535](https://github.com/adcontextprotocol/adcp-client-python/issues/535)) ([6869976](https://github.com/adcontextprotocol/adcp-client-python/commit/68699763e917980f6d7ad75e4a1364a2dc188715)) +* **testing:** storyboard runner matrix entry for v3 reference seller ([#410](https://github.com/adcontextprotocol/adcp-client-python/issues/410)) ([#426](https://github.com/adcontextprotocol/adcp-client-python/issues/426)) ([f047c23](https://github.com/adcontextprotocol/adcp-client-python/commit/f047c23616250dc12631a953e9c0f0b65b502af6)) +* **translation:** list known keys in TranslationMap KeyError ([#768](https://github.com/adcontextprotocol/adcp-client-python/issues/768)) ([7545424](https://github.com/adcontextprotocol/adcp-client-python/commit/75454245f1752d232fa7e52a38c8f201e9cbd3fe)) +* **types,decisioning:** close salesagent migration export gaps ([#511](https://github.com/adcontextprotocol/adcp-client-python/issues/511)) ([97a52e8](https://github.com/adcontextprotocol/adcp-client-python/commit/97a52e8412319e1693415af21dec47fcf788b3fd)) +* **types:** Account v3 projection helpers — bank-details write-only guard ([#371](https://github.com/adcontextprotocol/adcp-client-python/issues/371)) ([e4415e3](https://github.com/adcontextprotocol/adcp-client-python/commit/e4415e3f7aec181100b8b2581d71e0a54d1a4728)) +* **types:** AssetsNN semantic aliases + format_category shim + downstream smoke ([f5c6b18](https://github.com/adcontextprotocol/adcp-client-python/commit/f5c6b18cef8b8df5e9e7e77d4a6eb8b4945ce3b4)) +* **types:** auto-enforce publisher-selector XOR at Pydantic parse time (closes [#759](https://github.com/adcontextprotocol/adcp-client-python/issues/759)) ([#761](https://github.com/adcontextprotocol/adcp-client-python/issues/761)) ([e973864](https://github.com/adcontextprotocol/adcp-client-python/commit/e9738644b2016f57ebd55345fc7cc06775aa5a03)) +* **types:** default serialize_as_any=True in AdCPBaseModel.model_dump ([#639](https://github.com/adcontextprotocol/adcp-client-python/issues/639)) ([3160ace](https://github.com/adcontextprotocol/adcp-client-python/commit/3160ace6fed398b738d24d3d101e82a54caedc93)), closes [#615](https://github.com/adcontextprotocol/adcp-client-python/issues/615) +* **types:** narrow discriminated-union errors (Stability AI Emma P2) ([#340](https://github.com/adcontextprotocol/adcp-client-python/issues/340)) ([ad8b520](https://github.com/adcontextprotocol/adcp-client-python/commit/ad8b5206c6ef7eac088f335b00902a16c4eacd3d)) +* **types:** regenerate schemas + inject Literal-discriminator defaults ([27468aa](https://github.com/adcontextprotocol/adcp-client-python/commit/27468aa358295bdfdeb10af722e422aa6eef9d6b)) +* **types:** regenerate schemas + inject Literal-discriminator defaults ([a4bd6d8](https://github.com/adcontextprotocol/adcp-client-python/commit/a4bd6d85bb7ab8799096d58c2f37414f7f7c995f)) +* **types:** rename <Type>Asset content types to <Type>Content ([7d0679f](https://github.com/adcontextprotocol/adcp-client-python/commit/7d0679f0884e893f1b691ee41fe8d19edfcd9f0e)) +* **types:** SchemaVariant marker + mypy plugin for cross-class overrides ([#710](https://github.com/adcontextprotocol/adcp-client-python/issues/710)) ([#718](https://github.com/adcontextprotocol/adcp-client-python/issues/718)) ([0b53cc9](https://github.com/adcontextprotocol/adcp-client-python/commit/0b53cc9187cbe40da28db666d31030ebd6ff0d83)) +* **types:** Sequence[T] on response-only list fields for covariant adoption ([#635](https://github.com/adcontextprotocol/adcp-client-python/issues/635)) ([19be8db](https://github.com/adcontextprotocol/adcp-client-python/commit/19be8dbff689066b85e7145447f1ef582b710bfb)) +* **types:** widen extension-point list[X] to Sequence[X] ([#624](https://github.com/adcontextprotocol/adcp-client-python/issues/624)) ([#640](https://github.com/adcontextprotocol/adcp-client-python/issues/640)) ([96ccfd4](https://github.com/adcontextprotocol/adcp-client-python/commit/96ccfd48da0a1d1f86a23119b2313a0fe5338416)) +* **v3-ref-seller:** broaden sales surface + sync_accounts + invoice_recipient ([#408](https://github.com/adcontextprotocol/adcp-client-python/issues/408)) ([f1e325b](https://github.com/adcontextprotocol/adcp-client-python/commit/f1e325bd9682e2792d9234ceb5adb31b8d77ab48)) +* **v3-ref-seller:** enable server validation + declare account.supported_billing ([#402](https://github.com/adcontextprotocol/adcp-client-python/issues/402)) ([ac7a61f](https://github.com/adcontextprotocol/adcp-client-python/commit/ac7a61fae0f41b2bf51b5e560edc118437f07638)) +* **v3-ref-seller:** translator pattern with JS mock-server upstream ([#447](https://github.com/adcontextprotocol/adcp-client-python/issues/447)) ([4185ced](https://github.com/adcontextprotocol/adcp-client-python/commit/4185cedce4cb27dbe6cfc0e104398d6811a48ccc)) +* **validation:** ADCP_VALIDATION_MODE env var + outputSchema on tools/list ([#391](https://github.com/adcontextprotocol/adcp-client-python/issues/391)) ([fa35bfb](https://github.com/adcontextprotocol/adcp-client-python/commit/fa35bfb5f4a17d97df6ce038e8b15cb54e88334e)) +* **validation:** oneOf near-miss validator hints + issues[].hint on every VALIDATION_ERROR ([#476](https://github.com/adcontextprotocol/adcp-client-python/issues/476)) ([9985086](https://github.com/adcontextprotocol/adcp-client-python/commit/9985086c23cbab80cf67348e0c84177f749f733f)) +* **validation:** per-version validator loader (stage 2 of versioned validation) ([#659](https://github.com/adcontextprotocol/adcp-client-python/issues/659)) ([6311a9a](https://github.com/adcontextprotocol/adcp-client-python/commit/6311a9a8ea4b14af9c2abc6991231e21585cbea7)) +* **validation:** schema-driven validation with client hooks and opt-in server middleware ([5cbac87](https://github.com/adcontextprotocol/adcp-client-python/commit/5cbac871e222eaf037346632fd4ddf1354bfd6ee)) +* **validation:** schema-driven validation with client hooks and opt-in server middleware ([a38ff57](https://github.com/adcontextprotocol/adcp-client-python/commit/a38ff57c934eded647ac84a470bb79a4a1b8bca6)) +* **validation:** validate_publisher_properties_item accepts Pydantic models ([#756](https://github.com/adcontextprotocol/adcp-client-python/issues/756)) ([01c6491](https://github.com/adcontextprotocol/adcp-client-python/commit/01c649119b3af5b8d39ce2e018559a01a6e96540)) +* **webhook:** PgWebhookDeliverySupervisor — Postgres-backed multi-worker delivery ([#360](https://github.com/adcontextprotocol/adcp-client-python/issues/360)) ([5f1f3a0](https://github.com/adcontextprotocol/adcp-client-python/commit/5f1f3a0fca2162547dda0c24c6f4723daced6b0b)) +* **webhooks:** adcp.webhooks.deliver() + A2A artifacts conformance ([493f219](https://github.com/adcontextprotocol/adcp-client-python/commit/493f2197f1618b3a626f2f8b99187985dc4a2fab)) +* **webhooks:** adcp.webhooks.deliver() one-shot legacy-auth dispatcher ([3bf663d](https://github.com/adcontextprotocol/adcp-client-python/commit/3bf663da780ee4db3d08eaf04ca68ee37dccd281)) +* **webhooks:** add from_pem and sign_legacy_webhook helpers ([19a8ab3](https://github.com/adcontextprotocol/adcp-client-python/commit/19a8ab389878013e6901d1ecf15d5d931842131b)) +* **webhooks:** create_mcp_webhook_payload returns McpWebhookPayload ([#632](https://github.com/adcontextprotocol/adcp-client-python/issues/632)) ([9eb962c](https://github.com/adcontextprotocol/adcp-client-python/commit/9eb962c38eb06e9e76290dcd0830edefd0c6a778)) +* **webhooks:** HMAC/bearer/Docker/Standard Webhooks delivery modes ([#482](https://github.com/adcontextprotocol/adcp-client-python/issues/482)) ([5d2c220](https://github.com/adcontextprotocol/adcp-client-python/commit/5d2c2208016b2355fbd0350a9ce039398abffb8d)) +* **webhooks:** public to_wire_dict() serialization seam ([#602](https://github.com/adcontextprotocol/adcp-client-python/issues/602)) ([6a06e88](https://github.com/adcontextprotocol/adcp-client-python/commit/6a06e888a6114c083d6bcf76c53b56d8433e3f99)) +* **webhooks:** replace `domain` kwarg with typed `protocol` (AdcpProtocol enum) ([#637](https://github.com/adcontextprotocol/adcp-client-python/issues/637)) ([fdd4053](https://github.com/adcontextprotocol/adcp-client-python/commit/fdd405386e8a6d08c55d6b3f43c1b619b6541c86)) +* **webhooks:** RFC 9421 signing + idempotency_key + sender/receiver UX ([63732c8](https://github.com/adcontextprotocol/adcp-client-python/commit/63732c89a3c4955cf79963a139e7627061a4a6f3)) +* **webhooks:** RFC 9421 signing + required idempotency_key + sender/receiver UX ([c640b8c](https://github.com/adcontextprotocol/adcp-client-python/commit/c640b8c2d0908f2ba21665e1a8acb4125a50cc6e)) + + +### Bug Fixes + +* **a2a:** address expert-review feedback on 1.0 migration ([7e54b97](https://github.com/adcontextprotocol/adcp-client-python/commit/7e54b97859321b8c9ed43bd87e899820cafcfc3d)) +* **adagents:** disable follow_redirects on ads.txt MANAGERDOMAIN fetch ([#754](https://github.com/adcontextprotocol/adcp-client-python/issues/754)) ([76a679f](https://github.com/adcontextprotocol/adcp-client-python/commit/76a679fdf2f9aa7fd3d1ccfe36340e9750a95d15)) +* **adagents:** inline-resolution path for publisher_properties selectors + publisher_domains[] fan-out ([#750](https://github.com/adcontextprotocol/adcp-client-python/issues/750)) ([659135f](https://github.com/adcontextprotocol/adcp-client-python/commit/659135f4c18af31d74bf2c7ef90cdb610b741011)) +* **adagents:** raise AdagentsAccessBlockedError on 403 + cf-mitigated: challenge ([#837](https://github.com/adcontextprotocol/adcp-client-python/issues/837)) ([bc4111f](https://github.com/adcontextprotocol/adcp-client-python/commit/bc4111f7f26b63a08b5d2e324abbbc7a39b6dbe1)) +* **adagents:** resolve-and-validate gate against DNS-based SSRF ([#757](https://github.com/adcontextprotocol/adcp-client-python/issues/757), partial) ([#760](https://github.com/adcontextprotocol/adcp-client-python/issues/760)) ([969f373](https://github.com/adcontextprotocol/adcp-client-python/commit/969f373873cd187bc08e542122c71bd76a4072a2)) +* **adcp:** skip eager httpx.AsyncClient alloc in WebhookSender.__aenter__ on owned-client path ([#301](https://github.com/adcontextprotocol/adcp-client-python/issues/301)) ([4bd45d1](https://github.com/adcontextprotocol/adcp-client-python/commit/4bd45d1c059ceeddfd184793a3f477f915c98446)), closes [#300](https://github.com/adcontextprotocol/adcp-client-python/issues/300) +* **agents:** already-engaged check + tighten label creation ([02baa89](https://github.com/adcontextprotocol/adcp-client-python/commit/02baa891ad0ccfd6ec392ae0350dd07671d65a0c)) +* **agents:** triage already-engaged + ship-more (missed in [#259](https://github.com/adcontextprotocol/adcp-client-python/issues/259)) ([ca42d29](https://github.com/adcontextprotocol/adcp-client-python/commit/ca42d2911bc07108e726bc6227e666ff97eb6724)) +* **agents:** webhook-miss sweep grace period (no double-fire) ([#280](https://github.com/adcontextprotocol/adcp-client-python/issues/280)) ([3a5f1c2](https://github.com/adcontextprotocol/adcp-client-python/commit/3a5f1c2a25f59ae485f90a5aa47c3e7119ad11ad)) +* allow owned signals discovery without activation ([#792](https://github.com/adcontextprotocol/adcp-client-python/issues/792)) ([46ae0c9](https://github.com/adcontextprotocol/adcp-client-python/commit/46ae0c9cc3a817c9630f232e6eb5fcc8dbe175a2)) +* **auth:** populate ctx.auth_principal from bearer ContextVar ([#574](https://github.com/adcontextprotocol/adcp-client-python/issues/574)) ([6c49b31](https://github.com/adcontextprotocol/adcp-client-python/commit/6c49b319b3a994eee475f45c8122b96bc10cf984)) +* **ci:** add --extra dev to pre-commit mypy hook so types-protobuf stubs are present ([#431](https://github.com/adcontextprotocol/adcp-client-python/issues/431)) ([254d0e2](https://github.com/adcontextprotocol/adcp-client-python/commit/254d0e2173c300598919e9fc1203fe141e934e7c)) +* **ci:** add concurrency group to cancel superseded runs on force-push ([#444](https://github.com/adcontextprotocol/adcp-client-python/issues/444)) ([272fb01](https://github.com/adcontextprotocol/adcp-client-python/commit/272fb0106a1b85ab40f5621e7dcd209a4cffca10)), closes [#413](https://github.com/adcontextprotocol/adcp-client-python/issues/413) +* **ci:** align pre-commit mypy with CI — install mypy in uv dev group ([#427](https://github.com/adcontextprotocol/adcp-client-python/issues/427)) ([d3d8f7b](https://github.com/adcontextprotocol/adcp-client-python/commit/d3d8f7bb048b9c328550003d10aa4705f6e21a93)) +* **ci:** pre-install @adcp/client + bump readiness window for v3 storyboard ([#448](https://github.com/adcontextprotocol/adcp-client-python/issues/448)) ([6b89599](https://github.com/adcontextprotocol/adcp-client-python/commit/6b89599ca25a948f378c2df214e8d4a7c8f6791f)) +* **ci:** v3 reference seller storyboard job actually asserts on results ([#693](https://github.com/adcontextprotocol/adcp-client-python/issues/693)) ([27a5866](https://github.com/adcontextprotocol/adcp-client-python/commit/27a58661d661dfe2dbea7f84b9108a98dacd8ffe)) +* **client:** add extra_headers escape hatch for multi-tenant servers ([#585](https://github.com/adcontextprotocol/adcp-client-python/issues/585)) ([66b7456](https://github.com/adcontextprotocol/adcp-client-python/commit/66b745692cb5e3d1099424efdaed8e4ab0faa3a3)) +* **client:** preserve agent_uri trailing slash; widen MCP URL fallbacks ([#582](https://github.com/adcontextprotocol/adcp-client-python/issues/582)) ([1db3ce3](https://github.com/adcontextprotocol/adcp-client-python/commit/1db3ce3d585bdc8af2425078981b53e69f1f49ce)) +* **codegen:** preserve regenerated response aliases ([#854](https://github.com/adcontextprotocol/adcp-client-python/issues/854)) ([56d65fd](https://github.com/adcontextprotocol/adcp-client-python/commit/56d65fd1187a90ed9128a691a359e862eea00e13)) +* **compat:** extract hostname from brand_manifest URLs with paths ([#679](https://github.com/adcontextprotocol/adcp-client-python/issues/679)) ([6bb2c26](https://github.com/adcontextprotocol/adcp-client-python/commit/6bb2c2624fd044bec443281b88f636388754b9ec)), closes [#677](https://github.com/adcontextprotocol/adcp-client-python/issues/677) +* **compat:** handle inline BrandManifest object in v2.5 adapters ([#685](https://github.com/adcontextprotocol/adcp-client-python/issues/685)) ([edd7d0a](https://github.com/adcontextprotocol/adcp-client-python/commit/edd7d0a62ebb5ca06b285ba9a0db3d264de0e53a)) +* **compat:** warn on non-standard brand_manifest path in inline-object branch ([#688](https://github.com/adcontextprotocol/adcp-client-python/issues/688)) ([840e6b3](https://github.com/adcontextprotocol/adcp-client-python/commit/840e6b30ec42c09e9a9de3592b0756fb1f776053)), closes [#687](https://github.com/adcontextprotocol/adcp-client-python/issues/687) +* **compat:** warn when brand_manifest non-standard path is flattened to domain ([#686](https://github.com/adcontextprotocol/adcp-client-python/issues/686)) ([0568d2e](https://github.com/adcontextprotocol/adcp-client-python/commit/0568d2eafea58a66b96ebd38afef218558f06edf)) +* **decisioning:** address expert review — major_versions passthrough, supported_protocols default, nested re-exports ([b72b744](https://github.com/adcontextprotocol/adcp-client-python/commit/b72b74485a5fb1c6800bc2659e0ec22740c90fc0)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** apply 3.10 mock-target fix to second compliance_testing test ([d086aa8](https://github.com/adcontextprotocol/adcp-client-python/commit/d086aa88d8a709a7e8a5b2876b9079dba540fc8f)), closes [#485](https://github.com/adcontextprotocol/adcp-client-python/issues/485) +* **decisioning:** async-safe create_adcp_server_from_platform ([#700](https://github.com/adcontextprotocol/adcp-client-python/issues/700)) ([#719](https://github.com/adcontextprotocol/adcp-client-python/issues/719)) ([056714f](https://github.com/adcontextprotocol/adcp-client-python/commit/056714f8669aad0c3dd2f0a1b545a3d8c1682826)) +* **decisioning:** fire legacy-field DeprecationWarnings at construction ([679709b](https://github.com/adcontextprotocol/adcp-client-python/commit/679709b1a269cbe4510264dad0c8bb8588ab48ee)), closes [#485](https://github.com/adcontextprotocol/adcp-client-python/issues/485) +* **decisioning:** handle Specialism|str union in create_media_buy_store ([6f3faa0](https://github.com/adcontextprotocol/adcp-client-python/commit/6f3faa0447c328ca82ee29e03e52ee6a4f2a5140)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** handler shims for every non-sales wire tool ([#337](https://github.com/adcontextprotocol/adcp-client-python/issues/337)) ([a51c5a4](https://github.com/adcontextprotocol/adcp-client-python/commit/a51c5a49d99132a51f1b95721f5d4329110fe164)) +* **decisioning:** mock target Python 3.10 import-resolution compat ([40b4517](https://github.com/adcontextprotocol/adcp-client-python/commit/40b4517f57054e3fa1115c1e8d2d0a4e1d2abdcc)), closes [#485](https://github.com/adcontextprotocol/adcp-client-python/issues/485) +* **decisioning:** post-[#484](https://github.com/adcontextprotocol/adcp-client-python/issues/484) capabilities-projection polish (closes [#485](https://github.com/adcontextprotocol/adcp-client-python/issues/485)) ([87bacfb](https://github.com/adcontextprotocol/adcp-client-python/commit/87bacfbe708b5eca8f56b151572541c934bb7f97)) +* **decisioning:** project malformed-JSON 2xx responses to AdcpError ([#836](https://github.com/adcontextprotocol/adcp-client-python/issues/836)) ([c547dfe](https://github.com/adcontextprotocol/adcp-client-python/commit/c547dfe66148d393f705443f8a4c2dac50f6e749)), closes [#453](https://github.com/adcontextprotocol/adcp-client-python/issues/453) +* **decisioning:** re-validate params through platform method's stricter subclass annotation ([#597](https://github.com/adcontextprotocol/adcp-client-python/issues/597)) ([3d269f5](https://github.com/adcontextprotocol/adcp-client-python/commit/3d269f5c2ddd1624e6f6caf0a370214b4ab1751d)) +* **decisioning:** TaskHandoff registry.fail/complete echo request context ([#569](https://github.com/adcontextprotocol/adcp-client-python/issues/569)) ([b73b899](https://github.com/adcontextprotocol/adcp-client-python/commit/b73b8999c229287a5c1ba3364b17b4233c2aa438)) +* **decisioning:** three Emma cross-cutting findings + matrix runner ([#341](https://github.com/adcontextprotocol/adcp-client-python/issues/341)) ([4938ee1](https://github.com/adcontextprotocol/adcp-client-python/commit/4938ee1f913c37ecd5ac3b6f2c9a368b0364e405)) +* **decisioning:** Tier 2 codes → spec-conformant PERMISSION_DENIED ([#375](https://github.com/adcontextprotocol/adcp-client-python/issues/375)) ([#393](https://github.com/adcontextprotocol/adcp-client-python/issues/393)) ([870e98a](https://github.com/adcontextprotocol/adcp-client-python/commit/870e98ad6657a0dd2214d695765e3b5bc6b7228b)) +* **decisioning:** Tier 2 expert-review fix-pack ([#372](https://github.com/adcontextprotocol/adcp-client-python/issues/372)) ([9605f44](https://github.com/adcontextprotocol/adcp-client-python/commit/9605f44518c79c544d3ff1539395234c3f8b73a8)) +* **decisioning:** timing-oracle defense on PERMISSION_DENIED branches ([#772](https://github.com/adcontextprotocol/adcp-client-python/issues/772)) ([#774](https://github.com/adcontextprotocol/adcp-client-python/issues/774)) ([c23c9d5](https://github.com/adcontextprotocol/adcp-client-python/commit/c23c9d524ed6ba390cce0ad224d809408160a8ef)) +* **decisioning:** update v3 reference seller smoke tests for Specialism|str union ([09c5669](https://github.com/adcontextprotocol/adcp-client-python/commit/09c5669d1f1f9669adc3a21b47c47e63169528ab)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** wire sync_accounts/list_accounts dispatch to AccountStore Protocols ([#610](https://github.com/adcontextprotocol/adcp-client-python/issues/610)) ([dabf4fb](https://github.com/adcontextprotocol/adcp-client-python/commit/dabf4fb77cb8d64ff1984aa52ae74aac6230b8a1)) +* **decisioning:** wire-path dispatch + F12 silent no-op (Emma sales-direct P0s) ([#338](https://github.com/adcontextprotocol/adcp-client-python/issues/338)) ([50c985e](https://github.com/adcontextprotocol/adcp-client-python/commit/50c985eda951fa9a720ad9c5ff0bb758efdd812f)) +* **decisioning:** wrap pydantic.ValidationError from delegates as INVALID_REQUEST ([#656](https://github.com/adcontextprotocol/adcp-client-python/issues/656)) ([976ab4f](https://github.com/adcontextprotocol/adcp-client-python/commit/976ab4f611c93fcfe461cb5e5028b1a13bb90f0a)) +* **deps:** add types-protobuf to pip dev extras ([801ac16](https://github.com/adcontextprotocol/adcp-client-python/commit/801ac1688309497d71823163098a7449e5c082e4)) +* **deps:** bump a2a-sdk to >=1.0.2,<1.1 ([#586](https://github.com/adcontextprotocol/adcp-client-python/issues/586)) ([2fd640c](https://github.com/adcontextprotocol/adcp-client-python/commit/2fd640ce762eaaa0370869a01355da1f4afb8e35)) +* **deps:** re-pin a2a-sdk<1.0.2, add protobuf>=6 floor + matrix canary ([#588](https://github.com/adcontextprotocol/adcp-client-python/issues/588)) ([1e16d6f](https://github.com/adcontextprotocol/adcp-client-python/commit/1e16d6f3523aee060d1912c9608127caed4190ea)) +* **example:** derive port and AGENT_URL from ADCP_PORT env ([1df2306](https://github.com/adcontextprotocol/adcp-client-python/commit/1df230638359ba2cbc1b7d26f1ef5af769e1f811)) +* **examples/multi_platform_seller:** align mocks with wire contract; storyboard gate now blocking ([#508](https://github.com/adcontextprotocol/adcp-client-python/issues/508)) ([863bb93](https://github.com/adcontextprotocol/adcp-client-python/commit/863bb933f88d12b987bc64aeff109636986c639a)) +* **examples/multi_platform_seller:** list_creatives populates query_summary (closes [#510](https://github.com/adcontextprotocol/adcp-client-python/issues/510)) ([#521](https://github.com/adcontextprotocol/adcp-client-python/issues/521)) ([c7cfe6f](https://github.com/adcontextprotocol/adcp-client-python/commit/c7cfe6fb05622cb68fb194f24dfef4dea8fc317b)) +* **examples:** close last 5 storyboard fixture-dependent failures ([#319](https://github.com/adcontextprotocol/adcp-client-python/issues/319)) ([#322](https://github.com/adcontextprotocol/adcp-client-python/issues/322)) ([d92cfb1](https://github.com/adcontextprotocol/adcp-client-python/commit/d92cfb13839fa26a4ab69ae2db941c752db054a1)) +* **examples:** seed_product complete defaults + format_ids agent_url normalization ([#319](https://github.com/adcontextprotocol/adcp-client-python/issues/319)) ([#321](https://github.com/adcontextprotocol/adcp-client-python/issues/321)) ([046b15e](https://github.com/adcontextprotocol/adcp-client-python/commit/046b15e429b40412a284d50e9d28bf884355c80f)) +* **examples:** seller_agent.py AdCP 3.0.1 storyboard compliance (items 1-6 of [#304](https://github.com/adcontextprotocol/adcp-client-python/issues/304)) ([#310](https://github.com/adcontextprotocol/adcp-client-python/issues/310)) ([04966d7](https://github.com/adcontextprotocol/adcp-client-python/commit/04966d7183811238d57e28a3aebc63e6de135a32)) +* expose requested AdCP version resolver ([#855](https://github.com/adcontextprotocol/adcp-client-python/issues/855)) ([f1d88bc](https://github.com/adcontextprotocol/adcp-client-python/commit/f1d88bc8746beb372f8155f494942006291f8d78)) +* **handlers:** sync MEDIA_BUY_STATE_MACHINE with spec v3 enum ([#289](https://github.com/adcontextprotocol/adcp-client-python/issues/289)) ([54fd18b](https://github.com/adcontextprotocol/adcp-client-python/commit/54fd18b45cbef587db0d6ce48531c5b35e3c302b)) +* harden media buy response normalization ([5defa15](https://github.com/adcontextprotocol/adcp-client-python/commit/5defa15a51ad12cb89b0efbded726dbc2568bf40)) +* harden media buy response normalization ([532459a](https://github.com/adcontextprotocol/adcp-client-python/commit/532459aed2fb4e5da9be58bdee43585529e5dbbf)) +* **harness,server:** surface partial/failing storyboards, reuse port on rerun, default list_creatives timestamps ([3b27001](https://github.com/adcontextprotocol/adcp-client-python/commit/3b2700147058fe2b770e387046d3972f64d34147)) +* **idempotency:** @IdempotencyStore.wrap supports arg-projected methods ([#567](https://github.com/adcontextprotocol/adcp-client-python/issues/567)) ([1abdae6](https://github.com/adcontextprotocol/adcp-client-python/commit/1abdae676c8f3bcf2bef48ea5a6d192a5da7de92)) +* **idempotency:** honor new required Idempotency.supported field in strict gate ([9ff08c9](https://github.com/adcontextprotocol/adcp-client-python/commit/9ff08c9b1a3578e4ff9d240b8df9f1736e5c989c)) +* **migrate+types:** PR [#247](https://github.com/adcontextprotocol/adcp-client-python/issues/247) expert-review followups ([ac505c0](https://github.com/adcontextprotocol/adcp-client-python/commit/ac505c028741ce61efac741a34afdfecddc43eb2)) +* **migrate:** per-symbol replacement for generated_poc reach-ins ([#329](https://github.com/adcontextprotocol/adcp-client-python/issues/329)) ([100680b](https://github.com/adcontextprotocol/adcp-client-python/commit/100680beba6ea99d5bca606d4582c4e7b6559d34)) +* preserve full sync_accounts request for account stores ([#796](https://github.com/adcontextprotocol/adcp-client-python/issues/796)) ([2b7ad01](https://github.com/adcontextprotocol/adcp-client-python/commit/2b7ad01dc19f0d7146dcb6a6dd5734e3ed7220d5)) +* **sdk:** remove stray noqa, correct capabilities_response docstring ([05ac689](https://github.com/adcontextprotocol/adcp-client-python/commit/05ac68914d608fbbcffa3f3576355eebfc7bc9fc)) +* **sdk:** SDK cheap fixes for DX Stream B1 ([e67e8ed](https://github.com/adcontextprotocol/adcp-client-python/commit/e67e8ed9643c117b8545143b26b5904da56285b1)) +* **sdk:** three cleanups from round-4 validator findings ([d7e93f7](https://github.com/adcontextprotocol/adcp-client-python/commit/d7e93f73171f3c4f9d153e1cc207747120ed5ee9)) +* seller SDK version compatibility ([#852](https://github.com/adcontextprotocol/adcp-client-python/issues/852)) ([e4b716d](https://github.com/adcontextprotocol/adcp-client-python/commit/e4b716d05462eabf49262222376e8ad7d95198c1)) +* **seller:** declare compliance_testing block and add missing force_creative_status scenario ([5de1c61](https://github.com/adcontextprotocol/adcp-client-python/commit/5de1c61062ee628e9dcfe786c948db58e5727fb8)) +* send AAO directory pagination cursor as cursor ([#811](https://github.com/adcontextprotocol/adcp-client-python/issues/811)) ([da91183](https://github.com/adcontextprotocol/adcp-client-python/commit/da9118338856e78d00f08d12b0fd3178d819cfe5)) +* **server:** A2A auth middleware populates current_principal contextvars ([#592](https://github.com/adcontextprotocol/adcp-client-python/issues/592)) ([5430942](https://github.com/adcontextprotocol/adcp-client-python/commit/543094270f97685034e7e390199e1909222a451b)) +* **server:** Authorization: Bearer always accepted; legacy headers additive ([#720](https://github.com/adcontextprotocol/adcp-client-python/issues/720)) ([#721](https://github.com/adcontextprotocol/adcp-client-python/issues/721)) ([dd6503e](https://github.com/adcontextprotocol/adcp-client-python/commit/dd6503ecf36094d2e00ec042b26ac1f8465f344e)) +* **server:** BearerTokenAuthMiddleware now populates ctx.auth_info for bearer flows ([#579](https://github.com/adcontextprotocol/adcp-client-python/issues/579)) ([901aa53](https://github.com/adcontextprotocol/adcp-client-python/commit/901aa53e6b86b3d8bde92ff4a434cd19dbc9f1f3)) +* **server:** comply_test_controller returns dict to fix controller_detected: false ([#317](https://github.com/adcontextprotocol/adcp-client-python/issues/317)) ([9244d46](https://github.com/adcontextprotocol/adcp-client-python/commit/9244d464e756dcef969ebdb3f9b49369c06a1f58)) +* **server:** echo request context on AdcpError error envelopes ([#560](https://github.com/adcontextprotocol/adcp-client-python/issues/560)) ([2e351b0](https://github.com/adcontextprotocol/adcp-client-python/commit/2e351b0d20c73c8483deeaa4c0efa89d3c453af7)) +* **server:** emit WWW-Authenticate on every 401 (RFC 6750 §3) [#712](https://github.com/adcontextprotocol/adcp-client-python/issues/712) ([#715](https://github.com/adcontextprotocol/adcp-client-python/issues/715)) ([ce707d3](https://github.com/adcontextprotocol/adcp-client-python/commit/ce707d3b2a08e7b2a73ecbee53b361821e393dba)) +* **server:** expert-review followups — tenant-scoped idempotency, A2A context_factory, ContextVar safety ([5f053af](https://github.com/adcontextprotocol/adcp-client-python/commit/5f053af8aa4eca0369a3355d6c7dd498a155713f)) +* **server:** fix streamable-http ASGI error, host binding, and AdCP 3.0.1 scenario gaps ([#296](https://github.com/adcontextprotocol/adcp-client-python/issues/296)) ([6be0232](https://github.com/adcontextprotocol/adcp-client-python/commit/6be02328be979ccd32ac2914d8b5e04c0923dd02)) +* **server:** PR [#230](https://github.com/adcontextprotocol/adcp-client-python/issues/230) expert-review followups — cross-tenant isolation + hardening ([bb2bc67](https://github.com/adcontextprotocol/adcp-client-python/commit/bb2bc67abb5d470fa126a27c232fea2343f9495e)) +* **server:** PR [#232](https://github.com/adcontextprotocol/adcp-client-python/issues/232) expert-review followups — scope_provider injection, loud anonymous fallback, SSRF/secret-storage docs ([5d3eff8](https://github.com/adcontextprotocol/adcp-client-python/commit/5d3eff8140ab7825947b72c4f04bda9ffc9ae8f0)) +* **server:** PR [#233](https://github.com/adcontextprotocol/adcp-client-python/issues/233) expert-review followups — security docs + retry/transform tests ([afbbfac](https://github.com/adcontextprotocol/adcp-client-python/commit/afbbfac5c87581cd0096d525c1dbf264356020ea)) +* **server:** PR [#234](https://github.com/adcontextprotocol/adcp-client-python/issues/234) expert-review followups — TypeVar tests & docs ([df5898c](https://github.com/adcontextprotocol/adcp-client-python/commit/df5898ca7dead3acb25fc7d5571ae1f88c55a52e)) +* **server:** PR [#237](https://github.com/adcontextprotocol/adcp-client-python/issues/237) expert-review followups ([a415786](https://github.com/adcontextprotocol/adcp-client-python/commit/a415786b6fdf02bf43c19996a41488c881b81f68)) +* **server:** PR [#238](https://github.com/adcontextprotocol/adcp-client-python/issues/238) expert-review followups ([a198656](https://github.com/adcontextprotocol/adcp-client-python/commit/a1986562eb0e36bf1ec3a4e2136082c93b994698)) +* **server:** PR [#238](https://github.com/adcontextprotocol/adcp-client-python/issues/238) review round 2 — MCP field surfacing + custom-validator doc ([4d4e2e7](https://github.com/adcontextprotocol/adcp-client-python/commit/4d4e2e7784bbb970e5d7cd8505d36f5570c96c4e)) +* **server:** PR [#241](https://github.com/adcontextprotocol/adcp-client-python/issues/241) expert-review followups ([ce189f8](https://github.com/adcontextprotocol/adcp-client-python/commit/ce189f84f5392f45964fa3e5e355436e675222e9)) +* **server:** PR [#244](https://github.com/adcontextprotocol/adcp-client-python/issues/244) expert-review followups ([6af9a7d](https://github.com/adcontextprotocol/adcp-client-python/commit/6af9a7d00bdcda5378b8225de2531f99cea1d1a2)) +* **server:** PR [#245](https://github.com/adcontextprotocol/adcp-client-python/issues/245) code-review followups — fail loudly on silent-skip paths ([a0a3077](https://github.com/adcontextprotocol/adcp-client-python/commit/a0a3077b9d99f60f2aed2300de139aebd7fc0e41)) +* **server:** preserve Starlette lifespan when public_url is callable ([#680](https://github.com/adcontextprotocol/adcp-client-python/issues/680)) ([8632847](https://github.com/adcontextprotocol/adcp-client-python/commit/86328470ff9b53f6837368edd14851c16032efa7)), closes [#676](https://github.com/adcontextprotocol/adcp-client-python/issues/676) +* **server:** protocol-polish follow-ups from PR [#341](https://github.com/adcontextprotocol/adcp-client-python/issues/341) ([#342](https://github.com/adcontextprotocol/adcp-client-python/issues/342)) ([5a37adc](https://github.com/adcontextprotocol/adcp-client-python/commit/5a37adca7364f8c0892d991540444caf024eda0c)) +* **server:** register /.well-known/agent.json alias route in create_a2a_server ([#613](https://github.com/adcontextprotocol/adcp-client-python/issues/613)) ([2989101](https://github.com/adcontextprotocol/adcp-client-python/commit/29891019daa7e5c201045f69affd982e41cd459c)) +* **server:** strip None-valued asset fields from dict-based response builder output ([#631](https://github.com/adcontextprotocol/adcp-client-python/issues/631)) ([c02ea84](https://github.com/adcontextprotocol/adcp-client-python/commit/c02ea842ada85570b1c953d2f0ec989cba61b8de)), closes [#622](https://github.com/adcontextprotocol/adcp-client-python/issues/622) +* **server:** Threat 3 merge-blocker on advertised-tools gate ([11abb3b](https://github.com/adcontextprotocol/adcp-client-python/commit/11abb3b7cced61611d856763e42995a9c32966b1)) +* **signing:** Argus follow-ups on [#789](https://github.com/adcontextprotocol/adcp-client-python/issues/789) — IDNA + IP literals, Protocol contract, misconfig warnings, diagnostic hygiene ([#798](https://github.com/adcontextprotocol/adcp-client-python/issues/798)) ([fcb64fc](https://github.com/adcontextprotocol/adcp-client-python/commit/fcb64fcfae8b42822bdf92c289dcb771191419c4)) +* **signing:** PR [#206](https://github.com/adcontextprotocol/adcp-client-python/issues/206) reviewer fixes — IDN normalization, HTTPS_PROXY, fail-closed reuse ([b432b03](https://github.com/adcontextprotocol/adcp-client-python/commit/b432b03003c5cf2d1afa393d7dd5d714e0785405)) +* **signing:** PR [#243](https://github.com/adcontextprotocol/adcp-client-python/issues/243) expert-review followups ([e616307](https://github.com/adcontextprotocol/adcp-client-python/commit/e6163077b84a73523b89c653154694d250124ea2)) +* **signing:** validate-before-sign symmetry in deliver() + HMAC SSRF coverage + 4.1 migration notes ([bc8da3a](https://github.com/adcontextprotocol/adcp-client-python/commit/bc8da3aa52a8eae61fab20da6a57359dfb96a2f2)) +* **testing:** make a2a_compat_shim resilient to wrong a2a-sdk in /tmp worktrees ([#433](https://github.com/adcontextprotocol/adcp-client-python/issues/433)) ([c5c581d](https://github.com/adcontextprotocol/adcp-client-python/commit/c5c581dedb591d37565f52fff69d5f5e13619164)) +* **triage:** drop apostrophe from MODE text (port of adcp[#3325](https://github.com/adcontextprotocol/adcp-client-python/issues/3325)) ([#287](https://github.com/adcontextprotocol/adcp-client-python/issues/287)) ([2efa423](https://github.com/adcontextprotocol/adcp-client-python/commit/2efa4238006b2feccfa253099d1cc6bf4dd07b84)) +* **types:** add update media buy response coercion ([#864](https://github.com/adcontextprotocol/adcp-client-python/issues/864)) ([c111ba6](https://github.com/adcontextprotocol/adcp-client-python/commit/c111ba6a04467c06eb8d8a57d814bdb0b91d93da)) +* **types:** CreateMediaBuy handler return type covers all 3 branches + add Submitted alias ([#575](https://github.com/adcontextprotocol/adcp-client-python/issues/575)) ([f7960ed](https://github.com/adcontextprotocol/adcp-client-python/commit/f7960ed5778e6d96299eaa7246afa8a03682de9f)) +* **types:** open Format.assets discriminated union with UnknownFormatAsset fallback arm (issue [#742](https://github.com/adcontextprotocol/adcp-client-python/issues/742)) ([#744](https://github.com/adcontextprotocol/adcp-client-python/issues/744)) ([7904f85](https://github.com/adcontextprotocol/adcp-client-python/commit/7904f85ca0a9241977fb70e782a687425a4a7565)) +* **types:** resolve capability sub-models via field annotation, not numbered names ([#745](https://github.com/adcontextprotocol/adcp-client-python/issues/745)) ([b63c7e6](https://github.com/adcontextprotocol/adcp-client-python/commit/b63c7e6bf4df453ad40760e70fd638080deecdfa)) +* **types:** widen canceled Literal[True]=True to Literal[True]|None=None on request types ([#643](https://github.com/adcontextprotocol/adcp-client-python/issues/643)) ([120ae3b](https://github.com/adcontextprotocol/adcp-client-python/commit/120ae3b690f3ec5ae70d0f825ff4e19506205ead)) +* **v3-ref-seller:** run alembic upgrade head at boot ([#421](https://github.com/adcontextprotocol/adcp-client-python/issues/421)) ([#733](https://github.com/adcontextprotocol/adcp-client-python/issues/733)) ([ffa3c8c](https://github.com/adcontextprotocol/adcp-client-python/commit/ffa3c8c49ebaba3735721c92176086807782cdbf)) +* **validation:** address code + security review feedback ([5bf9434](https://github.com/adcontextprotocol/adcp-client-python/commit/5bf9434da477140768a9aa55cde493e89adfcf0e)) +* **webhooks,seller,signals:** round-6 P1+P2 DX fixes ([6e51519](https://github.com/adcontextprotocol/adcp-client-python/commit/6e515192b9eac96f90cd1e0923425b3121201f62)) +* **webhooks:** add canceled/rejected/auth-required to A2A status map; fail fast on unknowns ([#606](https://github.com/adcontextprotocol/adcp-client-python/issues/606)) ([89f9491](https://github.com/adcontextprotocol/adcp-client-python/commit/89f949105fa99c9fd2da4e0d3bef207be4471242)) +* **webhooks:** align deliver() with canonical compact-separator on-wire form ([92240d5](https://github.com/adcontextprotocol/adcp-client-python/commit/92240d5c481f743569447c1c63d8ef1637c53436)) +* **webhooks:** correct type annotations for extract_webhook_result_data and payload builders ([#600](https://github.com/adcontextprotocol/adcp-client-python/issues/600)) ([e624b5c](https://github.com/adcontextprotocol/adcp-client-python/commit/e624b5c4e72754f0f5b3fd6b6bebc8abddefef5e)) +* **webhooks:** promote McpWebhookPayload.token from extras shim to typed field ([#835](https://github.com/adcontextprotocol/adcp-client-python/issues/835)) ([3832433](https://github.com/adcontextprotocol/adcp-client-python/commit/383243357e30c9fdb0b67a69b354676ace38efe7)), closes [#638](https://github.com/adcontextprotocol/adcp-client-python/issues/638) +* **webhooks:** re-apply compact-separator signer after rebase onto 3.0 GA ([166aa1b](https://github.com/adcontextprotocol/adcp-client-python/commit/166aa1b46e63c11eb5438f41a937e8dcd60114a6)) +* **webhooks:** reject unknown AdCP status in create_a2a_webhook_payload ([#605](https://github.com/adcontextprotocol/adcp-client-python/issues/605)) ([37d2cda](https://github.com/adcontextprotocol/adcp-client-python/commit/37d2cdacc609f7506d1c3556f2b5aa4b7fd95153)) +* **webhooks:** sign compact-separator JSON to match httpx wire format ([1c2a527](https://github.com/adcontextprotocol/adcp-client-python/commit/1c2a52798bf8415fac6b9d920d3d984410e02114)) +* **webhooks:** verifier fails closed when raw_body missing (adcp[#2478](https://github.com/adcontextprotocol/adcp-client-python/issues/2478)) ([9a906a9](https://github.com/adcontextprotocol/adcp-client-python/commit/9a906a9466cda28f4043f1fa05895401385fccba)) + + +### Performance Improvements + +* **ci:** cache ~/.npm + drop per-invocation npx for storyboard runners ([#450](https://github.com/adcontextprotocol/adcp-client-python/issues/450)) ([386cb15](https://github.com/adcontextprotocol/adcp-client-python/commit/386cb15071673a7340a54b31db07bd07ac448300)) +* **server:** lazy-load Pydantic schema generation to fix storyboard readiness flake ([#435](https://github.com/adcontextprotocol/adcp-client-python/issues/435)) ([8664ea3](https://github.com/adcontextprotocol/adcp-client-python/commit/8664ea37a4468646a1caef3238d7eb3d3b28a9f5)) + + +### Reverts + +* **preview:** remove opt-in v3.1 preview surface ([#747](https://github.com/adcontextprotocol/adcp-client-python/issues/747)) ([#755](https://github.com/adcontextprotocol/adcp-client-python/issues/755)) ([6947870](https://github.com/adcontextprotocol/adcp-client-python/commit/6947870bb2d3a5746ab174b3dee747a50e9c63fc)) + + +### Documentation + +* **adcp:** document git worktree isolation pattern for parallel agents ([#428](https://github.com/adcontextprotocol/adcp-client-python/issues/428)) ([117d4f2](https://github.com/adcontextprotocol/adcp-client-python/commit/117d4f2f4bd1979123d91d4e590aebab8969b814)) +* **adcp:** fix a2a-sdk 1.0.x symbol guidance in v3→v4 migration guide ([#524](https://github.com/adcontextprotocol/adcp-client-python/issues/524)) ([57cb4e5](https://github.com/adcontextprotocol/adcp-client-python/commit/57cb4e51261e5b929d056005ed6138fbc8d5722d)), closes [#514](https://github.com/adcontextprotocol/adcp-client-python/issues/514) +* add MIGRATION_v5_to_v6 stub for the 6.0-beta line ([#823](https://github.com/adcontextprotocol/adcp-client-python/issues/823)) ([c3837af](https://github.com/adcontextprotocol/adcp-client-python/commit/c3837af96f58dc37c22dbef47a02a2bbcaad3bf2)), closes [#802](https://github.com/adcontextprotocol/adcp-client-python/issues/802) +* **agents:** add parallel agent coordination protocol to CLAUDE.md ([#430](https://github.com/adcontextprotocol/adcp-client-python/issues/430)) ([abf0d65](https://github.com/adcontextprotocol/adcp-client-python/commit/abf0d65563f3cde45d907950214fbd16d3a2857f)) +* **agents:** behaviour → behavior (Argus smoke test) ([#766](https://github.com/adcontextprotocol/adcp-client-python/issues/766)) ([e7c0815](https://github.com/adcontextprotocol/adcp-client-python/commit/e7c0815595f9839f065323f9e90f087b71773d5b)) +* **contributing:** document PR title format to prevent silent CHANGELOG drops ([#580](https://github.com/adcontextprotocol/adcp-client-python/issues/580)) ([2c5ec64](https://github.com/adcontextprotocol/adcp-client-python/commit/2c5ec64a8e3a7109e0834bbbe7aa761ac87eebd1)) +* **creative:** fix NameError in build_creative fallback ([afe6afb](https://github.com/adcontextprotocol/adcp-client-python/commit/afe6afbae671594e185c236dda6f0aa25123f8df)) +* **creative:** remove anti-patterns from build-creative-agent skill ([9e42039](https://github.com/adcontextprotocol/adcp-client-python/commit/9e42039cc7da9191dee1efe0737fb2f642337ba0)) +* **decisioning:** adopter guide for declaring capabilities ([f2e8f9a](https://github.com/adcontextprotocol/adcp-client-python/commit/f2e8f9acbe598ed4b9b02fe5afebdc3fac80bd7a)), closes [#479](https://github.com/adcontextprotocol/adcp-client-python/issues/479) +* **decisioning:** document AccountStore.resolve() as the multi-tenant encoding seam ([#739](https://github.com/adcontextprotocol/adcp-client-python/issues/739)) ([0b30743](https://github.com/adcontextprotocol/adcp-client-python/commit/0b30743818c0b3c85ce2ddb05f4305badbe6504f)) +* **design:** FastMCP native registration investigation ([#209](https://github.com/adcontextprotocol/adcp-client-python/issues/209)) ([d32694f](https://github.com/adcontextprotocol/adcp-client-python/commit/d32694f00fa7aef27d54b0671233646c6fdf5bbf)) +* **design:** FastMCP native registration investigation (closes [#209](https://github.com/adcontextprotocol/adcp-client-python/issues/209)) ([ba3cb73](https://github.com/adcontextprotocol/adcp-client-python/commit/ba3cb733ddd4e4d60aad8c5a2296acd02d98b9ad)) +* **examples:** Alembic migration scaffold for v3 reference seller ([#390](https://github.com/adcontextprotocol/adcp-client-python/issues/390)) ([3035c25](https://github.com/adcontextprotocol/adcp-client-python/commit/3035c25ba906680facb685c66df784cab6d3de49)) +* **examples:** expand hello_seller.py to full 9-method sales-non-guaranteed surface ([#531](https://github.com/adcontextprotocol/adcp-client-python/issues/531)) ([7d21302](https://github.com/adcontextprotocol/adcp-client-python/commit/7d213026414038e4a92e4318ba8a3c9194e04ea1)) +* **examples:** webhook wiring recipe — handler-authoring section + expanded hello_seller + new with_webhooks example ([#551](https://github.com/adcontextprotocol/adcp-client-python/issues/551)) ([6cf71cb](https://github.com/adcontextprotocol/adcp-client-python/commit/6cf71cbb7fed2169f43c847fc28f5685c29a995f)) +* **generative-seller:** fix invalid enums and document generative tools ([99e9f2e](https://github.com/adcontextprotocol/adcp-client-python/commit/99e9f2e2e366c48b578cc3f7dd38e66093c09357)) +* **handler-authoring:** expand with salesagent migration production patterns ([#326](https://github.com/adcontextprotocol/adcp-client-python/issues/326)) ([ce4c5df](https://github.com/adcontextprotocol/adcp-client-python/commit/ce4c5df50fa156f3ff318c6a4c6376019adff540)) +* **migration:** add v4.0 → v4.1 migration guide ([#302](https://github.com/adcontextprotocol/adcp-client-python/issues/302)) ([01a1068](https://github.com/adcontextprotocol/adcp-client-python/commit/01a106891df33e8409bf95a63f11eec08ebbcf15)) +* **migration:** anchor v3→v4 adopter numbers to v4.0 release, point to live codemod ([#522](https://github.com/adcontextprotocol/adcp-client-python/issues/522)) ([11732c8](https://github.com/adcontextprotocol/adcp-client-python/commit/11732c87bd494874801ec55ae139634a7a604fa6)) +* **proposals:** product architecture — layered model + two-platform composition ([#502](https://github.com/adcontextprotocol/adcp-client-python/issues/502)) ([69c585c](https://github.com/adcontextprotocol/adcp-client-python/commit/69c585c962c2e531fd7d5d76d9be0a326ca7eea7)) +* **proposals:** ProposalManager v1.5 design — session cache, finalize, expires_at, capability validation, recipe lifecycle ([#538](https://github.com/adcontextprotocol/adcp-client-python/issues/538)) ([8ea85ad](https://github.com/adcontextprotocol/adcp-client-python/commit/8ea85ad992b5571b84c88ab7b5a24e824339e575)) +* **proposals:** when to use which proposal surface ([#533](https://github.com/adcontextprotocol/adcp-client-python/issues/533)) ([a9fd18a](https://github.com/adcontextprotocol/adcp-client-python/commit/a9fd18aa8aba806204a054c315797ea8da1beb9e)) +* **readme:** note AAO IPR Policy requirement for contributors ([43d77f9](https://github.com/adcontextprotocol/adcp-client-python/commit/43d77f9d4e1fc35bd6579f985f7907fbb430ed25)) +* **readme:** note AAO IPR Policy requirement for contributors ([ba03ecb](https://github.com/adcontextprotocol/adcp-client-python/commit/ba03ecbf3e6c3132003a6646af9ad623779c5e92)) +* response-extension import path guidance for context-specific schema variants ([#644](https://github.com/adcontextprotocol/adcp-client-python/issues/644)) ([61fb835](https://github.com/adcontextprotocol/adcp-client-python/commit/61fb835fb7c141ddec95b6e890eb804024b21edb)) +* **retail:** fix invalid capability enum and storyboard invocation ([249acb1](https://github.com/adcontextprotocol/adcp-client-python/commit/249acb1b5c2a4f926e786bf4a5dda70b8b9dd2e8)) +* **seller,retail:** teach proposal refine schema and webhook emission ([9723eef](https://github.com/adcontextprotocol/adcp-client-python/commit/9723eefe687571a5de1bd2da2472b9c293edf612)) +* **seller:** correct invalid schema claims and serve() signature ([f3a77c6](https://github.com/adcontextprotocol/adcp-client-python/commit/f3a77c65d0b7efa2ae36c3a9f561be0d074e62fe)) +* **seller:** replace false compliance_testing auto-wire with explicit kwarg ([8d74805](https://github.com/adcontextprotocol/adcp-client-python/commit/8d74805c1acf9868a13d1edfce03ab46970dcde7)) +* **signals,generative:** correct idempotency.wrap decorator usage ([3ba41e6](https://github.com/adcontextprotocol/adcp-client-python/commit/3ba41e61d7f5c18b5ac5a489d8c29e4897eabe0d)) +* **signals,seller:** round-2 validator findings ([2b941d0](https://github.com/adcontextprotocol/adcp-client-python/commit/2b941d0c49dbfb4ccd85f9e93836b1832ceb14c2)) +* **signals:** tighten signal_ids filter, idempotency, validation command ([e0fb6d6](https://github.com/adcontextprotocol/adcp-client-python/commit/e0fb6d650adf4db90ad3d86716b08606b59c6103)) +* **skills,examples:** align webhook + proposal examples with real SDK and schema ([a9e2a63](https://github.com/adcontextprotocol/adcp-client-python/commit/a9e2a63f8d8df6bd61a0e35124097017148e22c6)) +* **skills:** round-8 DX polish — scope seller, self-contain signals ([3686e38](https://github.com/adcontextprotocol/adcp-client-python/commit/3686e38e5adbe8921dfca8cc14b8862ada9a1eb5)) +* **skills:** round-8 DX polish — scope seller, self-contain signals ([8b5075c](https://github.com/adcontextprotocol/adcp-client-python/commit/8b5075c68d37fe5771ee758752e8db835edff4c8)) +* **types:** document Field(exclude=True) and [@model](https://github.com/model)_serializer for nested wire isolation ([#630](https://github.com/adcontextprotocol/adcp-client-python/issues/630)) ([4912af9](https://github.com/adcontextprotocol/adcp-client-python/commit/4912af9f3f3fb65588281e5bb96885cf3d955fd9)) +* **types:** refresh import-architecture references (closes [#807](https://github.com/adcontextprotocol/adcp-client-python/issues/807)) ([#828](https://github.com/adcontextprotocol/adcp-client-python/issues/828)) ([169bc80](https://github.com/adcontextprotocol/adcp-client-python/commit/169bc80d435c5f441960a0fc03687b6a126abd2d)) + + +### Styles + +* **webhooks:** fix E501 line-too-long in sign_legacy_webhook docstring example ([ba0cb05](https://github.com/adcontextprotocol/adcp-client-python/commit/ba0cb0550384a54e9298f951485cdf12a6cb4a6b)) + + +### Miscellaneous Chores + +* **a2a:** document EventQueueLegacy as the only typeable option ([#699](https://github.com/adcontextprotocol/adcp-client-python/issues/699)) ([#734](https://github.com/adcontextprotocol/adcp-client-python/issues/734)) ([09ba5e2](https://github.com/adcontextprotocol/adcp-client-python/commit/09ba5e254f830eeb033fcb3cd553f24f342e69ae)) +* **build:** exclude generated files from black auto-format ([97af2a3](https://github.com/adcontextprotocol/adcp-client-python/commit/97af2a3a01eca81301e5b9ee1a1e8d5182e9d36c)) +* **canonical-formats:** polish bundle — rename, typed Divergence, fixtures module, group helper, version fwd-compat ([#849](https://github.com/adcontextprotocol/adcp-client-python/issues/849)) ([1001849](https://github.com/adcontextprotocol/adcp-client-python/commit/100184990090f14e59f7d474c4af315fd86b9276)) +* **ci:** remove vestigial release.yml workflow ([#608](https://github.com/adcontextprotocol/adcp-client-python/issues/608)) ([7a712ae](https://github.com/adcontextprotocol/adcp-client-python/commit/7a712aef415de6dee1a31d72f788c67148a4155d)) +* configure release-please for 6.0.0-beta line (closes [#802](https://github.com/adcontextprotocol/adcp-client-python/issues/802)) ([#804](https://github.com/adcontextprotocol/adcp-client-python/issues/804)) ([fc5ee16](https://github.com/adcontextprotocol/adcp-client-python/commit/fc5ee16b5c01ce649d6d5b5b044d706e032f5432)) +* **decisioning:** AuthInfo flat-field synthesis emits DeprecationWarning ([#358](https://github.com/adcontextprotocol/adcp-client-python/issues/358)) ([#363](https://github.com/adcontextprotocol/adcp-client-python/issues/363)) ([dc37318](https://github.com/adcontextprotocol/adcp-client-python/commit/dc373189256e100efafc25944b8dbb7127a26d61)) +* **deps:** cap a2a-sdk at <1.0 (breaking rewrite in 1.0.0) ([c5b84a0](https://github.com/adcontextprotocol/adcp-client-python/commit/c5b84a02dbfebf57db5a633beee56c4826aa214a)) +* **dx:** pre-4.0 skill + SDK DX sweep ([339548b](https://github.com/adcontextprotocol/adcp-client-python/commit/339548b619a31dac891211c5cd1f4feacb8a23a3)) +* **dx:** skill-build harness for 4.1 iteration ([bfa4eb2](https://github.com/adcontextprotocol/adcp-client-python/commit/bfa4eb24b123084b0baab01f94c3c0b5fdf2a3dc)) +* **main:** release 4.0.0 ([2ffe024](https://github.com/adcontextprotocol/adcp-client-python/commit/2ffe0247eaca867577e4992310f565306ebb3385)) +* **main:** release 4.0.0 ([8fe8821](https://github.com/adcontextprotocol/adcp-client-python/commit/8fe88218f119509d2dcd30124b93c6922c8497b7)) +* **main:** release 4.1.0 ([#257](https://github.com/adcontextprotocol/adcp-client-python/issues/257)) ([2b36d67](https://github.com/adcontextprotocol/adcp-client-python/commit/2b36d67189d4df01fc7ebcaa327e714032c1d774)) +* **main:** release 4.2.0 ([#311](https://github.com/adcontextprotocol/adcp-client-python/issues/311)) ([e37930a](https://github.com/adcontextprotocol/adcp-client-python/commit/e37930a1740d42eea6325c3c1fb0d32f9e1dabb4)) +* **main:** release 4.3.0 ([#325](https://github.com/adcontextprotocol/adcp-client-python/issues/325)) ([74b413d](https://github.com/adcontextprotocol/adcp-client-python/commit/74b413db6be3dca648f4d911de88fc8dcdc259b2)) +* **main:** release 4.4.0 ([#328](https://github.com/adcontextprotocol/adcp-client-python/issues/328)) ([18b37e8](https://github.com/adcontextprotocol/adcp-client-python/commit/18b37e8439d1a18d77c5a8ca44f22d6b5e566e2e)) +* **main:** release 4.4.1 ([#587](https://github.com/adcontextprotocol/adcp-client-python/issues/587)) ([aa59259](https://github.com/adcontextprotocol/adcp-client-python/commit/aa59259ec59aaa3ee3296c7d3024e07c68e41cfb)) +* **main:** release 4.4.2 ([#589](https://github.com/adcontextprotocol/adcp-client-python/issues/589)) ([4a6b8f5](https://github.com/adcontextprotocol/adcp-client-python/commit/4a6b8f5a16d309770666eb4b3bdd45d7763dcd01)) +* **main:** release 4.4.3 ([#593](https://github.com/adcontextprotocol/adcp-client-python/issues/593)) ([8dc4670](https://github.com/adcontextprotocol/adcp-client-python/commit/8dc4670f6cfcb938be67f465027d4a3c222cc4c4)) +* **main:** release 4.5.0 ([#594](https://github.com/adcontextprotocol/adcp-client-python/issues/594)) ([2cd6496](https://github.com/adcontextprotocol/adcp-client-python/commit/2cd6496c277f9a2b4891b7fea82c6cb43107f766)) +* **main:** release 4.6.0 ([#604](https://github.com/adcontextprotocol/adcp-client-python/issues/604)) ([7125bce](https://github.com/adcontextprotocol/adcp-client-python/commit/7125bce2c0588e760772f6e4c8924600da595de8)) +* **main:** release 4.6.1 ([#611](https://github.com/adcontextprotocol/adcp-client-python/issues/611)) ([fca954e](https://github.com/adcontextprotocol/adcp-client-python/commit/fca954ec80590e88b53a2accf95bd820bed5b5af)) +* **main:** release 5.0.0 ([#620](https://github.com/adcontextprotocol/adcp-client-python/issues/620)) ([b279d1a](https://github.com/adcontextprotocol/adcp-client-python/commit/b279d1ac3982822edf3fd3a5bf70c2e61eb93a4a)) +* **main:** release 5.1.0 ([#654](https://github.com/adcontextprotocol/adcp-client-python/issues/654)) ([140cbd1](https://github.com/adcontextprotocol/adcp-client-python/commit/140cbd133ecf4b76a5d3afab78835f51109ca22d)) +* **main:** release 5.2.0 ([#663](https://github.com/adcontextprotocol/adcp-client-python/issues/663)) ([abac33b](https://github.com/adcontextprotocol/adcp-client-python/commit/abac33be8a0fb6e312ecdb4087f860eee368455f)) +* **main:** release 5.3.0 ([#682](https://github.com/adcontextprotocol/adcp-client-python/issues/682)) ([116cddb](https://github.com/adcontextprotocol/adcp-client-python/commit/116cddb81c4c2aff730b96de168f4ca252f5caa0)) +* **main:** release 5.4.0 ([#716](https://github.com/adcontextprotocol/adcp-client-python/issues/716)) ([eb9945a](https://github.com/adcontextprotocol/adcp-client-python/commit/eb9945a2cd79ae1cb54fdd30be9e4a462076fda9)) +* **main:** release 5.5.0 ([#726](https://github.com/adcontextprotocol/adcp-client-python/issues/726)) ([49c4b5a](https://github.com/adcontextprotocol/adcp-client-python/commit/49c4b5ab5d8a9b5165b1d5cdfd4a6e6d3d8e78d7)) +* **main:** release 5.6.0 ([#740](https://github.com/adcontextprotocol/adcp-client-python/issues/740)) ([ee62e59](https://github.com/adcontextprotocol/adcp-client-python/commit/ee62e595d0a8d17fec8498cbf0c1172b35660ec8)) +* **main:** release 5.7.0 ([#751](https://github.com/adcontextprotocol/adcp-client-python/issues/751)) ([aa6c203](https://github.com/adcontextprotocol/adcp-client-python/commit/aa6c20380f5b75546bd4f1a132dbfde0e43ba10f)) +* **main:** release 6.0.0-beta.1 ([#817](https://github.com/adcontextprotocol/adcp-client-python/issues/817)) ([e00290c](https://github.com/adcontextprotocol/adcp-client-python/commit/e00290c8823ec45eb0a6d845568e0fb62bdfea3e)) +* **main:** release 6.1.0-beta.1 ([19fde5e](https://github.com/adcontextprotocol/adcp-client-python/commit/19fde5ea502a9faac3389f47a2e936d96d2ecbe4)) +* **main:** release 6.1.0-beta.2 ([92b1618](https://github.com/adcontextprotocol/adcp-client-python/commit/92b1618c3bebfef481f3deef423cbe29d8820de3)) +* **main:** release 6.1.1-beta.2 ([#853](https://github.com/adcontextprotocol/adcp-client-python/issues/853)) ([e21559c](https://github.com/adcontextprotocol/adcp-client-python/commit/e21559c5395edf2e4ba96fe135e6152dc8cb8d2c)) +* **main:** release 6.2.0-beta.3 ([#856](https://github.com/adcontextprotocol/adcp-client-python/issues/856)) ([7b97ffe](https://github.com/adcontextprotocol/adcp-client-python/commit/7b97ffebadad87561d46bbd6b63301ed6c032b42)) +* **main:** release 6.2.0-beta.4 ([f8bc196](https://github.com/adcontextprotocol/adcp-client-python/commit/f8bc196957b25d948d08e8e9c2ce39d28baea89d)) +* **main:** release 6.3.0-beta.4 ([#870](https://github.com/adcontextprotocol/adcp-client-python/issues/870)) ([a872f46](https://github.com/adcontextprotocol/adcp-client-python/commit/a872f4636f30373393f2569f3586686cd7f599ca)) +* mark 4.0 breaking change for release-please ([8d0c430](https://github.com/adcontextprotocol/adcp-client-python/commit/8d0c4302a4cd35beb070827082305c729bc0dd78)) +* **release:** pre-stage spec-version pinning for major releases ([624ac73](https://github.com/adcontextprotocol/adcp-client-python/commit/624ac7363bdeb405749af4ad9a1b66e4d096a101)) +* **release:** pre-stage spec-version pinning for major releases ([6955f91](https://github.com/adcontextprotocol/adcp-client-python/commit/6955f91aeedfd9c860195751661c211d7343a7d6)) +* route triage to implementation briefs ([#850](https://github.com/adcontextprotocol/adcp-client-python/issues/850)) ([120f9fd](https://github.com/adcontextprotocol/adcp-client-python/commit/120f9fdf8838919232bc1b368eb264a131b81540)) +* **schemas:** bump ADCP_VERSION 3.0.7 → 3.0.12 (closes [#771](https://github.com/adcontextprotocol/adcp-client-python/issues/771)) ([#791](https://github.com/adcontextprotocol/adcp-client-python/issues/791)) ([fe09c02](https://github.com/adcontextprotocol/adcp-client-python/commit/fe09c02d30b14d7407de887385389e0efdc4640d)) +* **schemas:** resync 3.1.0-beta.3 cache + fix broken manifest patch ([#821](https://github.com/adcontextprotocol/adcp-client-python/issues/821)) ([52a9045](https://github.com/adcontextprotocol/adcp-client-python/commit/52a904500d4738c85eb2721c2c835b6e61a0066e)) +* **schemas:** sync to AdCP 3.0.4 + AUTH_REQUIRED recovery alignment ([#367](https://github.com/adcontextprotocol/adcp-client-python/issues/367)) ([040ab50](https://github.com/adcontextprotocol/adcp-client-python/commit/040ab50284f936ed815b7720266c23b8d391ecea)) +* **schemas:** sync to AdCP 3.0.5 — identity.additionalProperties: true ([#374](https://github.com/adcontextprotocol/adcp-client-python/issues/374)) ([008fa3c](https://github.com/adcontextprotocol/adcp-client-python/commit/008fa3c856644990e3109527461a63ed3d6062b5)) +* **schemas:** sync to AdCP 3.0.7 + strict drift gate ([#599](https://github.com/adcontextprotocol/adcp-client-python/issues/599)) ([0822abb](https://github.com/adcontextprotocol/adcp-client-python/commit/0822abb20650e96a82459107b0cfb9e258d874f7)) +* silent triage on already-final-state comments ([#438](https://github.com/adcontextprotocol/adcp-client-python/issues/438)) ([2aa63f1](https://github.com/adcontextprotocol/adcp-client-python/commit/2aa63f18af9c82419bdf7e2117bc63a6b379328b)) +* **sync-schemas:** allow cosign verify against refs/tags/* for forward-compat ([#343](https://github.com/adcontextprotocol/adcp-client-python/issues/343)) ([4bd34e9](https://github.com/adcontextprotocol/adcp-client-python/commit/4bd34e929086bf5764292a3437a6b2b33ee18d4a)) +* **triage:** add no-triage label gate + CLAUDE.md coordination rules ([#572](https://github.com/adcontextprotocol/adcp-client-python/issues/572)) ([e522078](https://github.com/adcontextprotocol/adcp-client-python/commit/e522078e06692475c926a9b7e521963ee9f859aa)) +* **types,mcp:** remove duplicate __all__ entries and string-concat artifact ([0a7dd89](https://github.com/adcontextprotocol/adcp-client-python/commit/0a7dd89ce994562f9fa00f446da88d53f50db91d)) +* **types:** pin AdCP spec to 3.0.0 and regenerate ([3d6f235](https://github.com/adcontextprotocol/adcp-client-python/commit/3d6f235cbffc1b9c3d889c6707a01108311df35c)) +* **types:** pin AdCP spec to 3.0.0 and regenerate ([e46ca5e](https://github.com/adcontextprotocol/adcp-client-python/commit/e46ca5e77a96a498d50c8cd176e7d4f7e3809ed2)) +* **types:** pin AdCP spec to 3.0.1 and regenerate ([#292](https://github.com/adcontextprotocol/adcp-client-python/issues/292)) ([2cfa1c6](https://github.com/adcontextprotocol/adcp-client-python/commit/2cfa1c6adad50c84e2f0b19e15b035d5e55851e6)) +* **types:** regenerate schemas from upstream spec ([a8a0f06](https://github.com/adcontextprotocol/adcp-client-python/commit/a8a0f06bb6c0366ae12fa0ab273a1c0fb37e70fa)) +* **types:** regenerate schemas from upstream spec ([7758e3b](https://github.com/adcontextprotocol/adcp-client-python/commit/7758e3be8221719b77214577473c203eb6bab7a1)) + + +### Code Refactoring + +* **compat:** normalize + cap brand_manifest warning dedup ([#691](https://github.com/adcontextprotocol/adcp-client-python/issues/691)) ([75ef329](https://github.com/adcontextprotocol/adcp-client-python/commit/75ef329f7e1ea932c56a56d0566decf41b898923)) +* **examples:** v3 reference seller adopts upstream_for + mock-mode (Phase 3) ([#488](https://github.com/adcontextprotocol/adcp-client-python/issues/488)) ([59c177d](https://github.com/adcontextprotocol/adcp-client-python/commit/59c177d8f389b74670bc0b778a6a9ba5a4c0bfa0)) +* **schemas:** per-bundle-key schema cache layout (stage 1 of versioned validation) ([#658](https://github.com/adcontextprotocol/adcp-client-python/issues/658)) ([5aee245](https://github.com/adcontextprotocol/adcp-client-python/commit/5aee245a22a6659a2925ec8e1f04a2415c54fb3d)) + + +### Tests + +* **a2a:** assert TaskResult content for rejected and auth-required states ([#270](https://github.com/adcontextprotocol/adcp-client-python/issues/270)) ([7be949c](https://github.com/adcontextprotocol/adcp-client-python/commit/7be949c6fd83388c1492ed883e18d2be6c3f9395)) +* **a2a:** pin comply_test_controller result.artifacts wire contract ([81031da](https://github.com/adcontextprotocol/adcp-client-python/commit/81031dad8a83ffb6ac70dbd88e959f0bab346ede)) +* **adcp:** docstring/env-var consistency test ([#440](https://github.com/adcontextprotocol/adcp-client-python/issues/440)) ([d897b62](https://github.com/adcontextprotocol/adcp-client-python/commit/d897b629379a49994a2a0ce6ed4dfd8c2eae9dac)) +* **compat:** autouse fixture + cross-adapter dedup test for brand_manifest warning ([#690](https://github.com/adcontextprotocol/adcp-client-python/issues/690)) ([3a68c3f](https://github.com/adcontextprotocol/adcp-client-python/commit/3a68c3fd5345e9178e138127e61bc1234bef9d7f)), closes [#689](https://github.com/adcontextprotocol/adcp-client-python/issues/689) +* **error-narrowing:** rescope e2e CreativeManifest test ([#369](https://github.com/adcontextprotocol/adcp-client-python/issues/369)) ([c0b8afc](https://github.com/adcontextprotocol/adcp-client-python/commit/c0b8afcbe9bf6c25a0c907541c0e01a392402e83)) +* **examples:** regression test for seller_agent PRODUCTS schema compliance ([#324](https://github.com/adcontextprotocol/adcp-client-python/issues/324)) ([#327](https://github.com/adcontextprotocol/adcp-client-python/issues/327)) ([d3e1a0f](https://github.com/adcontextprotocol/adcp-client-python/commit/d3e1a0f450aca9cf11e838453053cf40d29cf6a7)) +* **mcp:** drift guard for Pydantic-generated inputSchemas ([a16532c](https://github.com/adcontextprotocol/adcp-client-python/commit/a16532cba3a784a3fd0d9dc16c319feaa663807d)) +* **server:** pin bearer → registry resolve chain under stateful streamable-http ([#703](https://github.com/adcontextprotocol/adcp-client-python/issues/703)) ([#736](https://github.com/adcontextprotocol/adcp-client-python/issues/736)) ([3071b18](https://github.com/adcontextprotocol/adcp-client-python/commit/3071b18d54658d91fe29789f663558318ec3ab1a)) +* **server:** regression test for context-echo on dispatcher-wrapped non-AdcpError ([#568](https://github.com/adcontextprotocol/adcp-client-python/issues/568)) ([83ed3ca](https://github.com/adcontextprotocol/adcp-client-python/commit/83ed3cadb6eda9593736b6b7ebe61a3eaa13fa95)) +* **server:** rewrite spec_compat tests against public API ([#657](https://github.com/adcontextprotocol/adcp-client-python/issues/657)) ([fcfee67](https://github.com/adcontextprotocol/adcp-client-python/commit/fcfee672dd79e2c37de78ab8157e267231ca652f)) +* **spec-conformance:** AdcpError codes against canonical error-code enum ([#429](https://github.com/adcontextprotocol/adcp-client-python/issues/429)) ([36c07f4](https://github.com/adcontextprotocol/adcp-client-python/commit/36c07f4e07e3ce929a190efea75b64ed470eb9a0)) +* **validation:** strict response default; fix existing stubs to be spec-compliant ([efc885c](https://github.com/adcontextprotocol/adcp-client-python/commit/efc885c885786f30706e2f94b7481774f7108049)) +* **webhooks:** vendor upstream conformance vectors from adcp[#2478](https://github.com/adcontextprotocol/adcp-client-python/issues/2478) ([d29d57d](https://github.com/adcontextprotocol/adcp-client-python/commit/d29d57d42832250acdb058c9a7732b1f927d24a4)) + + +### Continuous Integration + +* **adcp-sdk:** pin @adcp/sdk to 7.9.0 (last known-green), salt cache key (closes [#779](https://github.com/adcontextprotocol/adcp-client-python/issues/779) Track B) ([#784](https://github.com/adcontextprotocol/adcp-client-python/issues/784)) ([e389db1](https://github.com/adcontextprotocol/adcp-client-python/commit/e389db11ea52d1b7befd3936cb0a136eb84989e8)) +* **adcp:** add storyboard CI job for seller_agent.py compliance checks ([#309](https://github.com/adcontextprotocol/adcp-client-python/issues/309)) ([f02ea79](https://github.com/adcontextprotocol/adcp-client-python/commit/f02ea79e2be020197756ef39cc35099c3808c27c)) +* **ai-review:** port Argus PR reviewer from adcp main ([#762](https://github.com/adcontextprotocol/adcp-client-python/issues/762)) ([dccae2e](https://github.com/adcontextprotocol/adcp-client-python/commit/dccae2ebda13fbfa56527415318da3643563f61e)) +* bump GitHub Actions to Node 24 ([#800](https://github.com/adcontextprotocol/adcp-client-python/issues/800)) ([769978c](https://github.com/adcontextprotocol/adcp-client-python/commit/769978cc2dfa497da165a84e65b68ebcc563721b)) +* extract reference seller storyboard harness ([#818](https://github.com/adcontextprotocol/adcp-client-python/issues/818)) ([9b13320](https://github.com/adcontextprotocol/adcp-client-python/commit/9b13320a9b3b81420a85ee0c9ab5ede0d29ac70d)) +* install cosign for Sigstore verification on stable spec tags ([a3e59e7](https://github.com/adcontextprotocol/adcp-client-python/commit/a3e59e7b4271a44f556485c9fec035d3474360b9)) +* **ipr:** switch to adcp's reusable callable workflow + GitHub App ([ced64e7](https://github.com/adcontextprotocol/adcp-client-python/commit/ced64e7e17c80b2aa7aa5932f33cc7adcd20cdf8)) +* **ipr:** use adcp's reusable callable workflow + GitHub App ([74d7c23](https://github.com/adcontextprotocol/adcp-client-python/commit/74d7c23dd52b1f8f2b12fa69f7ca882ddf454470)) +* keep beta release-please versions valid ([31d8f43](https://github.com/adcontextprotocol/adcp-client-python/commit/31d8f4389aa0f083403729cc52d3da0f6324416e)) +* promote v3 reference seller storyboard to required (@adcp/sdk@6.7) ([#451](https://github.com/adcontextprotocol/adcp-client-python/issues/451)) ([0af6098](https://github.com/adcontextprotocol/adcp-client-python/commit/0af609899719d3e78925eee35f5766b0d1258e4d)) +* relax schemas-up-to-date drift check to tolerate numbered-variant renumbering ([1a1f202](https://github.com/adcontextprotocol/adcp-client-python/commit/1a1f202b02530a9160b8738239ddfb839a28ab30)) +* replace third-party Pages deploy action ([#803](https://github.com/adcontextprotocol/adcp-client-python/issues/803)) ([7cd1320](https://github.com/adcontextprotocol/adcp-client-python/commit/7cd13209f2995a76e5c978f114bbe37d7d8d9c52)) +* run Argus review from trusted PR target ([#865](https://github.com/adcontextprotocol/adcp-client-python/issues/865)) ([a4b4ba3](https://github.com/adcontextprotocol/adcp-client-python/commit/a4b4ba34518d5ca8701f301cd052b2dc3b4ade97)) +* skip generated internals in API docs ([#810](https://github.com/adcontextprotocol/adcp-client-python/issues/810)) ([99d95f5](https://github.com/adcontextprotocol/adcp-client-python/commit/99d95f5c1a9a5209aadc4930f2299181a53a129a)) +* skip mypy plugin in API docs ([#812](https://github.com/adcontextprotocol/adcp-client-python/issues/812)) ([7e7806b](https://github.com/adcontextprotocol/adcp-client-python/commit/7e7806b8fcad8e3b9d0f642b72387eb81c1fe6a7)) +* tolerate generated docs import errors ([#805](https://github.com/adcontextprotocol/adcp-client-python/issues/805)) ([e150f86](https://github.com/adcontextprotocol/adcp-client-python/commit/e150f860d178332b6fe20eb6664543a31b6752cf)) +* **triage:** fire on PR comments + send is_pr/pr context to routine ([#286](https://github.com/adcontextprotocol/adcp-client-python/issues/286)) ([9e23afd](https://github.com/adcontextprotocol/adcp-client-python/commit/9e23afd2a8d8efca85a6f9e1dd84bdea961d7fd7)) +* use release-please manifest prerelease config ([#877](https://github.com/adcontextprotocol/adcp-client-python/issues/877)) ([8f93226](https://github.com/adcontextprotocol/adcp-client-python/commit/8f93226a02d799c12805c9a0215eff1f9d084caf)) + ## [6.3.0-beta.4](https://github.com/adcontextprotocol/adcp-client-python/compare/v6.2.0-beta.4...v6.3.0-beta.4) (2026-05-26) diff --git a/pyproject.toml b/pyproject.toml index bb258c79..abdd9af4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" [project] name = "adcp" -version = "6.3.0b4" +version = "6.0.0-beta.1" description = "Official Python client for the Ad Context Protocol (AdCP)" authors = [ {name = "AdCP Community", email = "maintainers@adcontextprotocol.org"}