Skip to content

schemas: withdraw signing_profile and metric_id, restore evaluator as deprecated (#8501 entries 2, 3, 6, 26) - #8854

Open
KonstantinMirin wants to merge 1 commit into
adcontextprotocol:mainfrom
KonstantinMirin:schemas/8501-entries-2-3-6-26
Open

KonstantinMirin wants to merge 1 commit into
adcontextprotocol:mainfrom
KonstantinMirin:schemas/8501-entries-2-3-6-26

Conversation

@KonstantinMirin

Copy link
Copy Markdown
Collaborator

Summary

This PR does entries 2, 3, 6 and 26 of the disposition table on #8501, the ones I said I'd take. A 3.3 minor release shouldn't add a property to a schema that 3.2 published closed, or remove an enum value 3.2 published (DR-0036). Neither field is in 3.2.8 or 3.2.9; both shipped only in 3.3 betas, so no stable release breaks.

Part of #8501.

Entry Field What happens
2, 3 signing_profile on core/notification-config.json and core/agent-notification-config.json Withdrawn. Both rows carry ext, so DR-0019 lets them stay closed, and a per-registration profile matters only until 4.0 removes the RFC 9421 profile. push_notification_config, reporting_webhook and artifact_webhook keep it.
6 metric_id on core/canonical-performance-standard.json, plus the two deprecated-task rows: core/performance-standard.json and required_performance_standards in core/product-offer-filters.json Withdrawn and added to the 4.0 list. It selects which vendor value decides a signed performance standard, so a 3.2 buyer would read the same standard differently.
26 evaluator in core/x-entity-types.json Restored as a deprecated value, with its definition. The 3.2.8 versioning page says "Existing values are never removed or renamed." The evaluator_id removal (#8045) stands.

Changes

Entries 2 and 3. signing_profile and the not: { required: [authentication, signing_profile] } rule leave both notification configs. Their authentication descriptions go back to saying that without the block the seller signs with adcp/webhook-signing/v1. The webhook_signing.profiles description in get_adcp_capabilities now lists only the registrations that still carry the field. The field shipped in 3.3.0-beta.0 through 3.3.0-beta.5 (#7894).

Entry 6. metric_id and its viewability/completion_rate guard leave all three schemas. canonical-performance-standard.json, performance-standard.json and the performance-standard-metric enum are byte-for-byte their 3.2.8 versions again; in product-offer-filters.json only the one line goes, and required_vendor_metrics[].metric_id, which 3.2 published, stays. The docs that #8436 added (pricing models, accountability, measurement taxonomy, the create_media_buy and get_products tables, the attention example in optimization reporting) go back to their 3.2 meaning. The field shipped in 3.3.0-beta.1 through 3.3.0-beta.5 (#8436).

The 4.0 compatibility registry gets performance_standard_metric_id_required_in_4_0 (issue #8394, observed_by: none), and the 4.0 page gets a matching section that keeps the design and points at commit 43447c15b, which has the schemas, the test and the judging rules.

Entry 26. evaluator is back in the enum and in x-entity-definitions, listed in x-deprecated-enum-values with a note that no 3.3 field carries it. No schema has x-entity: evaluator, and evaluator-spec.json still has no evaluator_id. The migration guide's evaluator section no longer says the value was removed.

Baseline. scripts/lint-additive-minor-baseline.json drops the four rows for these entries, from 38 to 34. None of them needs a corrections-register entry: after this PR the three schemas don't differ from 3.2.8 at these locations.

Docs. The migration guide, What's new, the release notes and the 3.3 beta page say what to remove: metric_id under "Withdrawn from 3.3, planned for 4.0", and signing_profile in the webhook signing section of the migration guide and a short "Withdrawn after beta.5" table on the beta page. The Web Bot Auth profile page, experimental status and the release notes' experimental table now name the registrations that carry signing_profile.

Tests. tests/performance-standard-metric-id.test.cjs is replaced in test:schemas by tests/closed-schema-additions-withdrawn.test.cjs. It checks that both fields are gone, that the closed schemas reject them, that the live webhook configs keep signing_profile, that the registry has the 4.0 entry, and that evaluator is back and deprecated. 12 of its 16 cases fail on main; the other four check what must stay. tests/x-added-in-3-3-sweep.test.cjs and tests/wba-profile-vectors.test.cjs drop the withdrawn sites.

The training agent doesn't read either field, so it doesn't change.

Expected conflicts

Each is a short manual merge, and I'll rebase on whichever lands first.

Testing

  • npm run build:schemas: pass.
  • npm run test:schemas: pass, including the new test.
  • npm run typecheck: pass.
  • node --test tests/lint-additive-minor.test.cjs and npm run test:additive-minor: pass. The lint reports 34 recorded changes and 0 new against 3.2.8.
  • node scripts/lint-v4-compatibility-registry.cjs and npm run test:v4-compatibility-registry: pass.
  • npm run test:wba-profile-vectors, tests/schema-deprecation-metadata, tests/lint-storyboard-context-entity, tests/mcp-schema-projection, tests/mcp-schema-analysis: pass.
  • npm run build:compliance -- --check, test:docs-nav, check:owned-links, lint:schema-links, test:addie-tools, and node scripts/check-changeset-protocol-scope.cjs origin/main: pass.
  • The local pre-commit unit suite passed except one unrelated test that timed out under machine load (tests/ipr-check-and-record.test.mjs, which passes on its own). I didn't run the storyboard matrix locally; CI's run is the one to read.

Merge timing

Merges after the #8501 consent window closes on Fri 2026-11-13.

… deprecated

Entries 2, 3, 6 and 26 of the adcontextprotocol#8501 disposition table.

- notification-config and agent-notification-config: withdraw
  signing_profile, which 3.3 beta added to closed schemas. Deliveries
  without an authentication block are signed with adcp/webhook-signing/v1.
- performance standards: withdraw metric_id and restore the 3.2.8
  schemas. A 4.0 registry entry, performance_standard_metric_id_required_in_4_0,
  keeps the design for the major.
- x-entity-types: restore evaluator as a deprecated value, with its
  3.2.8 definition.
@mintlify

mintlify Bot commented Nov 9, 2026

Copy link
Copy Markdown

Preview approval required

This pull request comes from a fork, so Mintlify won't build a preview until someone with write access approves commit 70af985.

Approve preview

@bokelley

Copy link
Copy Markdown
Contributor

@KonstantinMirin, a check against the Nov 9 decision to open the 3.x schemas that were closed by accident (re-triage posted on #8501):

  • Entries 6 (metric_id) and 26 (evaluator restored as deprecated): these match the re-triage. metric_id stays withdrawn because it changes what a signed term means, and evaluator is restored.
  • Entries 2 and 3 (signing_profile on notification configs): the re-triage marks these moot. The withdrawal was there only because the parent schema was closed, and fix(schemas): open the 3.3 schemas that were meant to be open #8866 opens it. So signing_profile would stay in 3.3.

Was there a reason beyond closure for withdrawing signing_profile, such as a signed-meaning or security concern? If not, could this PR drop entries 2 and 3 and keep 6 and 26? The RC release docs (#8883) currently describe signing_profile as staying.

@KonstantinMirin

Copy link
Copy Markdown
Collaborator Author

Hi Brian, no, there was no signed-meaning or security concern. I'll drop entries 2 and 3 and keep 6 and 26.

The description's other point, that a per-registration profile matters only until 4.0 removes the RFC 9421 profile, is a reason to keep the field, not to withdraw it. During 3.x, signing_profile is how a buyer moves these registrations to web-bot-auth. Without it, the seller signs with the deprecated adcp/webhook-signing/v1.

I'll rebase on main now that #8866 has landed.

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.

2 participants