Skip to content

feat: follow upstream domain → protocol rename in compliance pull#571

Merged
bokelley merged 5 commits into
mainfrom
bokelley/fix-compliance-pull
Apr 18, 2026
Merged

feat: follow upstream domain → protocol rename in compliance pull#571
bokelley merged 5 commits into
mainfrom
bokelley/fix-compliance-pull

Conversation

@bokelley

Copy link
Copy Markdown
Contributor

Summary

  • Upstream renamed domainprotocol in the AdCP schema index, tarball layout, and generated types. Runner now reads compliance/cache/{version}/protocols/, index exposes protocols, specialisms carry protocol as parent.
  • Public API follows: PROTOCOL_TO_PATH (was PROTOCOL_TO_DOMAIN), ComplianceIndexProtocol, BundleKind = 'protocol'. PROTOCOLS_WITHOUT_BASELINE removed — compliance_testing is no longer in supported_protocols; older agents still declaring it are skipped silently.
  • New upstream security_baseline storyboard targets runner-internal synthetic tasks (protected_resource_metadata, oauth_auth_server_metadata, assert_contribution) and $test_kit.* placeholders. Runner recognises these and skips with skip_reason: 'missing_test_harness' instead of misleading 'missing_tool'. overall_passed correctly reports false when every step skips. Full execution support is a follow-up.
  • docs/llms.txt flow summaries now omit runner-internal tasks so LLMs don't mistake them for agent tools. CLI storyboard list groups labelled "Protocols".

Test plan

  • npm run ci:quick — 3328/3328 pass
  • npm run sync-schemas pulls latest tarball cleanly
  • npm run generate-types / generate-registry-types regenerate in place
  • npm run generate-agent-docs regenerates docs/llms.txt (security storyboard appears, no misleading Flow)
  • Drift tests (protocol-mapping-drift, storyboard-drift, storyboard-completeness) pass against the new protocols/ layout
  • Dry-run a compliance run against a seller agent to confirm security_baseline reports overall_passed: false with skipped_count: 4 (not silent pass)

🤖 Generated with Claude Code

bokelley and others added 5 commits April 18, 2026 10:15
Upstream AdCP renamed `domain` → `protocol` across the schema index,
compliance tarball layout, and generated types. The runner now reads
`compliance/cache/{version}/protocols/`, the index field is `protocols`,
and specialisms expose `protocol` as their parent.

Renamed public API surface: PROTOCOL_TO_DOMAIN → PROTOCOL_TO_PATH,
ComplianceIndexDomain → ComplianceIndexProtocol, BundleKind 'domain' →
'protocol'. Removed PROTOCOLS_WITHOUT_BASELINE (compliance_testing is
no longer in supported_protocols; it's a top-level capability block).
Older agents that still declare compliance_testing are handled silently.

New universal security_baseline storyboard targets runner-internal
tasks (protected_resource_metadata, oauth_auth_server_metadata,
assert_contribution) and $test_kit.* substitution placeholders. The
runner recognizes these explicitly and skips with
'missing_test_harness' rather than the misleading 'missing_tool' —
overall_passed reports false when every step skips. Full execution
support is a follow-up.

docs/llms.txt flow summaries omit runner-internal tasks so LLMs don't
mistake them for tools agents must expose.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream refreshed governance_context doc strings (added JWS profile
guidance) after the initial sync in this branch. No structural changes.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
CI was running generate-wellknown-schemas and sync-version --auto-update
as part of the schema validation gate; our local ci:schema-check
doesn't include those. Regen picks up upstream brand.json additions
(agent scopes, jwks_uri for governance signing) and bumps
LIBRARY_VERSION to 5.1.0 to match package.json.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Third upstream schema refresh this session. Structural changes
(governance):
- rule_id → policy_id across feature result records
- violations[] → features[] with richer shape (status, explanation,
  confidence, policy_id)
- New exported types: PolicyEntry, PolicyCategory,
  PolicyEnforcementLevel, GovernanceDomain
- GovernanceConfiguration.policy?: string → policies?: PolicyEntry[]

No downstream consumers in this repo (verified via grep for .violations
and .rule_id). Build + tests still green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Picks up content-standards `policy` → `policies[]` and bumps
displayed library version to 5.1.0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@bokelley bokelley merged commit d9613f6 into main Apr 18, 2026
13 checks passed
bokelley added a commit that referenced this pull request Apr 18, 2026
Resolve conflicts with upstream changes since branch-point:
- #567 security_baseline storyboard runner (adds undici dep)
- #571 compliance domain → protocol rename
- #580 property-list account migration
- #586 brand/account invariant
- #587 RFC 9421 request-signing profile

Conflicts resolved:
- docs/TYPE-SUMMARY.md, docs/llms.txt — generated, took main's version
  then re-ran generate-agent-docs so the idempotency section is preserved.
- src/lib/types/{core,schemas,tools}.generated.ts — generated, took
  main's version then re-ran sync-schemas + generate-types.
- src/lib/server/create-adcp-server.ts — merged the two `idempotency`
  property declarations on AdcpCapabilitiesConfig (both branches added
  one); kept the optional/with-docs form from this branch and merged
  the "defaults to 86400 per spec" intent from main. Kept the
  clampReplayTtl-guarded capability declaration that reads from the
  wired idempotency store's ttlSeconds.
- src/lib/core/GovernanceMiddleware.ts — dropped the duplicate
  `idempotency_key: randomUUID()` that main added (this branch already
  mints the key via getOrMintOutcomeKey for the (checkId, outcome)
  tuple so retries share a key).
- test/lib/governance-stub.test.js — dropped duplicate idempotency_key
  entries from three test calls (merge union of this branch's hardcoded
  keys + main's randomUUID calls); kept randomUUID which matches the
  spec pattern at runtime.
- test/lib/storyboard-drift.test.js — trivial comment merge around the
  `replayed` envelope-path entry.
- test/lib/zod-schemas.test.js — merged cleanly via git.

Build: tsc --project tsconfig.lib.json clean.
Tests: 3571 pass / 0 fail.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
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