Skip to content

docs(reference): bring the 3.3 release docs to 3.3.0-rc.0 - #8883

Draft
bokelley wants to merge 12 commits into
mainfrom
docs/3-3-rc0-release-docs
Draft

bokelley wants to merge 12 commits into
mainfrom
docs/3-3-rc0-release-docs

Conversation

@bokelley

@bokelley bokelley commented Nov 10, 2026 •

Copy link
Copy Markdown
Contributor

Release-docs pass for 3.3.0-rc.0 (cut planned for Mon 2026-11-16). "Release docs are current" is GA criterion 5 in #8600. Draft: several sections depend on PRs that have not merged yet. Each one carries a marker (below) so it can be re-checked right before the cut.

The docs snapshot archives docs/ at the release tag, so this needs to merge before the rc.0 Version Packages PR. The pages describe rc.0 as published on 2026-11-16.

What changes

RC framing. The release notes, What's new, the 3.2→3.3 migration guide, Versions, and the 3.3 rows of Choose your SDK move from beta.5 to rc.0. The prerelease page keeps its /docs/reference/3-3-beta URL and is retitled "3.3 prerelease program", as the 3.2 page was at its RC (#7288). rc.0 is added to the checkpoint and wire-pin tables ("3.3-rc.0", selector 3.3-rc), and the GA target is restated from #8600. The in-review table reflects the 3.3.0 milestone as of 2026-11-10: #8375 is closed, and #8501 and #8856 are new.

Schemas open by default (WG decision, 2026-11-09). #8866 rewrites most of the old "closed stays closed" lines itself. This PR leaves those lines alone and fixes the ones #8866 doesn't touch:

  • migration guide: the Send-only-to-3.3-peers intro, and the proposal-flow correction paragraph (old line 516);
  • 3-1-to-3-2.mdx (old line 337);
  • optimization-reporting.mdx (old line 427);
  • specs/daily-budget-constraints.md (old line 25).

It also adds:

  • a Behavior-changes entry in the release notes;
  • a "New in rc.0" section in What's new;
  • an SDK-maintainer bullet on generated types (TypeScript index signatures, Pydantic extra, Zod).

