4.3.0 (2026-04-30)
- server: public register_handler_tools seam + advertised_tools class attr (#318) (d96822a)
- signing: SigningProvider Protocol for KMS-backed signing (#283) (#323) (4de648e)
- examples: close last 5 storyboard fixture-dependent failures (#319) (#322) (d92cfb1)
- examples: seed_product complete defaults + format_ids agent_url normalization (#319) (#321) (046b15e)
4.2.0 (2026-04-30)
- examples: DemoStore overrides for force_create_media_buy_arm, force_task_completion, and seed_* scenarios (#313) (e2a2707)
- sdk: per-instance adcp_version pin + wire emission (Stage 2 + 3a) (#294) (4aa7a6d)
- server: add force_create_media_buy_arm + force_task_completion controller scenarios (#282) (9818250)
- test-controller: add seed_creative_format scenario; advertise force_session_status in capabilities (#315) (ce7e9ab)
- examples: seller_agent.py AdCP 3.0.1 storyboard compliance (items 1-6 of #304) (#310) (04966d7)
- server: comply_test_controller returns dict to fix controller_detected: false (#317) (9244d46)
- server: fix streamable-http ASGI error, host binding, and AdCP 3.0.1 scenario gaps (#296) (6be0232)
4.1.0 (2026-04-30)
- migration:
FormatId.__name__and__qualname__change from"FormatId"to"FormatReferenceStructuredObject"because AdCP 3.0.1 polished the schema title oncore/format-id.json. The publicadcp.FormatIdalias keeps working —Format(format_id= FormatId(...))andisinstance(x, FormatId)are unchanged. Two niche cases break: pickledFormatIdinstances 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_idis nowADCPClient.active_task_id(same forA2AAdapter). The constructor'scontext_id=kwarg andreset_context()now raiseTypeError(wasValueError) on non-A2A protocols — the string value is fine, the operation doesn't apply to MCP.
- a2a: checkpoint/from_checkpoint API, harden context-id retention (a17ffb3)
- a2a: expose peer protocol versions, add force_a2a_version pin (3898c53)
- a2a: migrate to a2a-sdk 1.0 with 0.3 wire-compat shim (c07db7d)
- a2a: migrate to a2a-sdk 1.0 with 0.3 wire-compat shim (Release-As: 4.1.0) (28a4a13)
- adcp: support ADCP_BASE_URL env override in sync_schemas.py (#285) (a2bc977)
- adcp: sync canonical agent skills from protocol tarball (#275) (5312f05)
- agents: /claude-triage comment nudge (5af8b47)
- agents: /claude-triage comment nudge (d3b8b28)
- agents: add Claude Code routines scaffolding (aa23ef3)
- agents: add Claude Code routines scaffolding (d312abf)
- agents: add silent-triage path to triage prompt (6abb495)
- agents: commit .claude/agents/ experts for cloud routine access (55144f2)
- agents: migrate manual triage nudge to /triage slash-command-dispatch (#267) (6bd434d)
- agents: security + product review fixes for triage routine (cbafef5)
- agents: switch triage nudge prefix to @claude-triage (#265) (77bfce2)
- agents: triage bundles ready items, never splits issues (#266) (2227a6b)
- agents: triage default — execute when outcome is clear (e3f8a6c)
- agents: triage defer subtypes + partial-rollout linkage rule (#273) (c97aa95)
- agents: triage fires on comments + claude-triaging lifecycle label (#277) (604d795)
- agents: triage PR ergonomics — refs adcp#3121 (#279) (31606eb)
- agents: triage prompt handles RFC/epic/scope bucket/milestone (cac3525)
- agents: triage runs pre-PR build+test gate before expert review (#271) (8fcc5ee)
- agents: triage runs pre-PR expert review on diff before opening PR (#269) (46dd708)
- agents: triage v2 — expert consultation + race + coverage (bf6e18b)
- client: ADCPClient.from_mcp_client() factory for in-process MCP transport (#293) (d83aa53)
- signing: close 4 SSRF gaps and add opt-in port hardening (foundation audit) (84b837e)
- signing: default replay store, signed-fetch preset, migration guide (#272) (52019b8)
- signing: drain three foundation-audit deferreds (#298, #299, #300) (072998a)
- validation: schema-driven validation with client hooks and opt-in server middleware (5cbac87)
- validation: schema-driven validation with client hooks and opt-in server middleware (a38ff57)
- a2a: address expert-review feedback on 1.0 migration (7e54b97)
- adcp: skip eager httpx.AsyncClient alloc in WebhookSender.aenter on owned-client path (#301) (4bd45d1), closes #300
- agents: already-engaged check + tighten label creation (02baa89)
- agents: triage already-engaged + ship-more (missed in #259) (ca42d29)
- agents: webhook-miss sweep grace period (no double-fire) (#280) (3a5f1c2)
- deps: add types-protobuf to pip dev extras (801ac16)
- handlers: sync MEDIA_BUY_STATE_MACHINE with spec v3 enum (#289) (54fd18b)
- signing: validate-before-sign symmetry in deliver() + HMAC SSRF coverage + 4.1 migration notes (bc8da3a)
- triage: drop apostrophe from MODE text (port of adcp#3325) (#287) (2efa423)
- validation: address code + security review feedback (5bf9434)
- migration: add v4.0 → v4.1 migration guide (#302) (01a1068)
- readme: note AAO IPR Policy requirement for contributors (43d77f9)
- readme: note AAO IPR Policy requirement for contributors (ba03ecb)
4.0.0 (2026-04-22)
- 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.
Budget.authority_levelis removed. Migrate toreallocation_threshold/reallocation_unlimitedonplan.budget, and setplan.human_review_requiredfor decisions affecting data subjects. See the rc.4 migration section in README.md.
- A2A server support in serve() (d0c3015)
- A2A server support in serve() (4e5db4f), closes #175
- a2a: auto-retain contextId + taskId across multi-turn calls (0564635)
- a2a: auto-retain contextId + taskId across multi-turn calls (8a084ec)
- ADCP 3.0 server DX helpers, type guards, and schema sync (de4a079)
- ADCP 3.0 server DX helpers, type guards, and schema sync to latest (bf0d81d)
- AdCP RFC 9421 request-signing profile (ba53961)
- add collection_list and sync_governance task methods (2dbeac1)
- address PR review — real-world transforms and SDK error types (cfaa9c5)
- AssetsNN aliases, format_category shim, MCP adoption hooks — unblock salesagent (ed7d30a)
- auto-inject context passthrough in create_tool_caller (4d4fe5e)
- bump to 4.0.0b1 with test fixtures updated for new schema shape (dcd6709)
- bundle-based schema sync + Sigstore verify + 4.0.0b1 on latest (755071a)
- error translation helper for multi-transport servers (7825ed6)
- error translation helper for multi-transport servers (#176) (88126d1)
- examples: add seller_agent.py reference impl (40341c9)
- idempotency_key auto-injection, typed errors, and capability gate (af9dd2d)
- idempotency_key auto-injection, typed errors, and capability gate (12cc983)
- implement AdCP RFC 9421 request-signing profile (fc995e9)
- MCP response + error extraction per AdCP spec (d991b1e)
- MCP response + error extraction per AdCP spec (896beb8)
- mcp: auto-generate sync_governance inputSchema from Pydantic (ac1edb3)
- mcp: inline $defs in generated inputSchema (closes #208) (8eaeb4d)
- mcp: inline $defs in generated inputSchema (closes #208) (ffa58e5)
- migrate+types: v3->v4 codemod, strict-validation flag, version helpers, subclass test (0f50d39)
- migrate+types: v3->v4 codemod, strict-validation flag, version helpers, subclass test (32bfbeb)
- salesagent review feedback - typed error codes, state machine export, missing types (8ef8161)
- schemas: regen for AdCP 3.0 GA — custom pricing + experimental_features (4dfaffe)
- schemas: regen for AdCP 3.0 GA — custom pricing + experimental_features (db913ba), closes #204
- sdk: 4.0 beta cleanup — version wiring, brand_manifest drop, migration guide (ebaab12)
- server+migrate: round-1 feedback followups (dbbc390)
- server+migrate: round-1 feedback followups (0fe9cb5)
- server: AccountAwareToolContext + multi-tenant contract doc (69fd3da)
- server: AccountAwareToolContext + multi-tenant contract doc (3747939)
- server: context_factory, tenant_id, DISCOVERY_TOOLS — unblock MCP adoption (2203c1d)
- server: DISCOVERY_METHODS + document tools/list pre-auth posture (closes #222) (a26c948)
- server: DISCOVERY_METHODS + lock tools/list pre-auth posture (closes #222) (ba2de29)
- server: gate tools/list on method overrides (#220) (816d22c)
- server: gate tools/list on method overrides (closes #220) (fc1a788)
- server: idempotency middleware per AdCP #2315 spec (101713c)
- server: idempotency middleware per AdCP #2315 spec (f708ed2)
- server: middleware parity, auth, A2A parser hook, startup log (549d190)
- server: middleware parity, auth, A2A parser hook, startup log (c9d7bbc)
- server: per-skill middleware hook in ADCPAgentExecutor (#226) (4e95764)
- server: per-skill middleware hook in ADCPAgentExecutor (closes #226) (6f9bd26)
- server: pluggable PushNotificationConfigStore on A2A (#225) (ea21864)
- server: pluggable PushNotificationConfigStore on A2A (closes #225) (4f64c8d)
- server: pluggable TaskStore on A2A — unblock production A2A adoption (69ebccd)
- server: propagate caller_identity from transport into ToolContext (b4a4c93)
- server: propagate caller_identity from transport into ToolContext (1f3cf8f)
- server: request-body size cap middleware (closes #239) (21249a5)
- server: request-body size cap middleware (closes #239) (9ccf960)
- server: thread ToolContext through TestControllerStore (closes #227) (a4c6489)
- server: thread ToolContext through TestControllerStore (closes #227) (a0d89e3)
- server: typed handler params via Pydantic annotation (closes #214) (dcc2c87)
- server: typed handler params via Pydantic annotation (closes #214) (4e86e1a)
- server: TypeVar-bound ADCPHandler for typed ToolContext subclasses (#223) (d737527)
- server: TypeVar-bound ADCPHandler for typed ToolContext subclasses (closes #223) (e1eb923)
- server: wire idempotency errors to wire + capability helper + DX polish (5b8f353)
- signing: async revocation-list + JWKS fetchers (55a8fd4)
- signing: async revocation-list + JWKS fetchers (1c2e676)
- signing: auto-sign outgoing requests via ADCPClient signing kwarg (551aaf8)
- signing: auto-sign outgoing requests via ADCPClient signing kwarg (c07c946)
- signing: full-wire e2e + DX fixes from integrator walkthrough (a44896b)
- signing: generate_signing_keypair() programmatic API (closes #217) (dd2b961)
- signing: generate_signing_keypair() programmatic API (closes #217) (c6d5505)
- signing: IP-pinned httpx transport closes DNS-rebinding TOCTOU (9a7ee9c)
- signing: IP-pinned httpx transport closes DNS-rebinding TOCTOU (1fa0820)
- signing: keygen --encrypt flag and adcp-keygen entry point (01c0c5d)
- signing: live revocation-list fetcher with signed JWS verification (249b79d)
- signing: live revocation-list fetcher with signed JWS verification (fbe3e90)
- signing: module rename + keygen --encrypt + adcp-keygen entry point (7bce09a)
- signing: PostgreSQL-backed PgReplayStore for multi-instance verifiers (8118033)
- signing: PostgreSQL-backed PgReplayStore for multi-instance verifiers (3ad3951)
- strip bogus Literal['reuse'] subclasses from datamodel-codegen (3684227)
- switch ADCP_VERSION to latest, remap aliases for schema redesign (253be88)
- sync rc.4 schemas + wire update_rights task (67119bf)
- sync rc.4 schemas + wire update_rights task (6c0e0e9)
- sync schemas from protocol bundle with Sigstore verification (66b9fb1)
- ToolAnnotations and agent-facing descriptions for all 56 MCP tools (66729ee)
- types: AssetsNN semantic aliases + format_category shim + downstream smoke (f5c6b18)
- types: regenerate schemas + inject Literal-discriminator defaults (27468aa)
- types: regenerate schemas + inject Literal-discriminator defaults (a4bd6d8)
- types: rename <Type>Asset content types to <Type>Content (7d0679f)
- webhooks: adcp.webhooks.deliver() + A2A artifacts conformance (493f219)
- webhooks: adcp.webhooks.deliver() one-shot legacy-auth dispatcher (3bf663d)
- webhooks: add from_pem and sign_legacy_webhook helpers (19a8ab3)
- webhooks: RFC 9421 signing + idempotency_key + sender/receiver UX (63732c8)
- webhooks: RFC 9421 signing + required idempotency_key + sender/receiver UX (c640b8c)
- CI failures - noqa F401 on guard re-exports, dynamic model_rebuild (378ac50)
- CI failures and review findings (9089711)
- CI lint - sort imports in types/init.py, pin ADCP_VERSION (cfbdca1)
- CI lint (noqa F401 re-exports) and pin ADCP_VERSION to 3.0.0-rc.3 (5959e7b)
- example: derive port and AGENT_URL from ADCP_PORT env (1df2306)
- harness,server: surface partial/failing storyboards, reuse port on rerun, default list_creatives timestamps (3b27001)
- idempotency: honor new required Idempotency.supported field in strict gate (9ff08c9)
- make ergonomic codegen resilient to datamodel-codegen variant suffix shifts (138179b)
- migrate+types: PR #247 expert-review followups (ac505c0)
- mypy override errors in subclass handlers (d35bc63)
- mypy valid-type in generated code, subclass handler param types (eb4e027)
- noqa F401 on new re-exports (TRANSIENT_CODES, MEDIA_BUY_STATE_MACHINE, PaginationResponse) (b4059c5)
- resolve CI failures from latest-tracking regeneration (8b49e1a)
- sdk: remove stray noqa, correct capabilities_response docstring (05ac689)
- sdk: SDK cheap fixes for DX Stream B1 (e67e8ed)
- sdk: three cleanups from round-4 validator findings (d7e93f7)
- seller: declare compliance_testing block and add missing force_creative_status scenario (5de1c61)
- server: expert-review followups — tenant-scoped idempotency, A2A context_factory, ContextVar safety (5f053af)
- server: PR #230 expert-review followups — cross-tenant isolation + hardening (bb2bc67)
- server: PR #232 expert-review followups — scope_provider injection, loud anonymous fallback, SSRF/secret-storage docs (5d3eff8)
- server: PR #233 expert-review followups — security docs + retry/transform tests (afbbfac)
- server: PR #234 expert-review followups — TypeVar tests & docs (df5898c)
- server: PR #237 expert-review followups (a415786)
- server: PR #238 expert-review followups (a198656)
- server: PR #238 review round 2 — MCP field surfacing + custom-validator doc (4d4e2e7)
- server: PR #241 expert-review followups (ce189f8)
- server: PR #244 expert-review followups (6af9a7d)
- server: PR #245 code-review followups — fail loudly on silent-skip paths (a0a3077)
- server: Threat 3 merge-blocker on advertised-tools gate (11abb3b)
- signing: PR #206 reviewer fixes — IDN normalization, HTTPS_PROXY, fail-closed reuse (b432b03)
- signing: PR #243 expert-review followups (e616307)
- signing: round-2 review — harden identifier check, drop invalid SQL (4ea1d8f)
- signing: round-2 review — harden issuer/Last-Modified, slide next_update on 304 (8dbcbc5)
- sort TYPE_CHECKING imports in base.py and mcp_tools.py (I001) (71f7448)
- suppress E501 in mcp_tools.py (tool descriptions are long strings) (9eea1d9)
- webhooks,seller,signals: round-6 P1+P2 DX fixes (6e51519)
- webhooks: align deliver() with canonical compact-separator on-wire form (92240d5)
- webhooks: re-apply compact-separator signer after rebase onto 3.0 GA (166aa1b)
- webhooks: sign compact-separator JSON to match httpx wire format (1c2a527)
- webhooks: verifier fails closed when raw_body missing (adcp#2478) (9a906a9)
- creative: fix NameError in build_creative fallback (afe6afb)
- creative: remove anti-patterns from build-creative-agent skill (9e42039)
- design: FastMCP native registration investigation (#209) (d32694f)
- design: FastMCP native registration investigation (closes #209) (ba3cb73)
- fix DX gaps in skill docs from real-world agent builds (dc63f8b)
- generative-seller: fix invalid enums and document generative tools (99e9f2e)
- link upstream codegen bug in post_generate_fixes (ee6f52c)
- retail: fix invalid capability enum and storyboard invocation (249acb1)
- seller,retail: teach proposal refine schema and webhook emission (9723eef)
- seller: correct invalid schema claims and serve() signature (f3a77c6)
- seller: replace false compliance_testing auto-wire with explicit kwarg (8d74805)
- signals,generative: correct idempotency.wrap decorator usage (3ba41e6)
- signals,seller: round-2 validator findings (2b941d0)
- signals: tighten signal_ids filter, idempotency, validation command (e0fb6d6)
- skills,examples: align webhook + proposal examples with real SDK and schema (a9e2a63)
- skills: round-8 DX polish — scope seller, self-contain signals (3686e38)
- skills: round-8 DX polish — scope seller, self-contain signals (8b5075c)
- mark 4.0 breaking change for release-please (8d0c430)
First 4.0 beta. See MIGRATION_v3_to_v4.md for upgrade instructions and before/after examples.
- Removed types (no replacement stubs):
BrandManifest,FormatCategory,DeliverTo,PromotedProducts,PromotedOfferings,Pricing,PackageStatus. These were removed upstream from the AdCP spec. Inline any dict payloads, or use the spec-current replacements (BrandReferenceforBrandManifest;MediaBuyStatusfor the formerPackageStatus). ResolvedBrand.brand_manifestfield removed. UseResolvedBrand.brand. The cross-populate validator that mirroredbrand↔brand_manifestis gone.CreateMediaBuyRequest.brand_manifest→brand, matching the spec. The request now takes aBrandReference, not an inline brand manifest dict.- Numbered discriminated-union classes renumbered.
Assets5…Assets14from 3.x now correspond to higher-numbered variants (Assets57…Assets149depending on the response). Import via semantic aliases fromadcp.types(e.g.,CreateMediaBuySuccessResponse) instead of numbered classes. RawAssets*imports are unsupported — they are code-generation artifacts and will shift again. - Asset-content types renamed
<Type>Asset→<Type>Content(issue #221). The payload-describing types (AudioAsset,CssAsset,HtmlAsset,ImageAsset,JavascriptAsset,TextAsset,UrlAsset,VideoAsset,WebhookAsset) are renamed toAudioContent,CssContent,HtmlContent,ImageContent,JavascriptContent,TextContent,UrlContent,VideoContent,WebhookContent. This disambiguates payload types from the slot-describing<Type>FormatAssetfamily (VideoContentdescribes what a creative delivers;VideoFormatAssetis a slot inside a format definition). The old names are no longer exported fromadcp.types. SeeMIGRATION_v3_to_v4.mdfor a search-and-replace.
__version__is now sourced from installed distribution metadata (importlib.metadata.version("adcp")) so it always matchespyproject.toml.- Added top-level re-exports:
TargetingOverlay,AdvertiserIndustry,KellerType,BrandSource. Any generated type not on the top-level surface is available fromadcp.types—adcp.types.generated_poc.*is internal and not supported for direct import.
3.12.0 (2026-04-16)
- skill-based agent generation with storyboard validation (e0eef4c)
- skill-based agent generation with storyboard validation (d9d8778)
- authorization_type takes precedence over stale properties key (3fc9ed0)
- resolve property_ids and property_tags in get_all_properties() (ef55dcb)
- resolve property_ids and property_tags in get_all_properties() (eca6bd7), closes #172
- SSRF protections for authoritative_location redirects (6d1c962)
3.11.0 (2026-04-04)
- ADCP 3.0.0-rc3 spec + full registry support (c3f6937)
- implement ADCP 3.0.0-rc3 spec with full registry support (edc9578)
- remove all backward-compat type stubs for clean 3.0.0 surface (a45cdf5)
- add backward-compat FormatCategory/FormatType enum stub (756ed50)
- clean up formatting in registry_sync and property_registry (44a1914)
- remove accidental cursor file, add to .gitignore (2650f8e)
- remove stale buyer_campaign_ref from MCP tool schemas (3c7a2c8)
3.10.0 (2026-03-17)
- add feature capability validation API (supports/require) (d550c08)
- add RC2 governance support and full spec coverage (523ea20)
- feature capability validation API (supports/require) (f86f6c4)
- filter MCP tools by handler type, add webhook replay protection (ae7f378)
- address PR review feedback (FieldModel collision, handler boilerplate, deprecation aliases) (b9eac61)
- replace TypeAdapter with model_validate, tighten slug regex (103d616)
- require webhook headers when secret configured, restrict unknown handler tools (12f1080)
- walk MRO for tool filtering, add tool name validation (39985e5)
3.9.1 (2026-03-16)
- flatten validation-only oneOf schemas for consumer subclassing (3171a95)
- flatten validation-only oneOf schemas to single subclassable classes (c242a7d)
3.9.0 (2026-03-13)
- add raw_body support for verification and use Unix timestamps (4a663e5), closes #151
- set AdCPBaseModel extra='ignore' and remove obsolete generate_models.py (#157) (21077d9)
- unwrap RootModel unions for consumer subclassing (#156) (8fd7b92)
- use default JSON separators for webhook HMAC signing (2223f6e)
- use default JSON separators for webhook HMAC signing (0dd495f), closes #151
3.8.0 (2026-03-01)
3.7.0 (2026-02-28)
3.6.0 (2026-02-23)
3.5.0 (2026-02-22)
3.4.0 (2026-02-20)
- add brand and property registry lookup methods (#130) (9bfb0fb), closes #129
- export PromotedOfferingsRequirement and PromotedOfferingsAssetRequirements, sync latest schemas (#133) (9216ea7)
- sync ADCP schemas to latest, add brand compat and AAO member API (#132) (0dca021)
3.3.0 (2026-02-12)
3.2.0 (2026-02-04)
3.1.0 (2026-01-26)
3.0.0 (2026-01-26)
- CpmAuctionPricingOption, CpmFixedRatePricingOption, VcpmAuctionPricingOption, VcpmFixedRatePricingOption have been consolidated into CpmPricingOption and VcpmPricingOption respectively.
2.19.0 (2026-01-14)
- fix PackageRequest schema inconsistency in adcp (de2b4bf)
- sync schemas with ADCP 2.6 package updates (a6c55db)
2.18.0 (2026-01-09)
- add deprecated field metadata injection and CLI warnings (8947090)
- add format asset utilities and deprecation warnings for assets_required migration (c3c379a)
- upgrade to AdCP protocol 2.6.0 (245a7d3)
- rename format_ to format in FieldModel enum (1a6ab9a)
- resolve import sorting lint error in generated _ergonomic.py (45350d1)
- resolve linter errors (import sorting, line length) (4a53e33)
- shorten comment line to pass lint (7a2e30e)
2.17.0 (2025-12-30)
2.16.0 (2025-12-21)
2.15.0 (2025-12-21)
2.14.0 (2025-12-19)
- add IPR agreement workflow using centralized AdCP signatures (#101) (a33c5d6)
- update schemas (436f754)
- update webhook handling (874d170)
- apply PR suggestion (cecc2dc)
- drop --collapse-root-models option from type gen. Regenerate types (6cba9ef)
- format (aabb322)
- format (1dca6f1)
- format (83da78d)
- handle all authorization types in get_properties_by_agent (#100) (934f437)
- regenerate schemas (4ab4f53)
- tests (e1664aa)
- update MCP SDK to >=1.23.2 for streaming stability (#94) (3c25822)
- update verify signature function to work with timestamp (aaa7c8b)
- utility functions (bc47233)
2.13.0 (2025-12-07)
2.12.2 (2025-11-29)
- handle BaseExceptionGroup with CancelledError during cleanup (#89) (940e6ee)
- handle ExceptionGroup and CancelledError in MCP error flow (#87) (27ff0ae)
- use official A2A SDK for spec-compliant client implementation (#90) (d1b55cf)
2.12.1 (2025-11-24)
2.12.0 (2025-11-22)
2.11.1 (2025-11-21)
2.11.0 (2025-11-21)
2.10.0 (2025-11-20)
2.9.0 (2025-11-20)
- add missing AdCP protocol methods to CLI and client (#71) (f9432a3)
- integrate AdCP schema improvements (PR #222 + #223) (#73) (d61ca33)
2.8.0 (2025-11-19)
2.7.0 (2025-11-19)
- export FormatId, PackageRequest, PushNotificationConfig, and PriceGuidance from stable API (#68) (654f882)
2.6.0 (2025-11-19)
2.5.0 (2025-11-18)
2.4.1 (2025-11-18)
2.4.0 (2025-11-18)
2.3.0 (2025-11-17)
2.2.0 (2025-11-16)
2.1.0 (2025-11-16)
2.0.0 (2025-11-15)
1.6.1 (2025-11-13)
- context field for custom injected types (e37c095)
- context field for custom injected types (8e96c6e)
- mypy failures (c186472)
- ruff check (b8296e5)
1.6.0 (2025-11-13)
- add adagents.json validation and discovery (#42) (4ea16a1)
- add AdCPBaseModel with exclude_none serialization (#40) (c3cd590)
1.5.0 (2025-11-13)
1.4.1 (2025-11-11)
1.4.0 (2025-11-10)
1.3.1 (2025-11-10)
1.3.0 (2025-11-10)
1.2.1 (2025-11-09)
1.2.0 (2025-11-08)
1.1.0 (2025-11-07)
1.0.5 (2025-11-07)
1.0.4 (2025-11-07)
1.0.3 (2025-11-07)
1.0.2 (2025-11-06)
1.0.1 (2025-11-06)
1.0.0 (2025-11-06)
- All client methods now require typed request objects. The legacy kwargs API has been removed for a cleaner, more type-safe interface.
- All client methods now require typed request objects. The legacy kwargs API has been removed for a cleaner, more type-safe interface.
- All client methods now require typed request objects. The legacy kwargs API has been removed for a cleaner, more type-safe interface.
- update PyPI setup guide with correct secret name and current status (085b961)
0.1.2 (2025-11-05)
- correct secret name from PYPI_API_TOKEN to PYPY_API_TOKEN (0b7599d)
0.1.1 (2025-11-05)
- remove deprecated package-name parameter from release-please config (28d8154)
- add automated versioning and PyPI publishing (e7f8bbb)
- add comprehensive PyPI publishing setup guide (dcc8135)