Skip to content

fix(storyboard): deep-match capability gate values - #2545

Merged
bokelley merged 1 commit into
mainfrom
codex/deep-match-capability-gates
Aug 15, 2026
Merged

fix(storyboard): deep-match capability gate values#2545
bokelley merged 1 commit into
mainfrom
codex/deep-match-capability-gates

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • support JSON-valued contains and not_contains capability predicates
  • compare object entries structurally, independent of object key order
  • cover the adcp.governance_enforcement.tasks[] signal-governance gate through the real storyboard runner

Unblocks adcontextprotocol/adcp#6590.

Validation

  • npm run build
  • node --test-timeout=60000 --test-force-exit --test test/lib/storyboard-capability-gate.test.js
  • npm run typecheck
  • npm run lint (0 errors; existing warnings only)

@bokelley
bokelley enabled auto-merge (squash) August 15, 2026 23:40

@aao-secretariat aao-secretariat Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ladon verdict: Approve

Approve.

Replaces reference-equality Array.includes with a structural deep-equal (capabilityValuesEqual) for storyboard contains/not_contains capability gates, correctly fixing object-valued declarations that could never match under identity comparison. Deep-equal handling is sound (order-sensitive arrays, key-order-insensitive objects, array-vs-object mismatch guarded). Type widening to CapabilityPredicateValue is additive and non-breaking; the patch changeset matches the bugfix impact (no removed/renamed exports, no required-param flips, no wire-shape change). Tests cover the new branches.

No critical, high, or medium findings. No high-risk paths, no gated paths, no author-team gate. Falls through to row 9.

@bokelley
bokelley merged commit 1f9e54f into main Aug 15, 2026
32 checks passed
@bokelley
bokelley deleted the codex/deep-match-capability-gates branch August 15, 2026 23:44
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