Version Packages#5785
Conversation
There was a problem hiding this comment.
Argus is not auto-reviewing this PR because it is a generated Changesets release PR.
A human release reviewer should verify CI, package/version/changelog changes, and generated dist/** artifacts. Argus will resume on source PRs before the next release PR is generated.
a3a515c to
3beeb2b
Compare
There was a problem hiding this comment.
Argus is not auto-reviewing this PR because it is a generated Changesets release PR.
A human release reviewer should verify CI, package/version/changelog changes, and generated dist/** artifacts. Argus will resume on source PRs before the next release PR is generated.
ec9b67b to
2591f70
Compare
9a1e0dc to
a1fdf48
Compare
7fa4acb to
6673531
Compare
|
Release gate: do not merge this stable |
ca741a2 to
b16b4d1
Compare
b16b4d1 to
6465df7
Compare
This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.
Releases
adcontextprotocol@3.2.0
Minor Changes
4cdebb9: Allow
nullfor video-only delivery metrics (quartile_data,completion_rate). Sellers running non-video inventory (display, audio-only, DOOH-without-video) legitimately have no value for these metrics, and returningnullis the correct "not applicable" signal. The schema previously requiredtype: "number"/type: "object"and rejectednull, causing receivers to fail validation on every valid display-inventory delivery report.delivery-metrics.json(totals/by_package[]) now accepts["number", "null"]forcompletion_rateand["object", "null"]forquartile_data;get-media-buy-delivery-response.jsonaggregated_totals.completion_rategets the same loosening so the aggregate path can't re-trigger the failure. Theminimum/maximumconstraints oncompletion_ratestill apply to non-null values, and the type stays narrowed to null (no strings/arrays). Every other delivery metric continues to signal "not applicable" by omission, notnull— this exception is scoped to the two video-only fields. Spec-loosening for the receiver contract: producers already sending numbers/objects remain valid.The separate inline
completion_rateinreport-plan-outcome-request.json(a governance self-report block, not on theget_media_buy_deliverypath) is intentionally left unchanged.e75f12f: Add
property_list_excludeto the targeting overlay: a reference to a property list whose properties must not carry the buyer's ads, for brand-safety do-not-run lists (apps and sites). Mirrorscollection_list_excludeand reusesproperty-list-ref.json. Exclude wins on overlap withproperty_listand applies regardless of the product'sproperty_targeting_allowedflag. Sellers declare support via the property/collection list entries in theget_adcp_capabilitiestargeting table.81cf467: Withdraw the incorrectly specified
publisher_domainfilter fromget_productsbefore the next minor release. The filter was not patch-eligible for the stable 3.1.x line, and its implementation incorrectly accepted the pluralpublisher_domains[]form that product schemas reject.Patch Changes
0fe5101: compliance(media-buy): the
available_actionsscenario uses a non-guaranteed product fixture sosales-non-guaranteed-only sellers can run it.available_actions.yamlseeded a guaranteed-only product, so itscreate_buy_from_productstep (and the whole available-actions enforcement flow that follows) failed with a terminalDELIVERY_MODE_NOT_SUPPORTEDfor sellers that declare onlyspecialisms: ["sales-non-guaranteed"]. Theallowed_actionsbehavior the scenario actually grades is delivery-type-agnostic, so the fixture is switched tonon_guaranteed(floor-priced) — the same fix applied to the basemedia_buy_sellerflow. The packageddist/compliance/cache is generated from this source.918c073: Runner output contract: document the branch-set
any_ofpeer cascade exemption.cascade_rulesnow names abranch_set_cascade_exemption(parallel tosole_stateful_step_exemption) stating that a stateful peer's genuine failure orpeer_branch_takenskip MUST NOT cascadeprerequisite_failedonto a sibling phase sharing the samebranch_set.idunderany_ofsemantics — the peers are mutually-exclusive alternatives, not a dependency chain. The exemption is scoped toany_of, is N-ary-safe (any number of peers), leaves cross-set and within-phase cascade unchanged, and is explicitlydepends_on-agnostic (it fires whether the sibling's dependency is the implicit default or an explicitdepends_onnaming the peer).storyboard-schema.yaml'sdepends_onsection gains a cross-reference. Documents-only; codifies the runner behavior shipped in adcp-client#2306 (closing adcp-client#2305), root-caused in adcp#5337. No schema or wire change.5a7668c: Enforce
cancellation_fee.rate/.amountby feetypeincancellation-policy.json. Both fields are documented as conditionally required —rate"Required when type is 'percent_remaining'",amount"Required when type is 'fixed_fee'" — and the requirement is restated in the pricing-models reference, butcancellation_feelisted only["type"]inrequired[]. A validator therefore accepted{ "type": "percent_remaining" }(or{ "type": "fixed_fee" }) with no fee value at all, leaving a money-path term that declares nothing computable for a buyer accepting the product's cancellation terms.Adds
if/thenconditionals:percent_remainingrequiresrate,fixed_feerequiresamount;full_commitmentandnoneare unaffected. No prose change — this aligns the schema with the already-documented contract, and no existing example regresses (both doc examples already carryrate). Regression coverage added totests/composed-schema-validation.test.cjs.4eda22a: Clarify the boundary between
validate_inputmanifest preflight andsync_creativesdry-run trafficking rehearsal.19a6447: Move stale active-window dates in compliance fixtures and 3.0 compatibility bundles forward so storyboard runs continue to exercise protocol behavior instead of calendar drift.
f38101a: Replace phantom error codes in creative and campaign-governance task docs with canonical enum members.
sync_creatives,build_creative, the Creative Protocol specification,check_governance, andsync_plansdocumented 13errors[].codevalues that do not exist inenums/error-code.json(INVALID_FORMAT,ASSET_PROCESSING_FAILED,BRAND_SAFETY_VIOLATION,FORMAT_MISMATCH,CREATIVE_IN_ACTIVE_DELIVERY,ASSET_MISSING,ASSET_INVALID,GENERATION_FAILED,INVALID_MANIFEST,AMBIGUOUS_CHECK_TYPE,SELLER_NOT_RECOGNIZED,INVALID_PLAN,BUDGET_BELOW_COMMITTED). SDKs that validateerrors[].codeagainst the published enum reject responses built from the docs literally, the same failure mode as docs(error):FORMAT_INCOMPATIBLEreferenced in error table but not defined in error-code.json enum #4852 and docs(spec-guidelines): enum-membership criterion + reconcile sync_catalogs phantom error codes #5307. Each phantom is remapped to the existing code with matching semantics (UNSUPPORTED_FEATURE,VALIDATION_ERROR,CREATIVE_REJECTED,INVALID_STATE,INVALID_REQUEST,PERMISSION_DENIED);GENERATION_FAILEDis replaced with guidance that generation-pipeline failures surface as task-level failure with the most specific applicable canonical code, per the open-vocabulary rule onerror-code.json. Also fixes the one liveINVALID_FORMATemission in the training-agent reference implementation. Docs and reference implementation only; no wire change.c8f3ba5: Fix false failures in creative compliance storyboards (canonical_supported_formats, evaluator_auth).
canonical_supported_formats: removes the hardcodedcapability_id: "training_image_generation"assertion (capability_id is agent-local; any valid value must pass) and thefield_absentcheck onsupported_formats[1](agents may advertise multiple canonical formats). Fixescontext_outputsfield name fromkey:toname:.evaluator_auth: addsrequires_capabilityguards to all five optional phases so agents that correctly declarecreative.supports_evaluator: falsereceivenot_applicableinstead of failing the evaluator track. Guards evaluate against the raw capabilities response, bypassing a runner-side boolean-false accumulator bug. Fixescontext_outputsfield name fromkey:toname:.c68d545: Fix a misleading
get_media_buy_deliveryexample that implied buyers can look up delivery by their own reference.media_buy_idsare seller-assigned; the top-levelbuyer_reffield was removed in 3.0.0. The example is retitled "Correlating Your Own Reference", uses seller-assignedmb_...IDs, and adds a note pointing buyers to reconcile their own reference viacontextechoed oncreate_media_buy/get_media_buys.0a51bac: Align idempotency and rate-limit guidance with the canonical top-level
error.retry_afterfield across schemas, documentation, and compliance storyboards.a335070: Clarify and enforce governed signal activation:
activate_signalnow documentsgovernance_context, signal agents fail closed on governed accounts without a valid approval context, and signal governance compliance checks no longer require the signals tenant to ownsync_plans.24a83c5: Allow governance checks to accept human approval from
ext.human_approvaland use that approval to clear reallocation-threshold human review.348ae53: Preserve withdrawn and unpublished release status when generating file-based schema discovery so exact artifacts remain available without becoming stable alias targets.
a81067a: Remove an incidental video-only constraint from the inventory list targeting storyboards so single-channel sellers can exercise the channel-agnostic scenarios.