chore(release): align changesets and revert tasks/get for 3.0.1 cut#3373
Conversation
…)" This reverts commit 4136a4a.
Five changesets downgraded minor → patch where the underlying change is
annotation-only, source-schema refactor, conformance-harness only, or a
clarification of underspecified behavior:
add-seed-creative-format-pagination, fix-format-asset-oneof-titles,
fix-get-signals-max-results-precedence, hoist-duplicate-inline-enums,
hoist-inline-enum-duplicates-tranche-2.
Resolve the envelope-prohibition overlap on protocol-envelope.json: keep
the top-level not: { anyOf: [{ required: [task_status] }, { required:
[response_status] }] } constraint from envelope-forbid-legacy-status-fields,
remove the redundant per-property not: {} markers from the v3 envelope
integrity PR, update the storyboard narrative to reference the remaining
constraint, and rewrite v3-envelope-integrity-conformance.md as patch
scoped to the storyboard contribution.
After the prior tasks/get revert, npx changeset status reports a single
patch bump for adcontextprotocol.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Reframe the buyer-side observation from include_result polling to push_notification_config webhook delivery, matching the 3.0 canonical path for completion payload retrieval. The tasks/get polling response returns terminal status only in 3.0; the typed result projection is tracked for 3.1 (#3123). - comply-test-controller.mdx: three call sites — overview, push- notification cross-protocol obligation, buyer-side observation — reworded to webhook-first with tasks/get reporting status only. - comply-test-controller-request.json: result param description reframed to webhook delivery as the canonical path. - force-task-completion-roundtrip.md changeset: remove the "(formalized in #3126)" reference, since #3126 is reverted to hold for 3.1.0. The scenario itself is unchanged: the seller still stamps the registered result against the task_id and surfaces it via webhook; this commit only realigns the documentation surface to the 3.0 delivery path. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
CI failure is pre-existing main breakage, not caused by this PR. The two failing checks (`Storyboards (framework dispatch)` and `Storyboards (legacy dispatch)`) both fail in `signed_requests` with the same 28-vector 401 pattern that's been red on main HEAD since #3351 merged ~20 hours ago. Filed as #3376. Evidence:
This PR's diff: changeset frontmatter, one schema cleanup on `protocol-envelope.json`, comply-test-controller doc realignment, and a revert of `tasks/get` schema fields. Zero touch on `training-agent/`, signed-requests verifier code, RFC 9421 docs, or replay-store paths. Recommend merging on green of all other 21 checks once #3376 is resolved on main and a re-run of these two jobs goes green. Or merge anyway if maintainers agree the failure is unrelated infrastructure noise — every other check is passing, including `Server integration tests`, `TypeScript Build`, `check-snippets`, and `check-schema-links`. |
|
Acknowledged. The CI failure isolation evidence is clear — Generated by Claude Code |
|
Got it — no action needed on this PR's side. Generated by Claude Code |
…ol (#3379) #3351 swapped to PostgresReplayStore to close the cross-instance replay gap (#3338). Worked in production but broke the storyboard runner: CI runs the full server in-process without initializing a Postgres pool, and getReplayStore() was unconditionally calling getPool() which throws "Database not initialized." Symptom (#3373 storyboards CI): signed_requests ✗ 3P / 28F / 9S (every positive vector returned 401 because PostgresReplayStore .insert rejected on the unavailable pool, verifier failed closed) Fix: - getReplayStore() falls back to InMemoryReplayStore when getPool() throws — gated on NODE_ENV !== 'production' so a misconfigured prod still fails loudly (preserves the multi-instance protection). - startReplayCacheSweeper() is a silent no-op when no pool is initialized. - resetRequestSigning() now also clears the cached _replayStore so test suites that swap process state stay coherent. Verified locally: signed_requests ✓ 31P / 9S / 0N/A (recovered) Production unaffected — prod always has a pool, so PostgresReplayStore is used and cross-instance replay protection holds. Confirmed via adcp grade --only 016-replayed-nonce → still PASS. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
Prepares main for the AdCP 3.0.1 cut. After this lands,
npx changeset statusreports a single patch bump foradcontextprotocoland 3.0.1 cuts cleanly.Three commits:
f4bce25d5— Revert feat(schema): add result and include_result to tasks/get #3126 (tasks/getresult/include_resultschema fields). The original PR was milestoned 3.1.0 by its author but landed on main early, forcing the changeset bundle to a minor. Re-add path:git revert f4bce25d5on a fresh branch after 3.0.1 ships, milestone 3.1.0.534f7b3d9— Five changesets downgradedminor→patch(add-seed-creative-format-pagination,fix-format-asset-oneof-titles,fix-get-signals-max-results-precedence,hoist-duplicate-inline-enums,hoist-inline-enum-duplicates-tranche-2); envelope-prohibition overlap onprotocol-envelope.jsonresolved by removing the redundant per-propertynot: {}markers and keeping the top-levelnot: { anyOf: [{ required: [task_status] }, { required: [response_status] }] }fromenvelope-forbid-legacy-status-fields;v3-envelope-integrity-conformance.mdrewritten as patch scoped to the storyboard contribution.9818fd81e— Alignforce_task_completion(patch: force_task_completion + create_media_buy_async submitted -> completed roundtrip #3138) and the comply-test-controller schema/docs with 3.0 webhook delivery, since theinclude_result: truepolling path the original framing referenced was reverted.Closes #2681 (already closed via comment; ships in 3.0.1).
Pre-PR expert review
ad-tech-protocol-expert: ship it. No semver violations. All five minor→patch downgrades defensible:comply_test_controlleris conformance-harness scaffolding (not core protocol), JSON Schematitleis annotation-only per draft-07 §10.1,get_signalsprecedence is a clarification of underspecified collision behavior, and the enum-hoist refactors produce byte-identical bundled subgraphs. Envelope overlap fix is semantically equivalent — top-levelnot: { anyOf: [{ required: [...] }] }blocks the fields by key presence regardless of value (JSON Schema draft-07 §6.5.3). Revert is clean; the post-reverttask-lifecycle.mdxreinstates the correct shipped-3.0.0 webhook-first guidance.code-reviewer: no CI blockers. Flagged downstream coupling —force_task_completion(patch: force_task_completion + create_media_buy_async submitted -> completed roundtrip #3138) and the comply-test-controller schema/docs referencedinclude_result: truefrom feat(schema): add result and include_result to tasks/get #3126. Fixed in9818fd81e.Re-add path for tasks/get result fields
After this PR + the 3.0.1 cut land:
Test plan
npx changeset statusreports a single patch bump foradcontextprotocolinclude_resultreferences in non-dist/paths outside the explicit "tracked for 3.1" pointers intask-lifecycle.mdx:195,revert-tasks-get-result-for-3-0-1.md, andtasks-get-include-result-docs-fix.md3.0.xbranch from main, runnpx changeset versionon it to produce 3.0.1dist/protocol/3.0.1.tgzserves end-to-end per the cut-major runbook🤖 Generated with Claude Code