Skip to content

Reference seller storyboard is not green against current TS 3.1 runner #825

@bokelley

Description

@bokelley

Summary

The reusable reference-seller storyboard harness added in #818 exists and can be invoked from the TS SDK workflow with ADCP_SDK_TARBALL, but the Python reference seller is not currently green against the current TS @adcp/sdk 3.1.0-beta.3 storyboard runner.

This blocks adcontextprotocol/adcp-client#1916 from pinning a Python tag and making the cross-repo interop workflow a release gate.

Repro

From a TS SDK checkout with a built candidate tarball:

git checkout 9b13320a9b3b81420a85ee0c9ab5ede0d29ac70d
ADCP_SDK_TARBALL=/path/to/adcp-sdk-8.1.0-beta.0.tgz \
ADCP_PORT=3101 \
STORYBOARD_RESULT_PATH=/tmp/storyboard-result.json \
SELLER_LOG_PATH=/tmp/storyboard-seller.log \
./scripts/ci/run_storyboard_reference_seller.sh

I ran this locally using the TS-side workflow prototype from adcontextprotocol/adcp-client#1916 against Python commit 9b13320a9b3b81420a85ee0c9ab5ede0d29ac70d (#818 merge commit).

Actual result

The harness runs, detects the controller, but exits non-zero with overall_status: partial:

Status:    partial
Steps:     19 passed, 18 failed, 53 skipped
controller_detected: true

Failure groups:

12x VALIDATION_ERROR: get_products failed: get_products response failed schema validation at /cache_scope: 'cache_scope' is a required property
 2x VALIDATION_ERROR: create_media_buy failed: create_media_buy response failed schema validation at /status: value not in allowed enum (9 options)
 1x expected TERMS_REJECTED, got PRODUCT_NOT_FOUND
 1x expected PACKAGE_NOT_FOUND, got MEDIA_BUY_NOT_FOUND
 2x NOT_FOUND from comply_test_controller setup steps

The dominant blocker is get_products: examples/v3_reference_seller/src/platform.py returns GetProductsResponse(products=products) without cache_scope, while response validation intentionally does not infer it.

The seller log also reports the same schema warnings:

Schema validation warning (response) for get_products: /cache_scope 'cache_scope' is a required property
Schema validation warning (response) for create_media_buy: /status value not in allowed enum (9 options)

Expected result

A Python tag containing scripts/ci/run_storyboard_reference_seller.sh should pass the current TS candidate runner so the TS repo can:

  1. build a candidate @adcp/sdk tarball,
  2. check out the pinned Python tag,
  3. invoke the Python-owned harness with ADCP_SDK_TARBALL, and
  4. use the result as a blocking release/PR interop gate.

Notes

On the TS side, one local issue found during this repro was fixed separately: AJV duplicate $id failures when compiling flat/core schemas before bundled response schemas. After that fix, the remaining red signal is the Python reference seller contract mismatch above.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions