feat(storyboards): require full proposal_finalize chain after @adcp/sdk@6.10.0#565
Merged
Merged
Conversation
…dk@6.10.0 The storyboard runner v6.10.0 closed the sync_accounts cascade gap (adcp#4053, adcp-client#1146/#1545) — the sole-stateful-step exemption now lets refine_proposal / finalize_proposal / accept_proposal run end-to-end against agents that don't implement sync_accounts. CI assertion was previously gated to setup + brief_with_proposals (the only phases the runner could execute on the older SDK). Now asserts all 5 phases pass, with per-scenario likely-cause hints in the failure message so a contributor breaking finalize wiring gets pointed at the right module + design-doc anchor. Adapter fix: examples/sales_proposal_mode_seller/src/platform.py incorrectly required either proposal_id OR ctx.recipes — but the storyboard runner accepts a committed proposal by sending packages[] directly (LLM-derived from the committed proposal's allocations). The check now allows three valid shapes: proposal_id alone (framework hydrates ctx.recipes), packages[] alone (regular create_media_buy flow), or both empty (rejected as INVALID_REQUEST). Documented in the method docstring. Storyboard locally: 5/5 phases PASS (was 2/5). Test suite unaffected.
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
Storyboard runner `@adcp/sdk@6.10.0` closed the sync_accounts cascade gap (adcp#4053, adcp-client#1146/#1545) — the sole-stateful-step exemption now lets `refine_proposal` / `finalize_proposal` / `accept_proposal` run end-to-end against agents that don't implement `sync_accounts`. Locally with 6.10.0:
```
overall: passing
PASS setup
PASS brief_with_proposals
PASS refine_proposal ← NEW (was skipping)
PASS finalize_proposal ← NEW (was skipping)
PASS accept_proposal ← NEW (was skipping)
```
CI assertion was gated to `setup` + `brief_with_proposals` (the only phases the runner could execute on older SDKs). Now requires all 5 phases pass, with per-scenario likely-cause hints in the failure message so a contributor breaking finalize wiring gets pointed at the right module + design-doc anchor.
Adapter fix
`examples/sales_proposal_mode_seller/src/platform.py` had a real bug: the create_media_buy validation required either `proposal_id` OR `ctx.recipes` populated, but the storyboard runner accepts a committed proposal by sending `packages[]` directly (LLM-derived from the committed proposal's allocations). Three valid shapes now: `proposal_id` alone, `packages[]` alone, both empty (rejected). Documented in the method docstring.
Test plan
🤖 Generated with Claude Code