Skip to content

v9.0.0

Choose a tag to compare

@aao-ipr-bot aao-ipr-bot released this 24 Oct 13:01
1dcb846

9.0.0 (2026-10-24)

⚠ BREAKING CHANGES

  • reporting: the PostgreSQL reporting stores, the row storage providers, the change feed, the ownership-migration helpers and ReliableReportingService.postgres leave adcp; install adcp-reporting-storage[pg] (plus gcs/s3/azure) and import them from adcp_reporting_storage. The adcp[reporting-gcs], [reporting-s3] and [reporting-azure] extras are removed. See docs/reporting-storage-package-migration.md.
  • codegen: a JSON document carrying null for an optional property whose schema does not admit null is now refused by model_validate_json and TypeAdapter.validate_json, and the published JSON Schema of such a property has no null arm. A Python None is still accepted. JSON produced with exclude_none=False must be read back in Python mode (model_validate(json.loads(...))).
  • types: SyncCreativesRequest.creatives is now list[CreativeAsset] | None. Handlers must guard it before iteration or use request.creatives or [] for assignment-only requests.
  • compat: server handlers receive requests already upgraded to the latest supported minor. A 3.1 buyer's request reaches the handler as adcp_version: "3.2", so reading the version from handler params, including resolve_requested_adcp_version(params), returns the served version, not the buyer's. Read ToolContext.resolved_adcp_version for the buyer's negotiated version and answer in the latest shapes; the SDK converts the response down. (Added after release.) (#1559)

chore

  • release: leave the beta channel for SDK 9.0.0 GA (#1567) (4e9c123)

Features

  • compat: negotiate and translate AdCP minor versions (#1559) (31d7217)
  • reporting: ship the Reliable Reporting storage as adcp-reporting-storage (#1557) (d59eee9)
  • reporting: sync empty-ledger replacement and owned-ledger rollback for 9.0 adopters (#1554) (38d046a)

Bug Fixes

  • canonical-formats: compare every parameter a format reference declares (#1518) (d073712), closes #1517
  • canonical-formats: read an omitted pixel_ratio as 1x on the supported side too (#1553) (b07adbc)
  • codegen: refuse a JSON null on optional properties whose schema forbids one (#1555) (a40c2f0)
  • governance: require crit markers with their claims, and run the signing tests CI skips (#1539) (15c85cf)
  • release: tighten V9 reporting and CI readiness checks (#1550) (41c2be7), closes #1383 #1493
  • types: allow assignment-only creative syncs (81c2a8b), closes #1545
  • types: generate the open asset unions, and derive the vocabulary they route by (#1501) (30a72ee)
  • types: inherit the generated constraints on the canonical creatives field (#1548) (69a0f6b)
  • types: refuse a JSON null on reporting_webhook.operation_id too (#1570) (9e238f3)
  • webhooks: echo reporting_webhook.operation_id on scheduled delivery reports (#1552) (0bac033), closes #1092