Skip to content

feat(examples): handle @adcp/sdk@7.10.x storyboard scenarios (closes #782)#788

Merged
bokelley merged 2 commits into
mainfrom
bokelley/issue-782-sdk-7-10-x
May 22, 2026
Merged

feat(examples): handle @adcp/sdk@7.10.x storyboard scenarios (closes #782)#788
bokelley merged 2 commits into
mainfrom
bokelley/issue-782-sdk-7-10-x

Conversation

@bokelley
Copy link
Copy Markdown
Contributor

Summary

Bumps ADCP_SDK_VERSION in .github/workflows/ci.yml from 7.9.0 to 7.10.2. Closes #782.

The two failing scenarios called out in the issue both pass against examples/seller_agent.py on @adcp/sdk@7.10.2 with no example-side changes:

  • media_buy_seller/measurement_terms_rejected/create_media_buy_aggressive_terms — the scenario uses $context.product_id from get_products. seller_agent.py's get_products returns the static PRODUCTS catalog starting with premium-homepage, which valid_ids already contains. The existing TERMS_REJECTED guard (variance<5 or window not in c3/c7) fires correctly on the aggressive payload (max_variance_percent: 0, window: c28) before any PRODUCT_NOT_FOUND fall-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 preceding setup phase creates a real media buy and stores it in $context.media_buy_id. The update_unknown_package step uses that real id with a fabricated package_id, so the seller's existing media-buy-then-package precedence ordering returns PACKAGE_NOT_FOUND correctly. 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.json lived at dist/lib/schemas-data/... instead of the path the runtime looked up at schemas/cache/...). CI worked around it by copying tests/fixtures/v1-canonical-mapping.json into 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 misleading TERMS_REJECTED → PRODUCT_NOT_FOUND and PACKAGE_NOT_FOUND → MEDIA_BUY_NOT_FOUND failures. 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.py storyboard suite passes 57/57 graded steps against @adcp/sdk@7.10.2 locally (2 unchanged list_creatives missing-tool skips).
  • Existing pytest tests/ passes (4938 passed, 34 skipped, 1 xfailed).
  • CI confirms the bump green across all 4 storyboard jobs (examples/seller_agent.py, multi_platform_seller, sales-proposal-mode, v3 reference seller (translator)).
  • No new failures vs. 7.9.0 baseline on the other three storyboard runners (the multi-platform seller has 5 pre-existing failures on both 7.9.0 and 7.10.2 that are not part of this PR's scope).

🤖 Generated with Claude Code

…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>
Copy link
Copy Markdown

@aao-ipr-bot aao-ipr-bot Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-11 is 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 xfailed on pytest 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. Per release-please-config.json (bump-minor-pre-major: true), this will bump adcp's minor version for a CI-only change. ci: or chore(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.

@bokelley bokelley enabled auto-merge (squash) May 22, 2026 10:50
@bokelley bokelley merged commit 7ef1b1a into main May 22, 2026
23 checks passed
@bokelley bokelley deleted the bokelley/issue-782-sdk-7-10-x branch May 22, 2026 10:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(examples): update seller_agent.py to handle @adcp/sdk@7.10.x storyboard scenarios

1 participant