fix: improve comply runner signal-to-noise against real agents#483
Merged
Conversation
Skip steps for missing tools, detect unresolved context vars, retry on rate limits, and send multi-format creatives in sync_creatives builder. Closes #482 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
4 tasks
bokelley
added a commit
that referenced
this pull request
May 3, 2026
…only upstream URL differs (#1491) The lifecycle-state-and-sandbox-authority proposal previously framed mock mode as "adopter's DecisioningPlatform methods do not run; SDK forwards tool calls out-of-process to bin/adcp.js mock-server over HTTP." That was wrong on two fronts: 1. The current bin/adcp.js mock-server is per-specialism upstream-API REST fixtures (Celtra/GAM/TikTok shapes), not an AdCP MCP surface. It models the upstream APIs, not the AdCP wire. 2. The whole point of the adapter layer is to bridge AdCP <-> upstream API. "Adopter methods don't run" misses what the adapter does. In mock mode the adapter IS what runs — it just talks to a fixture instead of a real upstream. Corrected framing: for mock-mode accounts, the framework swaps the adapter's upstream URL to point at bin/adcp.js mock-server <specialism>; adapter code is identical across live/sandbox/mock. Caught while implementing Phase 2 in Python (PR #487 in adcp-client- python). Sections amended: - Thesis (arrow + table row) - "Mock (compliance / agent dev)" - "How the SDK reaches the mock" - "Why 'mock' is its own mode" - "Phase 2 — mock-mode upstream URL routing" (renamed) - "Resolved decisions" — mock-mode routing contract - New "Implementation status" section linking Python PRs #483 and #487 Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
missing_toolskip reason) instead of counting as failures$contextplaceholders and skip withdependency_failedinstead of sending garbage to agentssync_creativesrequest builder to send creatives for all discovered formats, not just the first (Storyboard runner: sync_creatives request builder only sends 1 creative #482)mapStepToTestStepto preserve runner's skip semantics (skips no longer incorrectly counted as failures)extractErrorDatato handle nested JSON in error messagesReal-agent validation results (before → after)
publisher_domains,statusenum,briefvalidationCloses #482
Test plan
npm testpasses (2558 tests, 0 failures)🤖 Generated with Claude Code