Closed-schema triage (#8501 re-triage, 2026-11-09). A new section in the migration guide lists every field: what stays in 3.3, what leaves (deprecated surface, or extending the commercial terms held closed until 4.0), and what moves. The release notes, What's new, and the prerelease page summarize it.

Deprecations. Boolean overlay demographics is added (from #8866). The six-month-notice promises are replaced: deprecated 3.3 features are expected to be removed in 4.0, and 3.3 stays supported for at least 12 months after 4.0 GA (decided 2026-11-10; the policy change is in #8858). versioning.mdx and the policy pages are untouched.

SDKs.

  • On beta.5: @adcp/sdk 17.0.0-beta.22 (verified on npm; it bundles 3.3.0-beta.5, 3.2.8, 3.1.31 and 3.0.25) and Python adcp 10.0.0b15. Choose your SDK still names 17.0.0-beta.21, because tests/sdk-runtime-compat.test.cjs requires it to match the @adcp/sdk this repository installs. Bumping the dependency to beta.22 would let that page say beta.22.
  • On the 3.2 line: Python adcp 9.6.2, which reads the A2A profile's input member.
  • No SDK bundles rc.0 yet, and Go and Java are unsupported for 3.3.

Prerelease pins, unpinned discovery, and anonymous capabilities (approved by Brian, separate commit). These came from a field report: a 3.3-beta reader pinned get_adcp_capabilities to 3.3-beta.5 against a 3.0-only seller and never retried.

  • versioning.mdx (pre-release pins) and the 3.3 prerelease page: a buyer MUST send a prerelease adcp_version only to a peer that advertises that exact value. It SHOULD discover unpinned, and SHOULD retry unpinned or at a listed version on VERSION_UNSUPPORTED. This matches the existing retry SHOULD and the error code's recovery hint; the schema is unchanged.
  • authentication.mdx: a seller SHOULD serve get_adcp_capabilities without credentials. It is a SHOULD in 3.3 and a MUST in 4.0.
  • mcp-guide.mdx: a gateway that allow-lists JSON-RPC methods SHOULD let server/discover, initialize and tools/list through without credentials.
  • Release docs: a migration-guide section with buyer and seller checklist rows 48 and 49, What's new and release-notes bullets, and a bullet in v4-compatibility.mdx under "Changes not checked yet". That page had no anonymous-discovery item, and a graded check would need a registry and storyboard entry.

Dependency markers

MDX doesn't accept HTML comments, so the .mdx markers are {/* depends on ... */}. The spec uses <!-- depends on ... -->. Find them all with git grep -n "depends on" -- docs/reference docs/building/by-layer/L4/choose-your-sdk.mdx docs/media-buy/media-buys/optimization-reporting.mdx specs/daily-budget-constraints.md.

Depends on Where
rc.0 Version Packages cut (date 2026-11-16) status sections of the prerelease page, migration guide, release notes, What's new, Versions
rc.0 SDK prereleases prerelease page SDK guidance; Choose your SDK
Training agent moving its preview to rc.0 prerelease page, test-agent preview
3.2.11 release (Version Packages #8942; #8864 merged into 3.2.x) 3.1→3.2 correction; Send-only-to-3.3-peers section; release-notes schemas bullet; What's new "New in rc.0"
#8758, #8767, #8762, #8854 every triage table and summary; release-notes experimental-table note; prerelease page note on #7659
c4777ebd's available_installment_statuses PR (number to follow) the triage markers; the release-notes media_buy.installment_lifecycle row, which moves to core/canonical-reporting-capabilities.json when the PR lands

Merge interactions

Checks run

  • MDX compile of every edited page
  • npm run lint:schema-links
  • npm run test:docs-nav (58/58)
  • node scripts/build-compliance.cjs --check
  • json-schema-validation --file on each edited page
  • changeset scope check and changeset status

Not changed

specification-lifecycle.mdx, schemas, and governance records. versioning.mdx gets only the buyer prerelease-pin paragraph above. Also out of scope:

🤖 Generated with Claude Code

@bokelley
bokelley force-pushed the docs/3-3-rc0-release-docs branch from 576e1a2 to 9b8e001 Compare November 12, 2026 16:30
bokelley added a commit that referenced this pull request Nov 12, 2026
…ves assignments (#8501)

3.3 adds no field that exists only on a deprecated task. Withdraw from
get_products: refine[].package (and package-forecast-input.json),
refinement_applied[] result_product_id / resolved_start_time /
resolved_end_time, filters.target_audiences, include_collections and
collections, and experimental price_adjustments on pricing options (with
price-adjustments.json, the mismatch error details, and the vectors).
Move include_execution_readiness / execution_readiness to list_products.
Withdraw landing_page_url and trackers from the deprecated sync_creatives
assignments[] row; the assign operation keeps them.

#8866 opened the assignments[] row and the refine[] product entry, so
both now reject the withdrawn request fields by name (not: required),
with a description sentence: the row rejects trackers and
landing_page_url, and every refine[] scope rejects package. The schema
and the training agent's INVALID_REQUEST agree. The response-side
refinement_applied fields are just undefined.

Updates the training agent, the execution readiness storyboard, the v4
registry (canonical_price_adjustments_required_in_4_0), the oneOf
discriminator baseline, docs, and tests. #8866 already removed the
additive-minor baseline rows, and the 3.3 release pages are left to
#8883. counting_mechanisms is left to the create/update_media_buy PR,
which removes it from the shared measurement-terms.json.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…nd update_media_buy (#8501)

create_media_buy and update_media_buy are deprecated compatibility tasks, so
3.3 adds nothing to them. Six fields the 3.3 betas added to them are removed;
the live tasks keep every one they also carry.

- predecessor_media_buy_id, lineage_reason: off create_media_buy; stay on
  buy_products, accept_proposal and get_media_buys.
- artifact_webhook.signing_profile: off create_media_buy; no live task has
  artifact_webhook, so it is signed with adcp/webhook-signing/v1.
- start_requires_all_creatives_approved: off package-request, package-update
  and core/package.json; stays on control_media_buy and get_media_buys.
- target_audiences: off package-request; with #8758 withdrawing the
  get_products copy, no 3.3 wire form remains.
- trackers, landing_page_url: off core/creative-assignment.json; stay on
  sync_creatives assign, list_creatives and get_media_buys.
- billing_measurement.counting_mechanisms: off core/measurement-terms.json
  (create, update and get_products); the canonical terms gain it in 4.0.

The training agent ignores the withdrawn fields on create/update, as the
versioning rules require for unknown fields, and no longer echoes them in
create/update responses; get_media_buys still reads back what assign set.
The 4.0 registry and the task references say where each field lives; the
3.3 release pages are left to #8883. Text that called the purchase,
offer-filter or canonical measurement schemas closed now says what #8866
left: the first two are open but don't define the field, and the
canonical terms are held closed with the commercial terms until 4.0.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…rm remains (#8501)

With filters.target_audiences withdrawn from get_products (#8758) and the
package copy withdrawn from create_media_buy and update_media_buy, the
experimental media_buy.audience_evidence_targets has no 3.3 wire form.

- Delete core/audience-evidence-target.json and
  enums/audience-evidence-relationship.json and their index.json entries.
  The stable inline relationship enums on audience evidence stay.
- Drop the feature from the changeset. Its experimental-status row went
  with the previous commit, and the 3.3 release pages are left to #8883.
- Move the target-matching rules from get_products.mdx into the preserved
  4.0 design under purchase_target_audiences_required_in_4_0, keeping a short
  withdrawal notice at the old anchor; the check keeps its id and its
  detection no longer keys off the retired feature id.
- Retire tests/audience-evidence-targets.test.cjs (preserved at d9b5417)
  and stop reading the deleted package-forecast-input.json in
  tests/creative-start-policy.test.cjs.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
The release notes, What's new, the 3.2 to 3.3 migration guide and the 3.3
beta page belong to #8883. This PR no longer edits them, so its test stops
asserting their "Withdrawn from the deprecated tasks" heading.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
The release notes, What's new, the 3.2 to 3.3 migration guide and the 3.3
beta page belong to #8883. This PR no longer edits them, so its test stops
asserting their "Withdrawn from the deprecated tasks" heading.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bokelley
bokelley force-pushed the docs/3-3-rc0-release-docs branch from ddb729b to a862b14 Compare November 12, 2026 17:19
bokelley added a commit that referenced this pull request Nov 12, 2026
…nd update_media_buy (#8501)

create_media_buy and update_media_buy are deprecated compatibility tasks, so
3.3 adds nothing to them. Six fields the 3.3 betas added to them are removed;
the live tasks keep every one they also carry.

- predecessor_media_buy_id, lineage_reason: off create_media_buy; stay on
  buy_products, accept_proposal and get_media_buys.
- artifact_webhook.signing_profile: off create_media_buy; no live task has
  artifact_webhook, so it is signed with adcp/webhook-signing/v1.
- start_requires_all_creatives_approved: off package-request, package-update
  and core/package.json; stays on control_media_buy and get_media_buys.
- target_audiences: off package-request; with #8758 withdrawing the
  get_products copy, no 3.3 wire form remains.
- trackers, landing_page_url: off core/creative-assignment.json; stay on
  sync_creatives assign, list_creatives and get_media_buys.
- billing_measurement.counting_mechanisms: off core/measurement-terms.json
  (create, update and get_products); the canonical terms gain it in 4.0.

The training agent ignores the withdrawn fields on create/update, as the
versioning rules require for unknown fields, and no longer echoes them in
create/update responses; get_media_buys still reads back what assign set.
The 4.0 registry and the task references say where each field lives; the
3.3 release pages are left to #8883. Text that called the purchase,
offer-filter or canonical measurement schemas closed now says what #8866
left: the first two are open but don't define the field, and the
canonical terms are held closed with the commercial terms until 4.0.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…rm remains (#8501)

With filters.target_audiences withdrawn from get_products (#8758) and the
package copy withdrawn from create_media_buy and update_media_buy, the
experimental media_buy.audience_evidence_targets has no 3.3 wire form.

- Delete core/audience-evidence-target.json and
  enums/audience-evidence-relationship.json and their index.json entries.
  The stable inline relationship enums on audience evidence stay.
- Drop the feature from the changeset. Its experimental-status row went
  with the previous commit, and the 3.3 release pages are left to #8883.
- Move the target-matching rules from get_products.mdx into the preserved
  4.0 design under purchase_target_audiences_required_in_4_0, keeping a short
  withdrawal notice at the old anchor; the check keeps its id and its
  detection no longer keys off the retired feature id.
- Retire tests/audience-evidence-targets.test.cjs (preserved at d9b5417)
  and stop reading the deleted package-forecast-input.json in
  tests/creative-start-policy.test.cjs.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
The release notes, What's new, the 3.2 to 3.3 migration guide and the 3.3
beta page belong to #8883. This PR no longer edits them, so its test stops
asserting their "Withdrawn from the deprecated tasks" heading.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bokelley
bokelley force-pushed the docs/3-3-rc0-release-docs branch from a862b14 to aa14b65 Compare November 12, 2026 19:06
bokelley added a commit that referenced this pull request Nov 12, 2026
…ves assignments (#8501)

3.3 adds no field that exists only on a deprecated task. Withdraw from
get_products: refine[].package (and package-forecast-input.json),
refinement_applied[] result_product_id / resolved_start_time /
resolved_end_time, filters.target_audiences, include_collections and
collections, and experimental price_adjustments on pricing options (with
price-adjustments.json, the mismatch error details, and the vectors).
Move include_execution_readiness / execution_readiness to list_products.
Withdraw landing_page_url and trackers from the deprecated sync_creatives
assignments[] row; the assign operation keeps them.

#8866 opened the assignments[] row and the refine[] product entry, so
both now reject the withdrawn request fields by name (not: required),
with a description sentence: the row rejects trackers and
landing_page_url, and every refine[] scope rejects package. The schema
and the training agent's INVALID_REQUEST agree. The response-side
refinement_applied fields are just undefined.

Updates the training agent, the execution readiness storyboard, the v4
registry (canonical_price_adjustments_required_in_4_0), the oneOf
discriminator baseline, docs, and tests. #8866 already removed the
additive-minor baseline rows, and the 3.3 release pages are left to
#8883. counting_mechanisms is left to the create/update_media_buy PR,
which removes it from the shared measurement-terms.json.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…nd update_media_buy (#8501)

create_media_buy and update_media_buy are deprecated compatibility tasks, so
3.3 adds nothing to them. Six fields the 3.3 betas added to them are removed;
the live tasks keep every one they also carry.

- predecessor_media_buy_id, lineage_reason: off create_media_buy; stay on
  buy_products, accept_proposal and get_media_buys.
- artifact_webhook.signing_profile: off create_media_buy; no live task has
  artifact_webhook, so it is signed with adcp/webhook-signing/v1.
- start_requires_all_creatives_approved: off package-request, package-update
  and core/package.json; stays on control_media_buy and get_media_buys.
- target_audiences: off package-request; with #8758 withdrawing the
  get_products copy, no 3.3 wire form remains.
- trackers, landing_page_url: off core/creative-assignment.json; stay on
  sync_creatives assign, list_creatives and get_media_buys.
- billing_measurement.counting_mechanisms: off core/measurement-terms.json
  (create, update and get_products); the canonical terms gain it in 4.0.

The training agent ignores the withdrawn fields on create/update, as the
versioning rules require for unknown fields, and no longer echoes them in
create/update responses; get_media_buys still reads back what assign set.
The 4.0 registry and the task references say where each field lives; the
3.3 release pages are left to #8883. Text that called the purchase,
offer-filter or canonical measurement schemas closed now says what #8866
left: the first two are open but don't define the field, and the
canonical terms are held closed with the commercial terms until 4.0.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…rm remains (#8501)

With filters.target_audiences withdrawn from get_products (#8758) and the
package copy withdrawn from create_media_buy and update_media_buy, the
experimental media_buy.audience_evidence_targets has no 3.3 wire form.

- Delete core/audience-evidence-target.json and
  enums/audience-evidence-relationship.json and their index.json entries.
  The stable inline relationship enums on audience evidence stay.
- Drop the feature from the changeset. Its experimental-status row went
  with the previous commit, and the 3.3 release pages are left to #8883.
- Move the target-matching rules from get_products.mdx into the preserved
  4.0 design under purchase_target_audiences_required_in_4_0, keeping a short
  withdrawal notice at the old anchor; the check keeps its id and its
  detection no longer keys off the retired feature id.
- Retire tests/audience-evidence-targets.test.cjs (preserved at d9b5417)
  and stop reading the deleted package-forecast-input.json in
  tests/creative-start-policy.test.cjs.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
The release notes, What's new, the 3.2 to 3.3 migration guide and the 3.3
beta page belong to #8883. This PR no longer edits them, so its test stops
asserting their "Withdrawn from the deprecated tasks" heading.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…ves assignments (#8501) (#8758)

* fix(schema): withdraw 3.3 additions from get_products and sync_creatives assignments (#8501)

3.3 adds no field that exists only on a deprecated task. Withdraw from
get_products: refine[].package (and package-forecast-input.json),
refinement_applied[] result_product_id / resolved_start_time /
resolved_end_time, filters.target_audiences, include_collections and
collections, and experimental price_adjustments on pricing options (with
price-adjustments.json, the mismatch error details, and the vectors).
Move include_execution_readiness / execution_readiness to list_products.
Withdraw landing_page_url and trackers from the deprecated sync_creatives
assignments[] row; the assign operation keeps them.

#8866 opened the assignments[] row and the refine[] product entry, so
both now reject the withdrawn request fields by name (not: required),
with a description sentence: the row rejects trackers and
landing_page_url, and every refine[] scope rejects package. The schema
and the training agent's INVALID_REQUEST agree. The response-side
refinement_applied fields are just undefined.

Updates the training agent, the execution readiness storyboard, the v4
registry (canonical_price_adjustments_required_in_4_0), the oneOf
discriminator baseline, docs, and tests. #8866 already removed the
additive-minor baseline rows, and the 3.3 release pages are left to
#8883. counting_mechanisms is left to the create/update_media_buy PR,
which removes it from the shared measurement-terms.json.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(schema): readiness binds to buy_products purchases, not legacy packages (#8501)

execution_readiness moved to list_products, whose next step is buy_products,
but binding_field examples still taught the legacy create_media_buy paths,
including packages[].catalogs[], which a purchase does not define. Teach
purchases[].optimization_goals[].event_sources[].event_source_id and
purchases[].catalog_ids[] in the spec, list_products docs, the readiness and
requirement schemas, and the readiness fixtures; label the remaining
packages[] paths as legacy. The readiness text no longer claims buy_products
rejects unmet purchases: only create_media_buy's rule is specified, and the
purchase-side rule stays with adcp#7763.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* docs(v4): price_adjustments shipped through beta.5 (#8501)

The canonical_price_adjustments_required_in_4_0 section of the 4.0 page
still said the table shipped in 3.3.0-beta.1 through beta.4 and that the
beta.1 to beta.4 bundles keep the schemas. beta.5 shipped with it too, and
the changeset, the registry entry and pricing-models.mdx already say so.
The section now also says canonical-pricing-option.json is held closed
with the commercial terms until 4.0, matching the registry entry, rather
than "closed in 3.x".

Found by the Ladon review.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…nd update_media_buy (#8501)

create_media_buy and update_media_buy are deprecated compatibility tasks, so
3.3 adds nothing to them. Six fields the 3.3 betas added to them are removed;
the live tasks keep every one they also carry.

- predecessor_media_buy_id, lineage_reason: off create_media_buy; stay on
  buy_products, accept_proposal and get_media_buys.
- artifact_webhook.signing_profile: off create_media_buy; no live task has
  artifact_webhook, so it is signed with adcp/webhook-signing/v1.
- start_requires_all_creatives_approved: off package-request, package-update
  and core/package.json; stays on control_media_buy and get_media_buys.
- target_audiences: off package-request; with #8758 withdrawing the
  get_products copy, no 3.3 wire form remains.
- trackers, landing_page_url: off core/creative-assignment.json; stay on
  sync_creatives assign, list_creatives and get_media_buys.
- billing_measurement.counting_mechanisms: off core/measurement-terms.json
  (create, update and get_products); the canonical terms gain it in 4.0.

The training agent ignores the withdrawn fields on create/update, as the
versioning rules require for unknown fields, and no longer echoes them in
create/update responses; get_media_buys still reads back what assign set.
The 4.0 registry and the task references say where each field lives; the
3.3 release pages are left to #8883. Text that called the purchase,
offer-filter or canonical measurement schemas closed now says what #8866
left: the first two are open but don't define the field, and the
canonical terms are held closed with the commercial terms until 4.0.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
…rm remains (#8501)

With filters.target_audiences withdrawn from get_products (#8758) and the
package copy withdrawn from create_media_buy and update_media_buy, the
experimental media_buy.audience_evidence_targets has no 3.3 wire form.

- Delete core/audience-evidence-target.json and
  enums/audience-evidence-relationship.json and their index.json entries.
  The stable inline relationship enums on audience evidence stay.
- Drop the feature from the changeset. Its experimental-status row went
  with the previous commit, and the 3.3 release pages are left to #8883.
- Move the target-matching rules from get_products.mdx into the preserved
  4.0 design under purchase_target_audiences_required_in_4_0, keeping a short
  withdrawal notice at the old anchor; the check keeps its id and its
  detection no longer keys off the retired feature id.
- Retire tests/audience-evidence-targets.test.cjs (preserved at d9b5417)
  and stop reading the deleted package-forecast-input.json in
  tests/creative-start-policy.test.cjs.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley added a commit that referenced this pull request Nov 12, 2026
The release notes, What's new, the 3.2 to 3.3 migration guide and the 3.3
beta page belong to #8883. This PR no longer edits them, so its test stops
asserting their "Withdrawn from the deprecated tasks" heading.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bokelley
bokelley force-pushed the docs/3-3-rc0-release-docs branch from aa14b65 to 3243273 Compare November 12, 2026 20:04
bokelley added a commit that referenced this pull request Nov 12, 2026
…nd update_media_buy (#8501) (#8767)

* fix(schema): keep 3.3 additions off the deprecated create_media_buy and update_media_buy (#8501)

create_media_buy and update_media_buy are deprecated compatibility tasks, so
3.3 adds nothing to them. Six fields the 3.3 betas added to them are removed;
the live tasks keep every one they also carry.

- predecessor_media_buy_id, lineage_reason: off create_media_buy; stay on
  buy_products, accept_proposal and get_media_buys.
- artifact_webhook.signing_profile: off create_media_buy; no live task has
  artifact_webhook, so it is signed with adcp/webhook-signing/v1.
- start_requires_all_creatives_approved: off package-request, package-update
  and core/package.json; stays on control_media_buy and get_media_buys.
- target_audiences: off package-request; with #8758 withdrawing the
  get_products copy, no 3.3 wire form remains.
- trackers, landing_page_url: off core/creative-assignment.json; stay on
  sync_creatives assign, list_creatives and get_media_buys.
- billing_measurement.counting_mechanisms: off core/measurement-terms.json
  (create, update and get_products); the canonical terms gain it in 4.0.

The training agent ignores the withdrawn fields on create/update, as the
versioning rules require for unknown fields, and no longer echoes them in
create/update responses; get_media_buys still reads back what assign set.
The 4.0 registry and the task references say where each field lives; the
3.3 release pages are left to #8883. Text that called the purchase,
offer-filter or canonical measurement schemas closed now says what #8866
left: the first two are open but don't define the field, and the
canonical terms are held closed with the commercial terms until 4.0.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* fix(schema): retire audience evidence targets now that no 3.3 wire form remains (#8501)

With filters.target_audiences withdrawn from get_products (#8758) and the
package copy withdrawn from create_media_buy and update_media_buy, the
experimental media_buy.audience_evidence_targets has no 3.3 wire form.

- Delete core/audience-evidence-target.json and
  enums/audience-evidence-relationship.json and their index.json entries.
  The stable inline relationship enums on audience evidence stay.
- Drop the feature from the changeset. Its experimental-status row went
  with the previous commit, and the 3.3 release pages are left to #8883.
- Move the target-matching rules from get_products.mdx into the preserved
  4.0 design under purchase_target_audiences_required_in_4_0, keeping a short
  withdrawal notice at the old anchor; the check keeps its id and its
  detection no longer keys off the retired feature id.
- Retire tests/audience-evidence-targets.test.cjs (preserved at d9b5417)
  and stop reading the deleted package-forecast-input.json in
  tests/creative-start-policy.test.cjs.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

* test(schema): leave the 3.3 release pages to #8883

The release notes, What's new, the 3.2 to 3.3 migration guide and the 3.3
beta page belong to #8883. This PR no longer edits them, so its test stops
asserting their "Withdrawn from the deprecated tasks" heading.

Refs #8501

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
bokelley and others added 2 commits November 12, 2026 20:41
Bring the release notes, What's new, the 3.2 to 3.3 migration guide, the
prerelease program page, Versions, and the 3.3 rows of Choose your SDK to
the first release candidate. The prerelease page keeps its 3-3-beta URL
and is retitled, as the 3.2 page was at its RC. rc.0 joins the checkpoint
and wire-pin tables with the 3.3-rc documentation selector.

Cover the 2026-11-09 decision to open the schemas that were closed by
accident, and the #8501 triage that followed it: which beta fields stay in
3.3, which leave because they sit on deprecated tasks or would change a
signed term, and which move. The migration guide lists every field; the
other pages summarize it. Record boolean overlay demographics as
deprecated.

Leave the lines that #8866 rewrites alone, and fix the "closed schemas
stay closed" wording it does not touch: the Send-only-to-3.3-peers intro
and proposal-flow correction in the 3.2 to 3.3 guide, the 3.1 to 3.2
guide, optimization reporting, and the daily-budget spec.

Describe deprecated 3.3 features as expected to be removed in 4.0, with
3.3 supported for a window after 4.0 GA, instead of the six-month notice
promise. Record @adcp/sdk 17.0.0-beta.22 and Python adcp 10.0.0b15 on
beta.5, Python adcp 9.6.2 with the A2A input fix on the 3.2 line, no SDK
on rc.0 yet, and no Go or Java support for 3.3.

Content that depends on unmerged PRs or on the rc.0 cut carries a
{/* depends on ... */} marker (HTML comment in the spec markdown) so it
can be re-checked before the cut.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Replace "length to be confirmed" in the 3.2 to 3.3 Deprecations intro
with the decided window: 3.3 stays supported for at least 12 months after
4.0 GA. Point the marker at #8858, which carries the policy change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
bokelley and others added 9 commits November 12, 2026 20:41
Konstantin's review of #8866 rejects signed commercial terms as a
structural reason to keep a schema closed: terms_digest covers open
members at every depth, including ext. Describe the nodes inside
commercial_terms, and proposal-budget-constraint, as held closed until
4.0 in the triage tables and summaries, the release notes, What's new,
Versions, and the daily-budget spec, and drop the claim that the digest
stops a 3.2 buyer from accepting a term it ignored. The triage reason is
renamed from signed meaning to held closed until 4.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…apabilities

A 3.3 beta reader pinned get_adcp_capabilities to 3.3-beta.5 against a
3.0-only seller, got VERSION_UNSUPPORTED, and never retried. State how
each side avoids that (approved by Brian for the 3.3 RC docs):

- Versioning, pre-release pins: a buyer MUST send a prerelease
  adcp_version only to a peer whose supported_versions lists that exact
  value, SHOULD discover unpinned, and SHOULD retry unpinned or at a
  listed version on VERSION_UNSUPPORTED, matching the existing retry
  SHOULD and the error code's recovery hint. Mirrored on the 3.3
  prerelease page.
- Authentication: a seller SHOULD serve get_adcp_capabilities without
  credentials; a SHOULD in 3.3 and a MUST in 4.0.
- MCP guide: a gateway that allow-lists JSON-RPC methods SHOULD let
  server/discover, initialize, and tools/list through without
  credentials.
- Release docs: a migration-guide section with buyer and seller
  checklist rows, a What's new and release-notes bullet, and the 4.0
  item in v4-compatibility's not-yet-checked list.

Docs only; no schema changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…lease docs

After rebasing onto main with #8866 merged:

- Take #8866's wording for the boolean form of demographics in the
  migration guide's Deprecations section, and align the release notes and
  What's new with it (#8778 tracks the 4.0 removal).
- 3.2.10 shipped without the schema opening, so say "the next 3.2.x patch
  (#8864)" and "3.2.10 and earlier", including in #8866's
  Schemas-are-open-by-default bullet.
- Drop the dependency markers #8866 satisfied, and retarget the rest.
- Cover the other changes merged for rc.0: origin-only authorized_agents
  URLs (#8939), declared-option creative conformance (#8941), TMP cache
  isolation (#7446), creative.supports_registry_policy_enforcement
  (#8857), 3gp/mpeg/m4v containers (#8668), carousel card_image_sizes
  (#8937), and the loosened URL patterns (#8792).
- Refresh the in-review table against the 3.3.0 milestone on 2026-11-12,
  and remove the stray duplicate table header it carried.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tests/sdk-runtime-compat.test.cjs requires Choose your SDK to name the
@adcp/sdk prerelease this repository installs (17.0.0-beta.21), and no
other 17.0.0 prerelease. Revert the TypeScript row and install command to
beta.21 and drop the npm beta dist-tag label, which now points at beta.22.
The release pages keep recording that beta.22 also bundles beta.5.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…se docs

- #8858 merged: drop its markers on the 3.3 support window and the
  daily-budget spec.
- #8864 merged into 3.2.x, so the schema opening ships in 3.2.11: say
  "3.2.11 (#8864)" instead of "the next 3.2.x patch", with one marker per
  page on the 3.2.11 release itself (Version Packages #8942).
- target_audiences on list_products offer_filters is decided: it stays as
  it is in 3.3, and any change is 4.x, so media_buy.audience_evidence_targets
  has no 3.3 surface once the get_products and create_media_buy copies leave.
- The available_installment_statuses move is a 3.3 RC item; its markers
  now point at c4777ebd's PR, and the release-notes installment_lifecycle
  row carries a marker to move to the canonical location when it lands.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…8957

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…se docs

#8762 (sla-window back to its 3.2 shape, business time on the creative
review SLA) and #8957 (available_installment_statuses on the canonical
reporting capabilities) merged; #8762's own release-doc lines arrive with
the rebase. Drop both from the dependency markers, name the canonical
product's reporting_capabilities in the release-notes
media_buy.installment_lifecycle row, and refresh the #8501 row of the
in-review table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
#8758 merged: the get_products and sync_creatives assignments[]
withdrawals and the execution_readiness move to list_products are in
main. Drop it from the dependency markers, remove the #7659 note's
marker, move it to merged in the in-review table, and say that the
deprecated assignments[] row rejects trackers and landing_page_url by
name, so a stale sender is rejected there.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ge section

Its last line named a "Withdrawn from the deprecated tasks" section that
#8758 dropped in favor of the migration guide's closed-schema triage.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… surfaces

#8758 and #8767 merged and handed their release-doc text to #8883. Drop
#8767 from the dependency markers, and bring the lines that still
described withdrawn surfaces as current in line with main:

- media_buy.price_adjustments and media_buy.audience_evidence_targets are
  withdrawn at rc.0 and no longer registered (experimental table, feature
  index, What's new, migration guide).
- execution_readiness is on list_products; lineage is on buy_products and
  accept_proposal; collection cards leave get_products; the creative start
  gate is set through control_media_buy; counting_mechanisms leaves
  measurement_terms; assignment trackers and landing pages stay only on
  sync_creatives assign operations.
- Point the price-adjustment and target-audience links at the withdrawn
  sections; refresh the #8501 row of the in-review table.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@bokelley
bokelley force-pushed the docs/3-3-rc0-release-docs branch from ebf7851 to f40f974 Compare November 12, 2026 20:44

This branch has not been deployed

No deployments
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