feat(examples): handle @adcp/sdk@7.10.x storyboard scenarios (closes #782)#788
Merged
Conversation
…782) Bump ADCP_SDK_VERSION from 7.9.0 to 7.10.2 in CI workflow. The original failures reported in #782 were observed against 7.10.1, which shipped a packaging regression (v1-canonical-mapping.json under the wrong path). 7.10.2 fixes that lookup path. The two scenarios called out in the issue (measurement_terms_rejected, invalid_transitions/update_unknown_package) both pass against examples/seller_agent.py on 7.10.2 with no example-side changes: - measurement_terms_rejected: get_products returns premium-homepage from the static catalog, $context.product_id resolves cleanly, and the existing TERMS_REJECTED guard (variance<5 or window not in c3/c7) fires before the PRODUCT_NOT_FOUND fall-through. The seller's error-code precedence is already correct. - invalid_transitions/update_unknown_package: the scenario uses a real $context.media_buy_id from a preceding create_media_buy, so the seller's existing media_buy-then-package precedence ordering returns PACKAGE_NOT_FOUND correctly. Verified locally: examples/seller_agent.py passes 57/57 graded steps against @adcp/sdk@7.10.2 (2 list_creatives skips unchanged). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
LGTM. Follow-ups noted below.
Single-line bump of ADCP_SDK_VERSION from 7.9.0 to 7.10.2. PR description and commit body lay out exactly why no example-side change was needed — 7.10.1 was the packaging regression (canonical mapping at dist/lib/schemas-data/... vs. runtime lookup at schemas/cache/...), 7.10.2 fixes the lookup path, and examples/seller_agent.py's existing error-code precedence (TERMS_REJECTED guard, media-buy-then-package ordering) already lines up with the 7.10.x scenario shapes.
Things I checked
- Diff is exactly the one-line bump at
.github/workflows/ci.yml:12. No collateral changes. - Cache invalidation note in the workflow comment at
.github/workflows/ci.yml:10-11is accurate — the env var is the cache key, so bumping it busts the install cache on the next run. - Skip-everything list applies: pure dependency bump, no
src/adcp/touched, no public API surface, no generated types. No experts called. - Local validation in the PR body is concrete and quantified: 57/57 graded steps on
seller_agent.py,4938 passed, 34 skipped, 1 xfailedonpytest tests/. - The two unchecked test-plan items (
CI confirms green across all 4 storyboard jobs,no new failures vs. 7.9.0 baseline) are CI-gated, not manual — author already noted the pre-existing multi-platform-seller failures are out of scope. Not a manual-verification gap.
Follow-ups (non-blocking — file as issues)
- Conventional-commit prefix triggers an unwanted minor bump. The commit is
feat(examples):but the diff is purely.github/workflows/ci.yml. Perrelease-please-config.json(bump-minor-pre-major: true), this will bumpadcp's minor version for a CI-only change.ci:orchore(ci):would have been the right shape — neither triggers a version bump pre-major. Worth a follow-up on the commit-prefix convention for CI-pinned-dep bumps; not blocking this PR since the semver signal isn't a breaking-change miss, just a noisier bump than intended.
LGTM.
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
Bumps
ADCP_SDK_VERSIONin.github/workflows/ci.ymlfrom7.9.0to7.10.2. Closes #782.The two failing scenarios called out in the issue both pass against
examples/seller_agent.pyon@adcp/sdk@7.10.2with no example-side changes:media_buy_seller/measurement_terms_rejected/create_media_buy_aggressive_terms— the scenario uses$context.product_idfromget_products.seller_agent.py'sget_productsreturns the staticPRODUCTScatalog starting withpremium-homepage, whichvalid_idsalready contains. The existingTERMS_REJECTEDguard (variance<5 or window not inc3/c7) fires correctly on the aggressive payload (max_variance_percent: 0,window: c28) before anyPRODUCT_NOT_FOUNDfall-through. The seller's error-code precedence is already correct for the 7.10.x scenario shape.media_buy_seller/invalid_transitions/update_unknown_package— the scenario's precedingsetupphase creates a real media buy and stores it in$context.media_buy_id. Theupdate_unknown_packagestep uses that real id with a fabricated package_id, so the seller's existing media-buy-then-package precedence ordering returnsPACKAGE_NOT_FOUNDcorrectly. No reordering needed.Why the 7.10.1 failures didn't reproduce on 7.10.2
The original failures in the #782 report were observed against
@adcp/sdk@7.10.1, which shipped a packaging regression (v1-canonical-mapping.jsonlived atdist/lib/schemas-data/...instead of the path the runtime looked up atschemas/cache/...). CI worked around it by copyingtests/fixtures/v1-canonical-mapping.jsoninto the SDK install — but that fixture was missing the new 7.10.x scenario schema entries, so the runner fell through to the wrong validators and surfaced misleadingTERMS_REJECTED → PRODUCT_NOT_FOUNDandPACKAGE_NOT_FOUND → MEDIA_BUY_NOT_FOUNDfailures. 7.10.2 fixes the lookup path; with the canonical mapping resolving from the SDK's own ship, both scenarios now validate against the correct schemas and the example passes unchanged.Test plan
examples/seller_agent.pystoryboard suite passes 57/57 graded steps against@adcp/sdk@7.10.2locally (2 unchangedlist_creativesmissing-tool skips).pytest tests/passes (4938 passed, 34 skipped, 1 xfailed).examples/seller_agent.py,multi_platform_seller,sales-proposal-mode,v3 reference seller (translator)).🤖 Generated with Claude Code