Skip to content

feat(protocol): adopt AdCP 3.2 beta.9 - #1096

Merged
bokelley merged 2 commits into
mainfrom
feat/adcp-beta9-schemas
Aug 28, 2026
Merged

feat(protocol): adopt AdCP 3.2 beta.9#1096
bokelley merged 2 commits into
mainfrom
feat/adcp-beta9-schemas

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • vendor and verify the signed AdCP 3.2.0-beta.9 schema bundle
  • regenerate public models while preserving compatibility aliases and retained reporting-webhook correlation patches
  • add end-to-end client, adapter, server, CLI, and simple-API support for list_account_changes
  • make schema regeneration deterministic and prevent patch backup artifacts

This release includes upstream adcp#6794.

Validation

  • make check-schema-drift
  • make typecheck-all
  • uv run python scripts/generate_versioned_stubs.py --check
  • uv run pytest -q (7,338 passed, 77 skipped, 9 deselected, 1 xfailed)
  • pre-commit hooks (Black, Ruff, mypy, Bandit, repository hygiene)

Comment thread src/adcp/server/builder.py Outdated
@@ -65,6 +65,7 @@ async def capabilities(params, context=None):
"get_signals": "signals",
"activate_signal": "signals",
# Account
"list_account_changes": "account",

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

MUST FIX: list_account_changes maps to domain "account", but its three sibling account operations (list_accounts, sync_accounts, get_account_financials) all map to "media_buy" — and for good reason. "account" is not a valid supported_protocols value: the capabilities schema enum is [media_buy, signals, governance, sponsored_intelligence, creative, brand, measurement] (verified in schemas/cache/3.2.0-beta.9/protocol/get-adcp-capabilities-response.json:871); account management is a separate top-level account capability block, not a protocol.

_detect_domains() feeds these values straight into capabilities_response(domains), so any server that registers list_account_changes and relies on auto-generated capabilities (the documented default) advertises supported_protocols: ["account", ...] on the wire — an out-of-enum value that fails buyer-side validation and the compliance runner. Map it to "media_buy".

Suggested change
"list_account_changes": "account",
"list_account_changes": "media_buy",

@bokelley
bokelley merged commit 5580279 into main Aug 28, 2026
26 of 29 checks passed
@bokelley
bokelley deleted the feat/adcp-beta9-schemas branch August 28, 2026 20:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant