spec(training-agent): recover storyboard CI floors after 5.8.1 bump (#2667)#2673
Merged
Conversation
#2666 restored the training-agent responses that the @adcp/client 5.6→5.8.1 bump had broken (creative format fixtures, get_media_buys total_budget, validate_property_delivery shape) but didn't bump the CI non-regression floors. Raise the gate to the recovered baselines so future regressions actually fail CI: - legacy: 27→36 clean, 271→295 passing (pre-bump was 35/279) - framework: 19→21 clean, 226→241 passing (pre-bump was 21/237) Also: - .gitignore: exclude /dist/compliance/assertions/ from the tracked /dist/compliance/ tree so tsc output from server/src/compliance/** (the assertion modules landed in #2663) doesn't collide with the published spec-tarball path. - property-handlers.ts: comment explaining why violations[] was moved into the closed-shape features[] channel. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
fa0985d to
74c55f5
Compare
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
Closes the regression from #2663 where the
@adcp/client5.6→5.8.1 bump dropped legacy storyboard CI from 35 → 27 clean and framework from 21/237 → 19/226. Fixing four training-agent fixture / handler issues recovers both paths past the pre-bump baseline:CI floors rebased to the recovery values.
Fixes
server/src/shared/formats.ts— creative format fixturesRipple-fixed about a dozen storyboards that call
list_creative_formats(most of the creative, sales, and catalog-driven specialisms).catalog_types: ['product']→catalog_type: 'product'onsponsored_productandsearch_shopping. The currentcatalog-requirements.jsonschema uses the singular field — plural bypasses thecatalogoneOf branch and fails the whole format.dimensions.unit: 'in'→'inches'onprint_full_page. Thedimension-unitenum is{px, dp, inches, cm, mm, pt}.asset_type: 'file'→'url'/'audio'onprint_full_page/radio_spot. Theformat.assetsoneOfhas nofilebranch. URL (withmime_types: ['application/pdf']) is the nearest spec-valid match for a PDF artwork reference; audio fits a radio spot directly.server/src/training-agent/task-handlers.ts—handleGetMediaBuysget-media-buys-response.jsonnow requirestotal_budgeton everymedia_buys[]entry. Compute assum(pkg.budget)across packages (all denominated in the media buy'scurrencyper the core schema).server/src/training-agent/property-handlers.ts—handleValidatePropertyDeliveryvalidate-property-delivery-response.jsonis strict (additionalProperties: false) andvalidation-result.jsonis too.compliant(not in allowlist; derivable from summary counts).violations[]intofeatures[]using the closed enum:feature_id,status: 'failed',explanation..gitignoreExclude
/dist/compliance/assertions/from the tracked/dist/compliance/tree so tsc output fromserver/src/compliance/**doesn't leak into the published spec-tarball path.CI evidence
Both exceed the pre-5.8.1 floors without relying on lowered thresholds.
Remaining follow-ups (tracked in #2667)
Not fixed here — each is a discrete training-agent or storyboard issue rather than a schema-shape bug:
deterministic_testing—UNKNOWN_SCENARIO/INVALID_PARAMS/NOT_FOUND/INVALID_TRANSITIONerror codes don't match what the test-controller expects under 5.8+ scenario vocabulary.webhook_emission— payload shape, retry-replay, and 9421 signature verification all fail.media_buy_governance_escalation— plan lookup misses and condition-in-approval mismatch.governance_spend_authority—cpm_guaranteedpricing alias missing (seller returns a different pricing_option_id).creative_ad_server— pricing_options in creative response, campaign_hero_video resolution, vendor_cost validation.brand_rights/governance_denied,sales_broadcast_tvwebhooks,media_buy_seller/creative_fate_after_cancellationsync_creatives shape,signed_requestsverifier-order regression for vectors 015/017/020.sales_retail_media,sales_social,sales_catalog_driven— catalog item count reporting.media_buy_seller/measurement_terms_rejected— expected TERMS_REJECTED not emitted.sales_non_guaranteed— package lookup miss on empty id.Each of these is a 1-2 line handler fix; attacking one per follow-up PR is safer than batching.
Test plan
tsc --project server/tsconfig.json --noEmit— cleannpx vitest run server/tests/unit/training-agent.test.ts server/tests/unit/compliance-assertions.test.ts— 375 passingserver/tests/manual/run-storyboards.tslegacy + framework both exceed pre-bump baselines (captured above)🤖 Generated with Claude Code