Skip to content

chore(types): pin AdCP spec to 3.1.0-rc.6#910

Merged
bokelley merged 1 commit into
mainfrom
v3-1-0-rc-6
Jun 1, 2026
Merged

chore(types): pin AdCP spec to 3.1.0-rc.6#910
bokelley merged 1 commit into
mainfrom
v3-1-0-rc-6

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

@bokelley bokelley commented Jun 1, 2026

Pins the bundled AdCP spec version to 3.1.0-rc.6 and adds the matching schema cache generated from the published bundle.

Regenerates Pydantic types and exports so the rc.6 event tracking surface is available, including EventSurface, event surface/action_source fields, content progress fields, and follow/content_view/watch_milestone event types.

Updates SCHEMA_DELTAS.md to summarize the generated field changes.

Validated with make regenerate-schemas, pre-commit hooks during commit, and focused pytest schema/version/public API suites.

@bokelley bokelley marked this pull request as ready for review June 1, 2026 07:48
Copy link
Copy Markdown
Contributor

@aao-ipr-bot aao-ipr-bot Bot left a comment

Choose a reason for hiding this comment

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

LGTM. Clean spec pin from 3.1.0-rc.4 to 3.1.0-rc.6 — additive enum values, optional new fields, no shape changes on the wire.

Things I checked

  • src/adcp/ADCP_VERSION (3.1.0-rc.4 → 3.1.0-rc.6) matches the new schemas/cache/3.1.0-rc.6/ directory.
  • SCHEMA_DELTAS.md accurately enumerates the diff — EventType +{content_view,follow,watch_milestone}, new EventSurface class, Event.surface, EventCustomData.{progress_percent,progress_seconds}, EventSource.{action_source,surface}.
  • Every new field on existing models is | None (verified core/event.py:46-49, core/event_custom_data.py:60-75). EventSurface.category is the one required field, and EventSurface itself is always optional. Non-breaking — chore(types): is the right prefix, no ! needed.
  • Codegen timestamps (2026-06-01T00:32:59+00:00) and # generated by datamodel-codegen headers consistent across regenerated files — not hand-edited.
  • Only three hand-touched files outside generated_poc/ and schemas/cache/: SCHEMA_DELTAS.md, ADCP_VERSION, _generated.py. aliases.py, _ergonomic.py, _forward_compat.py untouched, as expected for an additive regen.
  • _generated.py Category re-pointing (governance.sync_plans_response.Categorycore.event_surface.Category) is internal-only churn — Category is not exported from src/adcp/types/__init__.py.__all__, and grep finds no non-allowlisted importer of Category from _generated. The only re-point in the diff.
  • code-reviewer: clean, one follow-up.

Follow-ups (non-blocking — file as an issue)

  • EventSurface is in _generated.__all__ but not in src/adcp/types/__init__.py.__all__. Buyers will see Event.surface: EventSurface | None on the public model but cannot from adcp.types import EventSurface to construct one. Same gap for the new Category enum in core/event_surface.py:14-25 if adopters want to set surface.category from a typed value rather than a string. Codegen doesn't edit __init__.py, which is why this slipped — add to the post-regen fix script or to the public re-export block.

The chore-vs-feat call is interesting given that adopters do get new surface fields, but the regeneration is mechanical and the prefix matches how prior rc.X pins have shipped.

LGTM. Follow-ups noted below.

@bokelley bokelley merged commit 6fe799d into main Jun 1, 2026
27 checks passed
@bokelley bokelley deleted the v3-1-0-rc-6 branch June 1, 2026 09:12
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