feat(training-agent): JSON-only Accept + idempotency storyboard fixes (group C start)#2832
Merged
Conversation
…ard fixes - MCP Streamable HTTP transport requires Accept to list both application/json AND text/event-stream or returns 406. SDK storyboard probes send json-only and fail the idempotency missing-key vector. Rewrite Accept (including Node rawHeaders which @hono/node-server actually reads) to include SSE when client sent json-only, and enable enableJsonResponse on the transport for single-shot JSON responses. - Emit replayed:false on create_media_buy fresh responses (universal idempotency storyboard requires the literal false via allowed_values, not omission). Scoped to create_media_buy; adcp-client#774 tracks making all response schemas passthrough so we can emit everywhere. - Drop `recovery: correctable` from IDEMPOTENCY_CONFLICT envelope — SDK's idempotency.conflict_no_payload_leak assertion enforces a narrow allowlist (code, message, status, retry_after, correlation_id, request_id, operation_id) against stolen-key read oracle. 43/56 clean, 321 steps passing (up from 317). idempotency 3F → 1F. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced Apr 22, 2026
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
Starts Group C (individual specialisms). Closes 4 more storyboard steps;
idempotencygoes from 3 failures → 1.rawMcpProbe(used for `omit_idempotency_key` vectors) sends JSON-only and hit that wall. Rewrite the header (including Node's `rawHeaders` array — which `@hono/node-server` actually reads) to include SSE when client sent JSON-only, enable `enableJsonResponse` on the transport for single-shot JSON responses. No hot-path regression (buyer agents using @adcp/client already send both).Impact
Test plan
idempotencyconfirmed +2 steps closingFollow-ups
🤖 Generated with Claude Code