Repository navigation
fix(compliance): backport required_tools OR-gate fixes to 3.1.x (#6774 subset + canonical_format_validate_input) - #7406
Conversation
…s 17 storyboards (OR-gate bug) (adcontextprotocol#6774) * fix(compliance): drop get_adcp_capabilities from required_tools in billing_gate_dispatch and agent_notification_configs required_tools uses OR semantics in the adcp-client SDK. Listing get_adcp_capabilities alongside a capability-specific tool made the storyboard-level gate trivially satisfied for every conformant agent, causing billing_gate_dispatch and agent_notification_configs to run against agents that lack sync_accounts / sync_agent_notification_configs and fail at the first assertion instead of receiving a clean coverage-gap skip. Closes adcontextprotocol#6773 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M3evZsz4Y3971B5RZVxhKh * fix(compliance): sweep remaining 15 storyboards for get_adcp_capabilities OR-gate bug Same pattern as billing_gate_dispatch (issue adcontextprotocol#6773): required_tools uses OR semantics, so listing get_adcp_capabilities alongside a capability- specific tool made the gate trivially satisfied for every conformant agent. Affected: billing_out_of_band, canonical_supported_formats, evaluator_auth, native_localization (creative); account_timezone_{seller_fixed,buyer_selected, seller_assigned}, budget_cap_timezone_{account,fixed,override_rejected}, geo_{region_all_values_support,region_targeting,region_exclusion_support, place_targeting}, portfolio_routing_scope (media-buy). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M3evZsz4Y3971B5RZVxhKh --------- Co-authored-by: Claude <noreply@anthropic.com> (cherry picked from commit a1e72ec)
| "adcontextprotocol": patch | ||
| --- | ||
|
|
||
| Fix 17 compliance storyboards that incorrectly included `get_adcp_capabilities` in `required_tools` alongside capability-specific tools. Because `required_tools` uses OR semantics, listing a universal tool made the storyboard-level gate trivially satisfied for every conformant agent — agents lacking the actual capability tool (e.g. `sync_accounts`, `build_creative`, `get_products`) would enter the storyboard and fail at the first capability-specific step instead of receiving a clean coverage-gap skip. |
There was a problem hiding this comment.
(non-blocking) This changeset text is carried verbatim from #6774 on main and overstates this backport. This PR fixes 4 storyboards, not 17: billing_gate_dispatch, billing_out_of_band, canonical_supported_formats, evaluator_auth. Line 7 then names agent_notification_configs — which the PR body explicitly lists under Deliberate exclusions as not existing on 3.1.x — and "15 scenarios across the media-buy and creative protocol families," but zero media-buy scenarios are touched here. The 3.1.x changelog will claim fixes it did not ship. Reword to the four files actually changed on this line.
There was a problem hiding this comment.
Ladon verdict: Approve
Approve — clean backport with no blocking or medium findings.
This is a complete backport of the required_tools OR-gate fixes to 3.1.x: five one-line removals across four storyboards plus canonical_format_validate_input, matching precedent #6774. The reviewer verified scope completeness (signed-requests.yaml correctly retains get_adcp_capabilities as its sole gate), OR-gate semantics against the SDK runner tests, and confirmed no wire/schema surface is touched.
The single non-blocking observation is that the fix-storyboard-required-tools-or-gate.md changeset was copied verbatim from main and overstates the backport (references 17 storyboards, agent_notification_configs, and media-buy scenarios not on this line). This is a Low-severity changeset-wording issue where the underlying change is sound, and does not block.
No findings of medium-or-higher severity. high_risk is false, gated_paths is false, no author team gate, no prior decision. Rows 1–8 do not fire → row 9 approve.
|
@bokelley ready to merge when you have a minute — Why it is worth landing ahead of the One thing to confirm rather than assume: this touches #7405 (the |
|
@bokelley following up on the cut question, now that there is a concrete one to aim at. #7426 is open and will publish Three backports are sitting
If #7426 merges first, all three wait for 3.1.23. Merging them ahead of it puts the whole set in one cut, and for this PR specifically that is the difference between the gate fix existing and the gate fix reaching the line both my cards are graded on — 17 spurious failures per card, on 3.1.20 today. No urgency beyond the ordering. If 3.1.22 is not the intended target for these, say so and I will stop watching the release PR for it. Also still open above: this branch has no standing review. Ladon approved the first push and that approval was dismissed by the two follow-up commits, so #7405 (the |
…lidate_input required_tools (OR-gate) The per-storyboard gate (runner.js) admits a storyboard when any listed tool is present, while the suite selector (comply.js) requires all of them. With comply_test_controller in the list, every agent exposing the universal test controller was selected for this storyboard and then failed all 17 steps on the missing validate_input — on the hosted grader, 17 spurious failures on each of two registered agents (adcontextprotocol#7404). Same shape as adcontextprotocol#6774. Refs adcontextprotocol#7404 (bug 1 only). (cherry picked from commit 40c59b1)
Name only the four adcontextprotocol#6774 storyboards present on 3.1.x and keep the remaining hosted service work open. Refs adcontextprotocol#7404 (bug 1 only).
25c9824 to
36d33b2
Compare
There was a problem hiding this comment.
Ladon verdict: Approve
Approve — clean pass, no blocking findings.
No critical/high/medium findings. gated_paths is false and review_decision is APPROVED; no no-auto-approve team match; high_risk is false. Delta since the prior approve is three files: a one-line removal of comply_test_controller from canonical-format-validate-input.yaml required_tools (controller dependency preserved independently via requires: - controller and controller_seeding: true, matching the #6774 OR-gate pattern) plus two accurate patch changesets, one rewritten to correctly scope the backport to the four storyboards present on 3.1.x.
Rows 1–8 do not fire; falls through to row 9 → approve.
|
Release coordination hold — please do not merge the current head Current
That candidate is deliberately unpublished. This PR's head branch belongs to Required order remains:
The current bot approval is not a substitute for human review. No merge, push, or PR-state change is authorized by this note. |
* fix(protocol): scope idempotency replay to mutations (#7383) (#7384) * fix(protocol): scope idempotency replay to mutations * fix(protocol): preserve legacy get_products key optionality (cherry picked from commit 245108f) * Version Packages (#7385) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(schema): backport legacy format asset variants (#7423) * fix(tmp): backport single-user context privacy to 3.1 (#7424) * fix(tmp): backport single-user context privacy * fix(tmp): close expert-reviewed context privacy gaps * fix(tmp): backport request-aware context caching to 3.1 (#7425) * fix(tmp): backport request-aware context caching * fix(tmp): keep context hashes out of observability * Version Packages (#7426) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(release): correct v3.1.22 Context Match record (#7451) * fix(compliance): backport required_tools OR-gate fixes to 3.1.x (#6774 subset + canonical_format_validate_input) (#7406) * fix(compliance): drop get_adcp_capabilities from required_tools across 17 storyboards (OR-gate bug) (#6774) * fix(compliance): drop get_adcp_capabilities from required_tools in billing_gate_dispatch and agent_notification_configs required_tools uses OR semantics in the adcp-client SDK. Listing get_adcp_capabilities alongside a capability-specific tool made the storyboard-level gate trivially satisfied for every conformant agent, causing billing_gate_dispatch and agent_notification_configs to run against agents that lack sync_accounts / sync_agent_notification_configs and fail at the first assertion instead of receiving a clean coverage-gap skip. Closes #6773 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M3evZsz4Y3971B5RZVxhKh * fix(compliance): sweep remaining 15 storyboards for get_adcp_capabilities OR-gate bug Same pattern as billing_gate_dispatch (issue #6773): required_tools uses OR semantics, so listing get_adcp_capabilities alongside a capability- specific tool made the gate trivially satisfied for every conformant agent. Affected: billing_out_of_band, canonical_supported_formats, evaluator_auth, native_localization (creative); account_timezone_{seller_fixed,buyer_selected, seller_assigned}, budget_cap_timezone_{account,fixed,override_rejected}, geo_{region_all_values_support,region_targeting,region_exclusion_support, place_targeting}, portfolio_routing_scope (media-buy). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01M3evZsz4Y3971B5RZVxhKh --------- Co-authored-by: Claude <noreply@anthropic.com> (cherry picked from commit a1e72ec) * fix(compliance): drop comply_test_controller from canonical_format_validate_input required_tools (OR-gate) The per-storyboard gate (runner.js) admits a storyboard when any listed tool is present, while the suite selector (comply.js) requires all of them. With comply_test_controller in the list, every agent exposing the universal test controller was selected for this storyboard and then failed all 17 steps on the missing validate_input — on the hosted grader, 17 spurious failures on each of two registered agents (#7404). Same shape as #6774. Refs #7404 (bug 1 only). (cherry picked from commit 40c59b1) * fix(compliance): correct 3.1 backport changeset scope Name only the four #6774 storyboards present on 3.1.x and keep the remaining hosted service work open. Refs #7404 (bug 1 only). --------- Co-authored-by: Brian O'Kelley <bokelley@scope3.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: evgen <evgen@SCIS-TE-IPSUM> * Version Packages (#7486) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * fix(compliance): backport creative format-kind assertions to 3.1.x (#7554) * fix(compliance): backport governance storyboard routing to 3.1.x (#7555) * fix(jobs): backport heartbeat timeout to 3.1.x (#7557) * fix(release): preserve main schema discovery index * fix(release): preserve main changelog history * test(release): register forward-merged regressions --------- Co-authored-by: aao-release-bot[bot] <280565558+aao-release-bot[bot]@users.noreply.github.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ev <evgeny@gmail.com> Co-authored-by: Claude <noreply@anthropic.com> Co-authored-by: evgen <evgen@SCIS-TE-IPSUM>
Summary
required_toolsOR-gate fixes to the 3.1 maintenance line, which both registry cards grade on today (3.1.20).get_adcp_capabilitiesfromrequired_toolson 17 storyboards onmain. Four of them exist on3.1.x; this carries those four —billing_gate_dispatch,billing_out_of_band,canonical_supported_formats,evaluator_auth— and its changeset.billing_gate_dispatchis the one visible on a card: 1/2 on the signals agent, whosesync_accountsstep fails because the gate admitted the storyboard onget_adcp_capabilitiesalone.canonical_format_validate_inputfix from fix(compliance): drop comply_test_controller from canonical_format_validate_input required_tools (OR-gate) #7405: dropcomply_test_controllerfrom itsrequired_tools(17 spurious failures on each of two cards).Deliberate exclusions
3.1.x(account timezone, budget-cap timezone, geo region/place targeting, portfolio routing, native localization, agent notification configs). Nothing to fix there on this line.Provenance
Cherry-picked with
-xfrommaina1e72ec (#6774), with the 13 absent files dropped from the pick, then the companion fix commit. Net diff: five one-linerequired_toolsremovals and two changesets.Validation
node --test tests/lint-compliance-source-authority.test.cjson this branch — 6/6.tests/lint-compliance-packaged-refs.test.cjsneeds the installed toolchain; relying on CI for it.Refs #7404 (bug 1 and the
billing_gate_dispatchnote), #6773, #6774.