Skip to content

chore(schemas): sync to AdCP 3.0.5 — identity.additionalProperties: true#374

Merged
bokelley merged 1 commit into
mainfrom
bokelley/sync-3.0.5
May 3, 2026
Merged

chore(schemas): sync to AdCP 3.0.5 — identity.additionalProperties: true#374
bokelley merged 1 commit into
mainfrom
bokelley/sync-3.0.5

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

@bokelley bokelley commented May 3, 2026

Bumps `src/adcp/ADCP_VERSION` 3.0.4 → 3.0.5 and regenerates schemas, generated types, ergonomic coercion, and bundled `_schemas/`.

What 3.0.5 actually changes for the SDK

Three additive upstream items; only one touches the Python type system:

  • `identity.additionalProperties` relaxed from `false` → `true` on `get-adcp-capabilities-response`. Backports the relaxation already on `main` post-adcp#3690 so 3.0-pinned adopters of `identity.brand_json_url` stop being rejected by strict 3.0 validators.

    Concrete Pydantic diff: `Identity.model_config` flips from `extra='forbid'` → `extra='allow'`. Receivers reading the new field via `model_extra` (or downstream raw-JSON paths) gain forward-compat without waiting for 3.1.

  • Storyboard `default_agent` — runner-side YAML schema field. No Python SDK surface.

  • Brand-rights conformance field-name fix — storyboard YAML reading the wrong field. No SDK code change.

Why this matters now

This sync is the spec-side gate identified on #344. The 3.0.4 bundle had `identity` schema-closed, so `brand_json_url` would be rejected by strict validators. With 3.0.5 the field can flow through cleanly.

The five expert design blockers on #344 (SSRF on all 3 hops, identity_posture/consistency provenance, PSL extra, async-first surface, CLI alias collision) are independent of this sync and remain open for owner decisions.

Local gates

  • `ruff check src/` — clean
  • `mypy src/adcp/` — Success: no issues found in 744 source files
  • `pytest tests/` — 3095 passed, 26 skipped, 1 xfailed
  • `scripts/regenerate_public_api_snapshot.py` — re-run, no public-API churn

Test plan

  • Schema sync drift check passes (regen produces only the timestamp + `extra='allow'` flip)
  • All existing tests pass against the new schemas
  • `identity.brand_json_url` (or any other forward-compat field) now accepted on `get_adcp_capabilities` response without raising

🤖 Generated with Claude Code

Bumps src/adcp/ADCP_VERSION 3.0.4 -> 3.0.5 and regenerates schemas,
generated types, ergonomic coercion, and bundled _schemas/.

Upstream 3.0.5 is three additive changes; only one matters at the SDK
type-system level:

- spec(capabilities): identity.additionalProperties relaxed from false
  to true on get-adcp-capabilities-response. Backports the relaxation
  already on main post-#3690 so 3.0-pinned adopters of identity.brand_json_url
  stop being rejected by strict 3.0 validators.

  Concrete diff: Identity Pydantic model_config flips from extra='forbid'
  to extra='allow'. Receivers reading the new field via model_extra
  (or downstream raw-JSON paths) gain forward-compat without waiting
  for 3.1.

Other 3.0.5 items (storyboard default_agent, brand-rights conformance
field-name fix, release-pipeline plumbing) are runner-side or upstream
release machinery — no Python SDK surface area.

Closes the spec-side gate identified on #344. The five expert design
blockers on that issue (SSRF on all 3 hops, identity_posture/consistency
provenance, PSL extra, async-first surface, CLI alias collision) are
unrelated to this sync.

Local gates:
- ruff check src/ - clean
- mypy src/adcp/ - 744 source files, no issues
- pytest tests/ - 3095 passed, 26 skipped, 1 xfailed

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit 008fa3c into main May 3, 2026
12 checks passed
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