Move to changesets v3 and changesets/action v2 - #3974
Conversation
… actually reached npm Publishing 5.0.0-beta.48 shipped 7 of 21 packages on the first attempt and 5 more on a rerun; 4 are still not on npm. Two things compounded: - @changesets/cli 2.29.8 crashes on an E401 whose JSON has no `detail` field, which is the shape pnpm 11 produces when its OIDC token exchange fails and it falls back to the (empty) .npmrc token. The TypeError killed the process with other publishes mid-flight, and hid pnpm's own warning that says why OIDC was skipped. Patch the CLI (pnpm patchedDependencies) to treat a missing `detail` as a plain publish failure for that one package and to print pnpm's message, so the rest of the release proceeds and the log names the cause. - Nothing compared the manifests on the commit with the registry, so a half-published release looked like any other red job. Add scripts/check-published.mjs and run it after the publish step regardless of that step's outcome. Also stop a broken Slack token from failing an otherwise successful release; that is what turned the Aug 26 and Aug 31 release jobs red. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@changesets/cli 2.29.8 crashes on the E401 pnpm 11 produces when its OIDC exchange fails, taking the rest of the release down with it; v3 handles publish failures per package (#2132, #2155) and publishes in dependency-ordered chunks of at most 10 instead of all at once. The pnpm patch that #3967 added for the same crash is removed here. The action moves to v2, which is the version that drives a v3 CLI: its inputs are renamed (version-script, publish-script, create-github-releases), it always pushes through the GitHub API (so the old commitMode input is gone and the release commit stays signed), and it reads what was published from the CHANGESETS_OUTPUT file rather than parsing stdout. Its output is published-packages, not publishedPackages. v3 keeps changesets that a Version Packages merge already released in .changeset/pre/ instead of listing their ids in pre.json. The migration is performed here, as git renames of all 683 released changesets, so it is reviewable and does not happen inside the next Version Packages PR or the first developer's `changeset add`. pre.json now holds only mode and tag, which is all scripts/check-published.mjs reads from it. .changeset/config.json pins the v4 schema, sets format: false so changelog output does not depend on which formatter a workspace happens to contain, and keeps privatePackages at the v2 default explicitly, since v3 stops versioning private packages by default and @workflow/tsconfig has been versioned and tagged until now. scripts/check-changesets.mjs now imports the v3 libraries directly; they are declared as root devDependencies at the ranges the CLI declares. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
|
There was a problem hiding this comment.
🟡 Changes recommended
.changeset/pre.json likely lacks required prerelease-state fields for Changesets v3, which can break changeset pre exit / release automation despite the tooling upgrade.
Once you've addressed the issues Copilot identified, you can request another Copilot review.
Pull request overview
This PR upgrades the repo’s release tooling to Changesets v3 and changesets/action v2, removes the previous CLI patch workaround, and migrates prerelease bookkeeping so already-released changesets live under .changeset/pre/.
Changes:
- Upgrade Changesets tooling (CLI + action) and update the release workflow to use v2 action inputs/outputs.
- Migrate prerelease history into
.changeset/pre/and simplify.changeset/pre.json. - Adjust repo scripts/docs to align with the new Changesets v3 layout.
File summaries
| File | Description |
|---|---|
| package.json | Bumps Changesets CLI to v3 and adds direct devDependencies used by the changeset validation script. |
| pnpm-lock.yaml | Lockfile updates for the Changesets v3 upgrade and dependency graph changes. |
| .changeset/config.json | Updates schema pin + v3 config fields (e.g., format: false, privatePackages). |
| .changeset/pre.json | Updates prerelease state file (potential compatibility risk noted). |
| .changeset/pre/* | Adds/migrates previously-released changesets into the v3 prerelease directory layout. |
| scripts/check-changesets.mjs | Switches to importing Changesets libraries directly and adds config validation surfacing. |
| .github/workflows/release.yml | Upgrades to changesets/action v2 and updates workflow usage/outputs accordingly. |
| scripts/generate-release-notes.mjs | Continues consuming PUBLISHED_PACKAGES for filtering; aligned to new workflow output wiring. |
| scripts/generate-release-slack-payload.mjs | Uses the release-notes generator and inherits PUBLISHED_PACKAGES filtering. |
| CLAUDE.md | Documents the new .changeset/pre/ layout and prerelease lifecycle expectations. |
| AGENTS.md | Mirrors the CLAUDE.md guidance for agent-facing workflows around changesets/prereleases. |
Review details
- Files reviewed: 2/691 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| { | ||
| "mode": "pre", | ||
| "tag": "beta", | ||
| "initialVersions": { | ||
| "@workflow/ai": "4.0.0", | ||
| "@workflow/cli": "4.0.0", | ||
| "@workflow/core": "4.0.0", | ||
| "@workflow/errors": "4.0.0", | ||
| "@workflow/next": "4.0.0", | ||
| "@workflow/nitro": "4.0.0", | ||
| "@workflow/swc-plugin": "4.0.0", | ||
| "@workflow/tsconfig": "4.0.0", | ||
| "@workflow/typescript-plugin": "4.0.0", | ||
| "@workflow/web": "4.0.0", | ||
| "@workflow/web-shared": "4.0.0", | ||
| "workflow": "4.0.0", | ||
| "@workflow/world": "4.0.0", | ||
| "@workflow/world-local": "4.0.0", | ||
| "@workflow/world-postgres": "4.0.0", | ||
| "@workflow/world-testing": "4.0.0", | ||
| "@workflow/world-vercel": "4.0.0", | ||
| "@workflow/utils": "4.0.0", | ||
| "docs": "4.0.0", | ||
| "@workflow/example-app": "4.0.0", | ||
| "@workflow/example-hono": "4.0.0", | ||
| "@workflow/example-express": "4.0.0", | ||
| "nextjs-turbopack": "4.0.0", | ||
| "nextjs-webpack": "4.0.0", | ||
| "@workflow/example-nitro-v3": "4.0.0", | ||
| "@workflow/example-nitro-v2": "4.0.0", | ||
| "@workflow/example-nuxt": "4.0.0", | ||
| "@workflow/example-vite": "4.0.0", | ||
| "@workflow/example-sveltekit": "4.0.0", | ||
| "@workflow/example-astro": "4.0.0", | ||
| "@workflow/builders": "4.0.0", | ||
| "@workflow/sveltekit": "4.0.0", | ||
| "@workflow/nuxt": "4.0.0", | ||
| "@workflow/rollup": "4.0.0", | ||
| "@workflow/astro": "4.0.0", | ||
| "@workflow/example-fastify": "4.0.0", | ||
| "@workflow/vite": "4.0.0", | ||
| "@workflow/docs-typecheck": "4.0.0", | ||
| "@workflow/serde": "4.0.0", | ||
| "@workflow/nest": "4.0.0", | ||
| "@workflow/example-nest": "4.0.0", | ||
| "workflow-sdk-compiler-playground": "4.0.0", | ||
| "@workflow/example-nitro": "4.0.0", | ||
| "@workflow/vitest": "4.0.0", | ||
| "@workflow/vitest-workbench": "4.0.0", | ||
| "tarballs": "0.0.0", | ||
| "@workflow/example-tanstack-start": "0.0.0", | ||
| "@workflow/world-sim": "0.0.0", | ||
| "@workflow/sim-world-workbench": "0.0.1", | ||
| "@workflow/example-python": "0.0.0" | ||
| }, | ||
| "changesets": [ | ||
| "abort-e2e-flakes", | ||
| "abort-signal-replay-ordering", | ||
| "ack-after-step-dispatch", | ||
| "add-platformatic-world", | ||
| "add-surrealdb-world", | ||
| "afraid-bananas-peel", | ||
| "align-web-shared-colors", | ||
| "all-chicken-enjoy", | ||
| "allow-sync-step-functions", | ||
| "analytics-attribute-filters", | ||
| "analytics-events-input-guards", | ||
| "analytics-utc-dates", | ||
| "ast-directive-validation", | ||
| "atomic-runs-publish", | ||
| "atomic-step-created-event", | ||
| "attr-inprocess-replay", | ||
| "attr-set-duplicate-inert", | ||
| "attr-set-duplicate-observability", | ||
| "attributes-mvp-plan", | ||
| "attributes-row-remove-flex-1", | ||
| "avoid-peer-major-bumps", | ||
| "background-step-unresolved-run", | ||
| "backport-inline-rationale", | ||
| "backport-per-commit-concurrency", | ||
| "backport-stability-only", | ||
| "backport-validate-ai-model", | ||
| "batch-analytics-event-lookup", | ||
| "batch-run-reads", | ||
| "batched-event-writes", | ||
| "batched-inline-preclaim", | ||
| "bench-chunk-rtt-scenarios", | ||
| "bench-fanout-scenario", | ||
| "bench-histogram-run-trace-links", | ||
| "better-pets-reply", | ||
| "blur-style-prop-compat", | ||
| "bound-decoded-collections", | ||
| "brave-eyes-shake", | ||
| "breezy-regions-leave", | ||
| "bright-baboons-trade", | ||
| "bright-cycles-wait", | ||
| "bright-discovery-talk", | ||
| "bright-hooks-share", | ||
| "bright-pears-drum", | ||
| "bright-steps-count", | ||
| "bright-waits-refresh", | ||
| "builders-discovery-fixes", | ||
| "bulk-cancel-cli", | ||
| "bulk-cancel-web", | ||
| "bulk-cancel", | ||
| "bump-astro-cve-2026-54299", | ||
| "bump-esbuild-0-28-1", | ||
| "bump-hono-cve-2026-54290", | ||
| "bump-undici-7-26", | ||
| "bump-undici-7-28", | ||
| "bump-undici-7-29-0", | ||
| "bump-vercel-queue-0-4-0", | ||
| "bundle-aliased-project-local-helpers", | ||
| "byte-stream-wire-framing", | ||
| "cache-step-port-discovery", | ||
| "calm-dodos-retry", | ||
| "calm-events-guard", | ||
| "calm-events-wait", | ||
| "calm-geese-observe", | ||
| "calm-geese-share", | ||
| "calm-streams-stop", | ||
| "cancel-v4-frame-stream", | ||
| "catchable-step-arg-serialization-errors", | ||
| "centralize-event-semantics", | ||
| "chatty-walls-appear", | ||
| "ci-runtime-fast-paths", | ||
| "clean-brooms-travel", | ||
| "clear-server-external-warning", | ||
| "clever-adults-ask", | ||
| "clever-spans-search", | ||
| "clever-wombats-drop", | ||
| "cli-analytics-list-reads", | ||
| "cli-attributes-and-cancel-probe", | ||
| "cli-defer-embedded-dashboard", | ||
| "cli-generic-world-backends", | ||
| "cli-runs-time-window", | ||
| "cli-url-deep-link", | ||
| "cold-lands-boil", | ||
| "cold-lines-change", | ||
| "compression-telemetry-attributes", | ||
| "compute-instance-event-field", | ||
| "continue-run-started-preload", | ||
| "cookbook-child-workflows-hook-resume", | ||
| "cool-cups-greet", | ||
| "copyable-data-block-tests", | ||
| "core-cross-environment-start-guard", | ||
| "core-run-id-input", | ||
| "correlation-id-run-scope-wire", | ||
| "correlation-id-run-scope", | ||
| "corrupted-event-log-code", | ||
| "cross-deployment-stream-keys", | ||
| "curvy-dingos-cry", | ||
| "cyan-impalas-drop", | ||
| "data-inspector-expanded-brackets", | ||
| "date-subclass-vm", | ||
| "decouple-vm-seed-from-startedat", | ||
| "dedupe-otel-api", | ||
| "dedupe-pnpm-peer-variant-step-ids", | ||
| "dense-stream-viewer", | ||
| "deployment-id-latest-noop-non-vercel", | ||
| "deprecate-storage-runs-observability", | ||
| "derived-framework-roots", | ||
| "dev-hmr-full-rebuild-race", | ||
| "dev-hmr-quiescence", | ||
| "dirty-bees-notice", | ||
| "disable-web-shared-decrypt-controls", | ||
| "discover-workflows-in-node-modules-opt-out", | ||
| "display-occurred-at", | ||
| "docs-event-sourcing-duplicate-events", | ||
| "docs-migration-guides-redirects", | ||
| "docs-next-16-3-3", | ||
| "docs-rendered-link-lint", | ||
| "docs-step-executed-multiple-times", | ||
| "docs-v5-whats-new-pages", | ||
| "drain-consume-loop-synchronously", | ||
| "drain-pending-queue-on-completion", | ||
| "drop-precondition-guard-capability", | ||
| "drop-setup-command-input", | ||
| "dull-hats-melt", | ||
| "duplicate-event-log-level", | ||
| "durable-agent-stream-result-totalusage", | ||
| "durable-agent-tool-stop-detection", | ||
| "durable-hook-resume", | ||
| "e2e-ci-retry", | ||
| "e2e-pickup-watchdog", | ||
| "e2e-test-budgets", | ||
| "e2e-timing-polling", | ||
| "e2e-wait-for-hook", | ||
| "early-cooks-accept", | ||
| "easy-dodos-doubt", | ||
| "eleven-lilies-film", | ||
| "empty-worlds-throw", | ||
| "enable-tanstack-start-vercel-e2e", | ||
| "encp-forwarded-streams", | ||
| "encp-o11y-decrypt", | ||
| "encp-payload-key-union", | ||
| "encp-resume-hook-seal", | ||
| "encp-run-public-key-core", | ||
| "encp-run-public-key-postgres", | ||
| "encp-run-public-key-web-shared", | ||
| "encp-run-public-key-worlds", | ||
| "encp-sealed-box", | ||
| "encp-start-probe-key", | ||
| "encp-workflow-body-writable", | ||
| "enforce-strict-concurrency", | ||
| "error-subclass-serialization", | ||
| "errors-no-chalk", | ||
| "esm-builders", | ||
| "esm-dirname-filename-shim", | ||
| "event-count-guard", | ||
| "event-limit-enforcement", | ||
| "event-list-solid-borders", | ||
| "event-log-corruption-repro", | ||
| "event-log-race-repro-infra", | ||
| "event-log-race-repro-local", | ||
| "event-precondition-guard", | ||
| "event-write-stso-spans", | ||
| "events-create-cursor-delta", | ||
| "events-exact-id-search", | ||
| "experimental-attributes-docs", | ||
| "extend-cn-tailwind-merge", | ||
| "extract-stream-ids-circular", | ||
| "faas-instance-span-attr", | ||
| "fail-cross-deployment-runs", | ||
| "fast-frame-refill", | ||
| "fast-middle-truncate-resizes", | ||
| "fast-next-workflow-hmr", | ||
| "fast-workflow-discovery", | ||
| "fatal-hook-world-validation", | ||
| "fatal-retryable-error-serialization", | ||
| "features-encryption-metadata", | ||
| "few-cups-share", | ||
| "fine-coins-cheat", | ||
| "five-second-e2e-polling", | ||
| "fix-builtin-externalize", | ||
| "fix-ci-command-injection", | ||
| "fix-community-world-specversion", | ||
| "fix-compression-cutoff-beta18", | ||
| "fix-detail-panel-flicker", | ||
| "fix-discovery-weakmap-cache", | ||
| "fix-dom-exception-serialization", | ||
| "fix-event-detail-stream-links", | ||
| "fix-examples-homepage-link", | ||
| "fix-graph-manifest-generation", | ||
| "fix-health-check-correlation-id", | ||
| "fix-hook-loop-unconsumed-event", | ||
| "fix-inline-execution-flow-count-race", | ||
| "fix-load-events-cursor-null", | ||
| "fix-local-test-hangs", | ||
| "fix-malformed-tool-call-input", | ||
| "fix-message-only-error-block", | ||
| "fix-middle-truncate-ellipsis", | ||
| "fix-next-custom-distdir-watch", | ||
| "fix-next-esm-compat", | ||
| "fix-next-module-specifier-root", | ||
| "fix-next-version-resolution", | ||
| "fix-observability-getworld-import", | ||
| "fix-postgres-workflow-enums", | ||
| "fix-provider-tool-identity", | ||
| "fix-recovery-queue-namespace", | ||
| "fix-span-detail-flicker-state-machine", | ||
| "fix-step-vs-wait-race-eager-wait", | ||
| "fix-step-vs-wait-race", | ||
| "fix-stream-get-runid", | ||
| "fix-sveltekit-filename-chunk-patch", | ||
| "fix-tarballs-build", | ||
| "fix-tools-to-model-tools", | ||
| "fix-turbopack-content-condition-deferred", | ||
| "fix-vite-step-source-maps-e2e", | ||
| "fix-windows-port-parser", | ||
| "fix-world-local-hook-self-conflict", | ||
| "fix-world-local-step-created-race", | ||
| "fix-world-postgres-events-uniqueness", | ||
| "fix-world-testing-shared-data-dir", | ||
| "fix-world-vercel-request-timeout", | ||
| "fix-world-zod-44-compat", | ||
| "flat-mice-admire", | ||
| "flow-route-init-traces", | ||
| "four-news-wait", | ||
| "fresh-events-occur", | ||
| "fresh-lamps-heal", | ||
| "fresh-rules-glow", | ||
| "fresh-steps-hmr", | ||
| "friendlier-errors", | ||
| "friendly-step-files", | ||
| "fruity-cars-slide", | ||
| "fuzzy-corners-write", | ||
| "fuzzy-ducks-retry", | ||
| "fuzzy-mugs-learn", | ||
| "geist-button-states", | ||
| "gentle-jobs-stop", | ||
| "gentle-keys-occur", | ||
| "getter-step-support", | ||
| "getwritable-share-pipe", | ||
| "global-singleton-helper", | ||
| "great-mails-argue", | ||
| "great-news-beg", | ||
| "green-streams-decode", | ||
| "guard-astro-sveltekit-writes", | ||
| "guard-step-consumer-events", | ||
| "gzip-ref-compression-core", | ||
| "gzip-ref-compression-world-vercel", | ||
| "gzip-ref-compression-world", | ||
| "h2-events-multiplexing", | ||
| "h2-receive-windows", | ||
| "hardened-serialization-simplify", | ||
| "hardened-vm-serialization", | ||
| "healthcheck-coreversion", | ||
| "hip-onions-refuse", | ||
| "hoist-follow-imports-check", | ||
| "hook-claim-guarded-release", | ||
| "hook-conflict-delta-worlds", | ||
| "hook-conflict-in-process", | ||
| "hook-conflict-web-reviver", | ||
| "hook-get-conflict", | ||
| "hook-index-perf", | ||
| "hook-min-retention", | ||
| "hook-received-after-dispose", | ||
| "hook-received-terminal-run-guard", | ||
| "hook-resume-context", | ||
| "hook-resume-ttr-telemetry", | ||
| "hook-sleep-replay-ordering", | ||
| "hook-token-claim-release", | ||
| "hook-token-reuse-after-dispose", | ||
| "hook-trace-bar-gray", | ||
| "idempotency-strategy-e2e", | ||
| "idle-check-parked-deliveries", | ||
| "ignore-generated-manifest", | ||
| "inline-completion-persistence", | ||
| "inline-delta-turbo-unlocks", | ||
| "inline-event-delta", | ||
| "inline-maxretries-race", | ||
| "inline-step-ownership", | ||
| "inline-step-registration", | ||
| "inspect-region-column", | ||
| "inspect-storage-reads", | ||
| "itchy-spies-attack", | ||
| "jk-nav-autoscroll", | ||
| "large-inline-sourcemap-remap", | ||
| "large-regions-talk", | ||
| "late-hooks-rearm", | ||
| "lazy-discovery-bare-specifiers", | ||
| "lazy-discovery-default", | ||
| "lazy-discovery-hmr", | ||
| "lazy-hook-replay-preload", | ||
| "lazy-hook-resume-durable-abort", | ||
| "lazy-hook-resume-vitest", | ||
| "lazy-hook-resumption", | ||
| "lazy-inline-step-start", | ||
| "lazy-next-step-imports", | ||
| "lazy-only-hook-resume-world", | ||
| "lazy-only-hook-resume", | ||
| "lazy-resume-deployment-affinity", | ||
| "lazy-stream-key-request-diagnostics", | ||
| "lazy-terminal-run-data", | ||
| "lazy-vercel-world-bundle", | ||
| "leading-edge-dispatch", | ||
| "little-sites-cover", | ||
| "local-chunk-sharding", | ||
| "local-empty-vercel-url", | ||
| "local-hook-min-retention", | ||
| "local-port-cache", | ||
| "local-world-vercel-warning", | ||
| "log-order-draws", | ||
| "log-queue-handler-retries", | ||
| "lost-payload-terminal", | ||
| "loud-pugs-recycle", | ||
| "lucky-pandas-listen", | ||
| "lucky-windows-smash", | ||
| "many-peas-jog", | ||
| "marker-kind-prefix", | ||
| "mean-cameras-hope", | ||
| "metadata-panel-styling", | ||
| "metadata-token-hookid-copy", | ||
| "mighty-pumas-rest", | ||
| "modern-penguins-peel", | ||
| "module-scope-lint-hardening", | ||
| "module-scope-state-all-bundled-packages", | ||
| "module-source-link", | ||
| "moody-rivers-play", | ||
| "narrow-step-bundling", | ||
| "narrow-trace-detail-pane", | ||
| "native-attribute-events", | ||
| "neat-runs-serialize", | ||
| "nest-cjs-ast-rewrite", | ||
| "nest-linked-invocations-under-delivery", | ||
| "nest-vercel-support", | ||
| "new-zoos-knock", | ||
| "next-base-path", | ||
| "next-dev-watch-gitignore", | ||
| "next-diagnostics-dist", | ||
| "next-entry-discovery", | ||
| "next-respect-package-exports", | ||
| "next-root-detection", | ||
| "ninety-buttons-dance", | ||
| "ninety-dancers-brush", | ||
| "nitro-dashboard-route", | ||
| "nitro-embedded-dashboard", | ||
| "nitro-forward-externals", | ||
| "nitro-h2-noderequire", | ||
| "nitro-monorepo-project-root", | ||
| "nitro-webhook-rule-pattern-fix", | ||
| "no-eval-in-revive", | ||
| "node-http-transport-flag", | ||
| "node-module-error-cross-file-dce", | ||
| "o11y-queue-namespace", | ||
| "o11y-run-ref-rendering", | ||
| "object-property-step-discovery", | ||
| "odd-months-run", | ||
| "old-towns-make", | ||
| "olive-hands-repeat", | ||
| "olive-lions-measure", | ||
| "olive-pandas-brush", | ||
| "olive-pugs-repeat", | ||
| "optional-input-on-snapshots", | ||
| "order-adjacent-hook-deliveries", | ||
| "ordered-barrier-safety-net", | ||
| "orphan-ui-chunks-on-resume", | ||
| "otel-api-optional-peer-external", | ||
| "otel-linked-trace-mode", | ||
| "outcome-event-workflowname", | ||
| "overlap-workflow-compile", | ||
| "parallel-inline-optimistic-start", | ||
| "pending-trace-viewer-gray-indicator", | ||
| "perf-cached-workflow-script", | ||
| "perf-memoize-step-hydration", | ||
| "perf-prepare-replay-payloads", | ||
| "postgres-hook-disposal-ordering", | ||
| "postgres-hook-min-retention", | ||
| "postgres-run-created-conflict", | ||
| "postgres-step-ordering", | ||
| "pr-comment-stale-banner-via-path", | ||
| "prebuilt-world-detection", | ||
| "precise-timeline-ruler-ticks", | ||
| "precise-trace-viewer-durations", | ||
| "precondition-guard-default-on", | ||
| "prepare-streamed-replay-payloads", | ||
| "preserve-imports-used-by-hoisted-steps", | ||
| "preserve-run-key-status", | ||
| "preserve-step-fn-names", | ||
| "pretty-log-format", | ||
| "prewarm-appended-payloads", | ||
| "prewarm-next-swc-cache", | ||
| "private-member-dce", | ||
| "project-step-provenance", | ||
| "proud-friends-decide", | ||
| "prune-workflow-sandbox", | ||
| "python-cancellable-steps", | ||
| "python-workbench-app", | ||
| "queue-client-0-5-0", | ||
| "queue-namespace-primitive", | ||
| "queued-for-uses-first-step-started", | ||
| "quick-local-replay", | ||
| "quickjs-baseline-snapshot", | ||
| "quickjs-hook-capability", | ||
| "quickjs-hook-dispose-token", | ||
| "quickjs-hook-retention", | ||
| "quickjs-host-serde", | ||
| "quickjs-inline-steps", | ||
| "quickjs-vm-engine", | ||
| "quiet-analytics-readers", | ||
| "quiet-build-logs", | ||
| "quiet-donkeys-repeat", | ||
| "quiet-events-merge", | ||
| "quiet-lamps-parse", | ||
| "quiet-marker-shadow", | ||
| "quiet-normal-execution-logs", | ||
| "quiet-runs-poll", | ||
| "quiet-sourcemap-warnings", | ||
| "quiet-trace-viewer-duration", | ||
| "quiet-workflows-join", | ||
| "quieter-stream-metadata", | ||
| "rare-badgers-judge", | ||
| "react-router-nitro-cleanup", | ||
| "ready-pens-hug", | ||
| "real-pens-cut", | ||
| "reconnect-object-streams", | ||
| "recover-invalid-tool-input", | ||
| "red-masks-rule", | ||
| "reject-empty-hook-token", | ||
| "relative-time-card", | ||
| "remove-client-mode", | ||
| "remove-experimental-set-attributes", | ||
| "remove-next-lazy-discovery", | ||
| "remove-obsolete-world-factory-aliases", | ||
| "remove-old-trace-viewer", | ||
| "remove-private-subpath", | ||
| "remove-release-app-dispatch", | ||
| "remove-safe-mode", | ||
| "remove-sdk-serde-exclusion", | ||
| "remove-step-file-copy", | ||
| "rename-domain-urls", | ||
| "rename-new-trace-viewer", | ||
| "rename-set-attributes-world", | ||
| "rename-set-attributes", | ||
| "repair-ui-message-stream-framing", | ||
| "replay-consumed-event-clock", | ||
| "replay-cost-telemetry", | ||
| "replay-divergence-redelivery", | ||
| "replay-lineage-execution-context", | ||
| "replay-timeout-excludes-step-bodies", | ||
| "report-replay-recovery", | ||
| "repro-bound-storm-pressure", | ||
| "repro-comment-slim", | ||
| "repro-partial-results", | ||
| "repro-poke-decay", | ||
| "require-slot-event-ids", | ||
| "resilient-resume-hook", | ||
| "resilient-step-dispatch-off", | ||
| "resilient-step-dispatch", | ||
| "resizable-trace-detail-panel", | ||
| "retain-vms-across-attributes", | ||
| "retain-vms-across-hooks", | ||
| "retain-vms-across-waits", | ||
| "retain-workflow-vm", | ||
| "retained-vm-guest-code-gate", | ||
| "retire-step-build-output", | ||
| "retire-step-health-ui", | ||
| "retire-step-queues", | ||
| "retire-step-runtime", | ||
| "retry-eve-connect-timeouts", | ||
| "retry-idempotent-event-posts", | ||
| "retry-vqs-handler-errors-immediately", | ||
| "reuse-runtime-world-for-route-handlers", | ||
| "revert-static-world-target", | ||
| "rich-signals-inline", | ||
| "rich-toes-live", | ||
| "route-bundle-isolation-regression-test", | ||
| "rsfs-replay-telemetry", | ||
| "run-cancel-reason", | ||
| "run-idempotency-docs", | ||
| "run-status-long-poll", | ||
| "run-step-error-hydration", | ||
| "runtime-decryption-error", | ||
| "runtime-schema-validation-failure", | ||
| "safe-wait-until-rejections", | ||
| "salty-ears-act", | ||
| "sealed-log-noop-shared-predicate", | ||
| "sealed-log-spec-seven", | ||
| "secure-package-deps-main", | ||
| "send-event-occurred-at", | ||
| "serializable-abort-controller", | ||
| "serializable-reviver-surfaces", | ||
| "serialization-refactor", | ||
| "setup-graphile-worker-schema", | ||
| "sharp-points-occur", | ||
| "short-step-trace-names", | ||
| "shy-frogs-juggle", | ||
| "shy-turtles-decide", | ||
| "sidebar-request-id", | ||
| "silent-abort-streams", | ||
| "silly-chairs-rest", | ||
| "silly-pears-jam", | ||
| "silver-coins-deny", | ||
| "silver-comics-care", | ||
| "sixty-lands-matter", | ||
| "sixty-plants-shout", | ||
| "skip-changeset-release-deploys", | ||
| "skip-community-worlds-main", | ||
| "skip-perm-tests-when-dac-bypassed", | ||
| "skip-unchanged-generated-writes", | ||
| "skip-world-local-nov-ghosts", | ||
| "slot-event-ids", | ||
| "slot-ids-are-required", | ||
| "slot-only-precondition", | ||
| "slow-bottles-pull", | ||
| "small-cycles-rest", | ||
| "smart-baths-make", | ||
| "smooth-timeline-zoom", | ||
| "socket-info-out-of-cache", | ||
| "soft-peas-speak", | ||
| "sourcemap-config-option", | ||
| "sourcemaps-env-aware-default", | ||
| "sourcemaps-runtime-graceful", | ||
| "spicy-paws-nail", | ||
| "spicy-tigers-ask", | ||
| "split-pane-drag-parity", | ||
| "split-tarballs-from-docs", | ||
| "spotty-lamps-measure", | ||
| "stable-stream-id-timestamps", | ||
| "stale-sveltekit-triggers-main", | ||
| "stamp-world-run-id-spans", | ||
| "start-allow-reserved-attributes", | ||
| "start-cross-run-lineage", | ||
| "start-in-workflow", | ||
| "step-attributes", | ||
| "step-bind-preserves-metadata", | ||
| "step-delivery-ordering", | ||
| "step-execute-duration-metric", | ||
| "step-maxretries-timeout", | ||
| "step-run-required", | ||
| "stream-all-replay-events", | ||
| "stream-close-retry", | ||
| "stream-eof-verify", | ||
| "stream-error-classification", | ||
| "stream-expired-errors", | ||
| "stream-failure-diagnostics", | ||
| "stream-otel-spans", | ||
| "stream-read-key-prefetch", | ||
| "stream-read-v3-reconnect", | ||
| "stream-run-started-page", | ||
| "stream-write-flush-span", | ||
| "stream-writemulti-batching", | ||
| "strong-cups-sip", | ||
| "stso-inline-vs-queue-hop", | ||
| "sveltekit-config-loader", | ||
| "sveltekit-h2-noderequire", | ||
| "sveltekit-public-config-loader", | ||
| "swc-arguments-not-closure", | ||
| "swc-destructuring-default-dce", | ||
| "swc-gitignore-builder", | ||
| "swc-lexical-this-capture", | ||
| "swift-cobras-repair", | ||
| "swift-parks-move", | ||
| "sync-step-followup", | ||
| "tagged-run-id", | ||
| "tall-mice-sink", | ||
| "tame-coats-hug", | ||
| "tame-oranges-lead", | ||
| "tanstack-start-workbench", | ||
| "technical-writing-audit", | ||
| "ten-pets-say", | ||
| "terminal-run-event-replay-main", | ||
| "test-limit-env-config", | ||
| "test-promise-race-prefix-determinism", | ||
| "throttle-in-process-retry", | ||
| "tidy-badgers-build", | ||
| "tidy-buttons-swim", | ||
| "tidy-dodos-observe", | ||
| "tidy-hoops-open", | ||
| "tidy-lamps-sort", | ||
| "tidy-local-shutdown", | ||
| "tidy-rivers-expand", | ||
| "timeline-queued-connector", | ||
| "tired-pigs-hug", | ||
| "tired-spiders-rhyme", | ||
| "trace-nav-tooltips", | ||
| "trace-replay-phases", | ||
| "trace-shortcut-helper-text-color", | ||
| "trace-shortcut-helper-timeline-align", | ||
| "trace-span-markers", | ||
| "trace-viewer-alt-hover", | ||
| "trace-viewer-cleanup", | ||
| "trace-viewer-event-icon-tooltips", | ||
| "trace-viewer-focus-easing", | ||
| "trace-viewer-load-more", | ||
| "trace-viewer-loading-skeleton", | ||
| "trace-viewer-polish", | ||
| "transport-error-redrive", | ||
| "true-hands-grin", | ||
| "ttfs-runid-tag-bit", | ||
| "turbo-drain-hook-run-ready", | ||
| "turbo-mode-first-invocation", | ||
| "turbo-next-workbench-outputs", | ||
| "turbo-next-workbench-vercel-output", | ||
| "turbo-setattr-run-ready", | ||
| "turbo-skip-run-started-preload", | ||
| "type-event-create-results", | ||
| "typed-replay-stream-failures", | ||
| "typography-system-tokens", | ||
| "update-queue-client-version", | ||
| "update-vercel-queue", | ||
| "upgrade-pnpm-11", | ||
| "upgrading-workflows-cookbook", | ||
| "upset-ghosts-rush", | ||
| "utils-side-effects-free", | ||
| "v2-combined-bundle", | ||
| "v4-events-client", | ||
| "v4-events-via-global-fetch", | ||
| "v4-lazy-list-refs", | ||
| "v4-list-explicit-hasmore", | ||
| "v4-trace-propagation", | ||
| "validate-step-id-duplicates", | ||
| "vast-oranges-fail", | ||
| "vercel-hook-min-retention", | ||
| "vercel-world-custom-dispatcher", | ||
| "vercel-world-missing-deployment-id", | ||
| "versioning-docs", | ||
| "vitest-bundle-local-step-deps", | ||
| "vm-determinism-hardening", | ||
| "wait-continuation-rearm", | ||
| "warn-external-workflow-packages", | ||
| "web-analytics-list-reads", | ||
| "web-embeddable-handler", | ||
| "web-h2-noderequire", | ||
| "web-hook-token-lazy", | ||
| "web-local-world-static-injection", | ||
| "web-run-scoped-reads-from-storage", | ||
| "web-runs-infinite-scroll", | ||
| "web-shared-error-family-revivers", | ||
| "web-vercel-preset", | ||
| "webhook-request-passthrough", | ||
| "wet-comics-tell", | ||
| "wild-taxes-guess", | ||
| "windows-events-consumer-poll", | ||
| "windows-inline-sourcemaps", | ||
| "windows-step-registration-cleanup", | ||
| "wise-frogs-thank", | ||
| "wise-planes-tell", | ||
| "witty-pugs-applaud", | ||
| "workflow-function-serialization", | ||
| "world-analytics-time-window", | ||
| "world-capabilities", | ||
| "world-create-run-id", | ||
| "world-factories-create-world", | ||
| "world-get-environment", | ||
| "world-init-cold-start", | ||
| "world-local-bounded-deliveries", | ||
| "world-local-hook-cache-rebuild", | ||
| "world-local-hook-staging-slots", | ||
| "world-local-path-traversal", | ||
| "world-local-resume-redelivery-converge", | ||
| "world-local-retry-transport-failures", | ||
| "world-local-run-failed-not-found", | ||
| "world-local-tighten-id-validation", | ||
| "world-local-untagged-recovery-filter", | ||
| "world-local-windows-unlink-retry", | ||
| "world-module-scope-state", | ||
| "world-runtime-deadline", | ||
| "world-testing-minted-floor", | ||
| "world-vercel-caller-user-agent", | ||
| "world-vercel-create-run-id", | ||
| "world-vercel-enable-h2", | ||
| "world-vercel-get-environment", | ||
| "world-vercel-http-core", | ||
| "world-vercel-protection-bypass", | ||
| "world-vercel-proxy-queue-region", | ||
| "world-vercel-reject-empty-ref-payload", | ||
| "world-vercel-retry-parse-failures", | ||
| "world-vercel-trusted-sources", | ||
| "world-zod-dependency", | ||
| "writable-group-commit", | ||
| "ws-events-transport", | ||
| "ws-strict-fallback", | ||
| "ws-transport-default-on", | ||
| "ws-transport-synthetic-spans", | ||
| "yellow-pianos-relax", | ||
| "zstd-step-error-display", | ||
| "zstd-web-decoder" | ||
| ] | ||
| "tag": "beta" | ||
| } |
Stacked on #3967 (retarget to
mainonce it lands; GitHub does this when the base branch is deleted). Follows the discussion on #3967 about whether to upgrade instead of patching: this PR does the upgrade and removes the patch.Why
@changesets/cli2.29.8 crashes on the E401 that pnpm 11 produces when its OIDC exchange fails, and the crash killed the rest of the beta.48 publish (#3967). v3 handles publish failures per package (#2132, #2155) and publishes in dependency-ordered chunks with a concurrency cap of 10 instead of all 21 packages at once, which also matters if the OIDC failures turn out to be throttling of concurrent token requests.What changes
Dependencies.
@changesets/cli^3.0.1,@changesets/changelog-github^1.0.0. The librariesscripts/check-changesets.mjsuses are now root devDependencies at the ranges the CLI declares, and the script imports them directly instead of resolving them out of the CLI's install. 3.0.2 was published today and is inside the repo's 48-hourminimumReleaseAge, so the lockfile resolves to 3.0.1; a laterpnpm updatewill pick it up. The@changesets/clipatch from #3967 and itspatchedDependenciesentry are removed..changeset/pre/migration. v3 keeps changesets that a "Version Packages" merge has already released in.changeset/pre/rather than listing their ids inpre.json. The migration runs insidereadPreState, so the first v3 command anyone ran (including a developer'schangeset add) would have moved the files. It is done here instead, as git renames of all 683 released changesets, andpre.jsonis now just{ "mode": "pre", "tag": "beta" }. Only.mdfiles directly under.changeset/are pending. Nothing in the repo read the oldchangesetsarray;check-published.mjsreadsmodeandtag, which are unchanged..changeset/config.json.$schemapinned to@changesets/config@4.0.0.format: false. v3 replacedprettierwithformatdefaulting to"auto"; pinning it off keeps changelog output independent of whatever formatter a workspace package happens to pull in.privatePackages: { version: true, tag: true }, the v2 default written out. v3 changed the default to not version private packages, and@workflow/tsconfig(private, not inignore) has been versioned and tagged until now. This keeps behavior identical rather than changing it in a tooling PR.onlyUpdatePeerDependentsWhenOutOfRangeis still honored by v4 config. Separately, v3 bumps peer-dependents bypatchinstead ofmajor, which is the fix we previously needed that option for.release.yml.changesets/action@v2.1.1(pinned to its commit). v2 refuses to run with a v2 CLI, so this and the dependency bump must land together. Inputs are renamed (version-script,publish-script,create-github-releases);setupGitUserandcommitModeno longer exist, and v2 pushes through the GitHub API by default so the release commit stays signed as the branch rules require. It detects what was published from an NDJSON file it names inCHANGESETS_OUTPUT, whichpnpm ci:publishinherits and passes tochangeset publish. The output is nowpublished-packages(waspublishedPackages); both consumers in the workflow are updated andgenerate-release-notes.mjs/generate-release-slack-payload.mjsreceive the same[{name, version}]JSON as before.CLAUDE.md / AGENTS.md. Explains the
.changeset/pre/layout and that nothing there should be edited or deleted.Verified locally
pnpm changeset status --since=origin/mainstill drives the "changeset needed" check in CLAUDE.md (exit 0 here, no packages changed).node scripts/check-changesets.mjson the migrated layout:683 changeset(s) read, 0 pending (pre mode, tag "beta"). It still rejects a changeset mixing@workflow/world-simwith a published package, and one naming a package outside the workspace, and it now also surfaces config validation errors and warnings from@changesets/config.pnpm changeset versiondry run with one temporary@workflow/worldpatch changeset: exit 0,@workflow/world5.0.0-beta.33 → beta.34, 20 dependents bumped as before, changelog entry in the same format, the consumed changeset moved into.changeset/pre/,pre.jsonuntouched. Reverted afterwards..changeset/changelog.mjsalready unwraps.defaultand callsgetReleaseLine(changeset, type, options), which is unchanged in changelog-github 1.0.0.Not in this PR
stablestill runschangesets/action@v1with cli 2.x. Because the action and CLI versions are coupled, a backport must carry the whole of this PR (including its own.changeset/pre/migration, ifstableever enters pre mode) or none of it.supports-colorpeer re-threading that any root re-resolution triggers in this repo; it is not specific to these packages.No changeset: tooling, CI and agent docs only.
🤖 Generated with Claude Code