Skip to content

Latest commit

 

History

History
757 lines (457 loc) · 66.6 KB

File metadata and controls

757 lines (457 loc) · 66.6 KB

Changelog

4.0.0 (2026-04-22)

⚠ BREAKING CHANGES

  • 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_level is removed. Migrate to reallocation_threshold / reallocation_unlimited on plan.budget, and set plan.human_review_required for decisions affecting data subjects. See the rc.4 migration section in README.md.

Features

  • 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)

Bug Fixes

  • 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)

Documentation

  • 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)

Miscellaneous Chores

  • mark 4.0 breaking change for release-please (8d0c430)

[4.0.0b1] — 2026-04-20

First 4.0 beta. See MIGRATION_v3_to_v4.md for upgrade instructions and before/after examples.

Breaking changes

  • 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 (BrandReference for BrandManifest; MediaBuyStatus for the former PackageStatus).
  • ResolvedBrand.brand_manifest field removed. Use ResolvedBrand.brand. The cross-populate validator that mirrored brandbrand_manifest is gone.
  • CreateMediaBuyRequest.brand_manifestbrand, matching the spec. The request now takes a BrandReference, not an inline brand manifest dict.
  • Numbered discriminated-union classes renumbered. Assets5…Assets14 from 3.x now correspond to higher-numbered variants (Assets57…Assets149 depending on the response). Import via semantic aliases from adcp.types (e.g., CreateMediaBuySuccessResponse) instead of numbered classes. Raw Assets* 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 to AudioContent, CssContent, HtmlContent, ImageContent, JavascriptContent, TextContent, UrlContent, VideoContent, WebhookContent. This disambiguates payload types from the slot-describing <Type>FormatAsset family (VideoContent describes what a creative delivers; VideoFormatAsset is a slot inside a format definition). The old names are no longer exported from adcp.types. See MIGRATION_v3_to_v4.md for a search-and-replace.

Non-breaking

  • __version__ is now sourced from installed distribution metadata (importlib.metadata.version("adcp")) so it always matches pyproject.toml.
  • Added top-level re-exports: TargetingOverlay, AdvertiserIndustry, KellerType, BrandSource. Any generated type not on the top-level surface is available from adcp.typesadcp.types.generated_poc.* is internal and not supported for direct import.

3.12.0 (2026-04-16)

Features

  • skill-based agent generation with storyboard validation (e0eef4c)
  • skill-based agent generation with storyboard validation (d9d8778)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Features

  • 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)

Bug Fixes

  • 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)

Bug Fixes

  • 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)

Features

  • add RootModel getattr proxy and minimal sales agent example (#150) (f1c3990), closes #145 #148

Bug Fixes

  • 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)

Features

