You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Request backport of #3844 / #3865 to the 3.0.x release line. The media_buy.supports_proposals capability flag is currently 3.1-only; sellers on 3.0.x cannot opt out of the proposal_finalize storyboard even when they don't generate proposals, which is causing false-negative compliance failures.
Background
PR #3865 (merged 2026-05-02) added media_buy.supports_proposals: boolean to get-adcp-capabilities-response.json and gated proposal_finalize.yaml with requires_capability: { path: media_buy.supports_proposals, equals: true }. This lets sellers without a proposal engine cleanly skip the scenario via capability_unsupported.
The fix is present in compliance/cache/3.1.0-rc.2/ but absent from compliance/cache/3.0.x/. The 3.0.x storyboard fires for any seller declaring supported_buying_modes: ["brief"] (or similar) and has no opt-out path.
Current behavior on 3.0.x
Verified against @adcp/sdk@7.11.1 bundled caches:
compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize.yaml → has requires_capability: media_buy.supports_proposals
compliance/cache/3.0.12/domains/media-buy/scenarios/proposal_finalize.yaml → no gating
schemas/cache/3.0.x/.../get-adcp-capabilities-response.json → no supports_proposals field
Affected adopters
InMobi seller agent (https://adcp-nonprod.exchange.inmobi.com/mcp) — currently testing against AdCP 3.0.12. Their capabilities declare supported_buying_modes: ["brief", "wholesale", "refine"] but they don't generate proposals, so get_products_brief returns null for /proposals and the storyboard fails. With supports_proposals: false declared (or omitted) on 3.0.x, the scenario would correctly skip.
Why this is patch-eligible
Same shape as #5042 / #5175 (Basic auth backport):
Additive schema field — supports_proposals is optional; omission is the default and existing 3.0.x agents continue to behave as before
Additive storyboard gate — requires_capability adds a skip path; agents that previously failed because they couldn't opt out now skip cleanly; agents that were passing continue to pass
No wire breakage — no required field added, no enum value changed, no shape modified
Summary
Request backport of #3844 / #3865 to the 3.0.x release line. The
media_buy.supports_proposalscapability flag is currently 3.1-only; sellers on 3.0.x cannot opt out of theproposal_finalizestoryboard even when they don't generate proposals, which is causing false-negative compliance failures.Background
PR #3865 (merged 2026-05-02) added
media_buy.supports_proposals: booleantoget-adcp-capabilities-response.jsonand gatedproposal_finalize.yamlwithrequires_capability: { path: media_buy.supports_proposals, equals: true }. This lets sellers without a proposal engine cleanly skip the scenario viacapability_unsupported.The fix is present in
compliance/cache/3.1.0-rc.2/but absent fromcompliance/cache/3.0.x/. The 3.0.x storyboard fires for any seller declaringsupported_buying_modes: ["brief"](or similar) and has no opt-out path.Current behavior on 3.0.x
Verified against
@adcp/sdk@7.11.1bundled caches:compliance/cache/3.1.0-rc.2/domains/media-buy/scenarios/proposal_finalize.yaml→ hasrequires_capability: media_buy.supports_proposalscompliance/cache/3.0.12/domains/media-buy/scenarios/proposal_finalize.yaml→ no gatingschemas/cache/3.0.x/.../get-adcp-capabilities-response.json→ nosupports_proposalsfieldAffected adopters
InMobi seller agent (
https://adcp-nonprod.exchange.inmobi.com/mcp) — currently testing against AdCP 3.0.12. Their capabilities declaresupported_buying_modes: ["brief", "wholesale", "refine"]but they don't generate proposals, soget_products_briefreturnsnullfor/proposalsand the storyboard fails. Withsupports_proposals: falsedeclared (or omitted) on 3.0.x, the scenario would correctly skip.Why this is patch-eligible
Same shape as #5042 / #5175 (Basic auth backport):
supports_proposalsis optional; omission is the default and existing 3.0.x agents continue to behave as beforerequires_capabilityadds a skip path; agents that previously failed because they couldn't opt out now skip cleanly; agents that were passing continue to passProposed change
Cherry-pick the relevant pieces of PR #3865 onto the 3.0.x line:
media_buy.supports_proposals: boolean(optional) tostatic/schemas/source/protocol/get-adcp-capabilities-response.jsonwith the commitment-flavored description from Add supports_proposals capability flag to media_buy block in get_adcp_capabilities #3844requires_capability: { path: media_buy.supports_proposals, equals: true }tostatic/compliance/source/domains/media-buy/scenarios/proposal_finalize.yamlReferences