fix(schemas): restore adcp_major_version in compact beta.0 request schemas - #6802
Conversation
…hemas The 3.2.0-beta.0 snapshot for buy-products, accept-proposal, and control-media-buy was cut before the source schemas gained the deprecated adcp_major_version field (adcontextprotocol#6647). Combined with additionalProperties: false, conforming SDK buyers that emit both version fields (required through 3.x per the spec) fail MCP input validation before the seller handler runs. Patches the 18 affected dist files across all beta.0 output paths (bundled, MCP, profiles, model-context) to include adcp_major_version with the same definition used in the version envelope and in all subsequent beta snapshots. Also fixes compact-version-envelope.test.cjs which encoded the bug as expected behavior, and adds two regression guards to lint-version-envelope.test.cjs: - source lint: every request schema with adcp_version must also declare adcp_major_version - dist lint: every versioned bundled dist schema must preserve both version fields Refs adcontextprotocol#6649
|
This approach cannot merge because it rewrites files inside the already-published The source schemas and later beta artifacts already contain |
|
@bokelley's analysis is correct: the failing "Build and static checks" run enforces the immutable-artifact policy, and @garvitkaushik-123 — two paths forward:
Either way, the current approach of editing Generated by Claude Code |
|
Closing because the proposed changes rewrite the published 3.2.0-beta.0 release artifact. The forward source and later beta artifacts already contain the field; beta.0 remains immutable. A documentation-only known-limitation follow-up can be opened separately if needed. |
|
Thanks for clarifying, and sorry I missed the immutable-artifact policy. I understand why the PR was closed. |
Summary
The 3.2.0-beta.0 frozen snapshots for
buy-products,accept-proposal, andcontrol-media-buyrequest schemas were published beforeadcp_major_versionwas added to the source schemas in #6647. Since these schemas setadditionalProperties: false, conforming SDK buyers that emit both version fields (as the spec requires through 3.x) fail MCP input validation before the seller handler runs.Subsequent betas (beta.1+) are not affected — the build picked up the source change correctly.
Changes
adcp_major_versionwith the correct representation for each path type (fully inlined for bundled,$refto$defsfor MCP, absolute URL$reffor standalone)tests/compact-version-envelope.test.cjs— removedCOMPACT_SCHEMAS_WITHOUT_MAJORset that encoded the bug as expected behavior; all tools now expectadcp_major_version: 3tests/lint-version-envelope.test.cjs— added two regression guards:adcp_versionmust also declareadcp_major_versionVerification
compact-version-envelope.test.cjspasses (SDK validates all 7 lifecycle tools against the patched beta.0 source schemas)lint-version-envelope.test.cjspasses (4 tests including both new guards)$reftargets in MCP schemas resolve correctly (the$defs["external:core/version-envelope.json"]block already containedadcp_major_versionin beta.0 — only the property-level reference was missing)Refs #6649