fix(compliance): add sample_request to webhook-emission trigger steps (#2758) - #2779
Merged
Conversation
…#2758) The three trigger steps in universal/webhook-emission.yaml described passing push_notification_config.url={{runner.webhook_url:<step_id>}} in their narratives but had no sample_request block. The runner only substitutes placeholders that appear in sample_request, so no webhook URL reached the agent — every expect_webhook step then timed out with "webhook never arrived" and the three failing phases blocked all webhook-emitting agents. Each trigger now carries a minimal operation-agnostic sample_request; operation-specific required fields come from whichever test_kit resolves primary_webhook_emitter. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…hook_operation Reviewer feedback: the extra paragraph explaining why push_notification_config and idempotency_key are the two universal fields diverged from the parallel `expected` blocks on trigger_retry_scenario and trigger_signed_webhook. The narrative above each step already explains the 9421-baseline point. 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
sample_requestblock to all three trigger steps inuniversal/webhook-emission.yaml(trigger_webhook_operation,trigger_retry_scenario,trigger_signed_webhook).push_notification_config.url = {{runner.webhook_url:<step_id>}}(noauthentication, so the 9421 baseline is in effect), a generatedidempotency_key(keeps the trigger call itself retry-safe), and acontext.correlation_id.create_media_buyetc.) remain the responsibility of whichever test_kit resolves$test_kit.operations.primary_webhook_emitter.Why
The three steps described passing
push_notification_config.url = {{runner.webhook_url:<step_id>}}in prose but had nosample_request. The runner's mustache expander only substitutes placeholders that appear in a step'ssample_request, so no webhook URL ever reached the agent under test —expect_webhook_presence,expect_key_stable_across_retries, andexpect_signature_validall timed out with "webhook never arrived" across every webhook-emitting agent. All three phases failed vacuously for the same bug; fixing onlytrigger_webhook_operation(as the issue proposed) would leave the other two phases broken under the same pattern.The lint from #2768 skips
$test_kit.*schema_refs, so the new blocks don't need an allowlist entry.Closes #2758.
Test plan
npm run test:storyboard-sample-request-schema— passes (no new drift)npm run test:storyboard-scoping,branch-sets,contradictions,context-entity,auth-shape,test-kits— passnpm run test:unit— 631 passednpm run typecheck— clean🤖 Generated with Claude Code