Bug Fixes

  • resolve CI failures from GetSignalsRequest union alias (#144) (f135651)

3.7.0 (2026-02-28)

Features

3.6.0 (2026-02-23)

Features

  • sync upstream schemas and add get_media_buys (#136) (3625a2b)

3.5.0 (2026-02-22)

Features

  • sync upstream catalog schemas and add catalog type support (#134) (9de1eda)

3.4.0 (2026-02-20)

Features

  • 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)

Features

  • sync ADCP schema to 3.0.0-beta.3 with new operations and forecasting (#127) (bb611c3)

3.2.0 (2026-02-04)

Features

3.1.0 (2026-01-26)

Features

  • export PricingOption and other union type aliases from main package (#121) (a1c61e7), closes #120

3.0.0 (2026-01-26)

⚠ BREAKING CHANGES

  • CpmAuctionPricingOption, CpmFixedRatePricingOption, VcpmAuctionPricingOption, VcpmFixedRatePricingOption have been consolidated into CpmPricingOption and VcpmPricingOption respectively.

Features

  • add V3 protocol support (Governance, Content Standards, SI, CLI) (#117) (dfec179)

2.19.0 (2026-01-14)

Features

  • fix PackageRequest schema inconsistency in adcp (de2b4bf)
  • sync schemas with ADCP 2.6 package updates (a6c55db)

2.18.0 (2026-01-09)

Features

  • 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)

Bug Fixes

  • 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)

Features

  • add protocol field extraction for A2A responses (#110) (ae71b65)

2.16.0 (2025-12-21)

Features

  • extend type ergonomics to response types (#106) (d31c4d8)

2.15.0 (2025-12-21)

Features

  • improve type ergonomics for library consumers (#103) (75dec68)

2.14.0 (2025-12-19)

Features

  • add IPR agreement workflow using centralized AdCP signatures (#101) (a33c5d6)
  • update schemas (436f754)
  • update webhook handling (874d170)

Bug Fixes

  • 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)

Features

  • add str methods and filter params tests (#92) (6358542)

2.12.2 (2025-11-29)

Bug Fixes

  • 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)

Bug Fixes

  • correct ADCP_VERSION packaging for PyPI (#85) (161656d)

2.12.0 (2025-11-22)

Features

  • align A2A adapter with canonical response format (#83) (f7062f2)

2.11.1 (2025-11-21)

Bug Fixes

  • trigger release for PropertyTag/PropertyId schema updates (#81) (f9556c5)

2.11.0 (2025-11-21)

Features

  • sync AdCP schema updates and simplify type architecture (#78) (58e0d24)

2.10.0 (2025-11-20)

Features

  • add create_media_buy, update_media_buy, and build_creative to SimpleAPI (#74) (5545071)

2.9.0 (2025-11-20)

Features

2.8.0 (2025-11-19)

Features

  • expose all types through stable public API (#69) (3abef14)

2.7.0 (2025-11-19)

Features

  • export FormatId, PackageRequest, PushNotificationConfig, and PriceGuidance from stable API (#68) (654f882)

Bug Fixes

  • trigger 2.6.1 release for import boundary enforcement (#66) (ee8017a)

2.6.0 (2025-11-19)

Features

  • complete semantic alias coverage for discriminated unions (#63) (ab49c98)

2.5.0 (2025-11-18)

Features

  • Add API reference documentation with pdoc3 (#59) (6f7fdf1)

Bug Fixes

  • resolve Package type name collision with semantic aliases (#62) (b4028b7)

2.4.1 (2025-11-18)

Bug Fixes

  • remove stale generated files and improve type generation (#58) (574ec90)

2.4.0 (2025-11-18)

Features

  • Add is_fixed discriminator to pricing types (#56) (e47ff66)

2.3.0 (2025-11-17)

Features

  • Add publisher authorization discovery API (#54) (e7d0696)

Bug Fixes

  • Move email-validator to runtime dependencies (#51) (6ce1535)

2.2.0 (2025-11-16)

Features

  • Add semantic type aliases for discriminated unions (#49) (d776bc6)

2.1.0 (2025-11-16)

Features

  • Add ergonomic type aliases and public API exports (#47) (5c63dec)

2.0.0 (2025-11-15)

⚠ BREAKING CHANGES

Features

  • Migrate to datamodel-code-generator for type generation (#45) (8844d69)

1.6.1 (2025-11-13)

Bug Fixes

  • 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)

Features

  • add adagents.json validation and discovery (#42) (4ea16a1)
  • add AdCPBaseModel with exclude_none serialization (#40) (c3cd590)

1.5.0 (2025-11-13)

Features

  • generate type adcp context field (38600f2)
  • generate type adcp context field (92e90c9)

1.4.1 (2025-11-11)

Bug Fixes

  • handle MCP error responses without structuredContent (#34) (52956bc)

1.4.0 (2025-11-10)

Features

  • add ergonomic .simple accessor to all ADCPClient instances (#32) (5404325)

1.3.1 (2025-11-10)

Bug Fixes

  • export no-auth test helpers from main module (#30) (fb2459d)

1.3.0 (2025-11-10)

Features

1.2.1 (2025-11-09)

Documentation

  • add Python version requirement note to README (#25) (b2e5233)

1.2.0 (2025-11-08)

Features

  • improve type generation with discriminated union support (#21) (54da596)

1.1.0 (2025-11-07)

Features

  • batch preview API with 5-10x performance improvement (#18) (813df8a)

Bug Fixes

  • improve MCP adapter cleanup on connection failures (#19) (40d83f3)

1.0.5 (2025-11-07)

Bug Fixes

  • return both message and structured content in MCP responses (#16) (696a3aa)

1.0.4 (2025-11-07)

Bug Fixes

  • handle Pydantic TextContent objects in MCP response parser (#14) (6b60365)

1.0.3 (2025-11-07)

Bug Fixes

  • parse list_creative_formats response into structured type (#12) (15b5395)

1.0.2 (2025-11-06)

Bug Fixes

  • correct tool name in list_creative_formats method (#10) (d9eff68)

1.0.1 (2025-11-06)

Bug Fixes

  • use correct PYPY_API_TOKEN secret for PyPI publishing (#8) (b48a33a)

1.0.0 (2025-11-06)

⚠ BREAKING CHANGES

  • 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.

Features

  • complete Python AdCP SDK with typed API and auto-generated types (#5) (bc8ebc9)

Bug Fixes

  • correct PyPI API token secret name (#6) (eae30ce)

Reverts

  • restore correct PYPY_API_TOKEN secret name (#7) (330f484)

Documentation

  • update PyPI setup guide with correct secret name and current status (085b961)

0.1.2 (2025-11-05)

Bug Fixes

  • correct secret name from PYPI_API_TOKEN to PYPY_API_TOKEN (0b7599d)

0.1.1 (2025-11-05)

Bug Fixes

  • remove deprecated package-name parameter from release-please config (28d8154)

0.1.0 (2025-11-05)

Features

  • add automated versioning and PyPI publishing (e7f8bbb)

Documentation

  • add comprehensive PyPI publishing setup guide (dcc8135)