feat(testing): replay Trusted Match Context router vectors - #2483
Conversation
There was a problem hiding this comment.
Ladon verdict: Approve
Approve.
Adds a raw-HTTP Trusted Match Context router replay probe (replay_trusted_match_context_vector) with runner-hosted provider fixtures, an operator-owned registration seam, and a coherent redactSecrets __proto__ fix. Fail-closed to not_applicable with no MCP/A2A fallback; router POST has an explicit AbortController+timeout and both request/response bodies are byte-capped. Witness contract intact — grades the actual router response with no fabrication or reshaping. Changeset present and correctly scoped for the additive surface.
No Critical/High/Medium findings. Three low findings noted (redactSecrets fix correctness, minor request-precedence wording vs CONFORMANCE.md, consumeBody not destroying the oversize stream) — all stylistic/speculative, non-blocking.
Decision path: no critical/high (row 1 n/a); gated_paths false (row 2 n/a); high_risk false (rows 3/5 n/a); no medium findings (rows 4/8 n/a); no prior escalation (row 6 n/a); no no-auto-approve team match (row 7 n/a). Falls through to row 9 → approve. Note: review_decision is REVIEW_REQUIRED, but the gated-paths gate only applies when gated_paths is true, which it is not here.
Summary
replay_trusted_match_context_vectorstoryboard primitivePOST /contextresponse through normal storyboard validationsnot_applicablewhen the registration seam is unavailable, with no MCP/A2A fallbackWhy
Trusted Match Context routers expose raw HTTP rather than an AdCP tool. The existing runner could not exercise that trust boundary or replay the provider-attribution vectors from adcontextprotocol/adcp#6252.
The vector/schema source is being introduced by adcontextprotocol/adcp#6281. This SDK primitive can land independently and will consume that packaged vector once the protocol change is published.
Validation
npm run build:libnpx tsc --project tsconfig.lib.json --noEmitnpm run lint(0 errors; pre-existing warnings only)git diff --checkCloses #2479