104 Commits

Author SHA1 Message Date
Peter Wielander 63fe524dc0 Revert "Publish 4.x under the previous dist-tag (#3091)" (#3168)
This reverts commit 3b839446a9.
2026-07-28 14:14:16 -07:00
Peter Wielander 3b839446a9 Publish 4.x under the previous dist-tag (#3091) 2026-07-24 16:16:53 -07:00
github-actions[bot] 489ed710cc Make sure that everyone is still /docs code owners (#2939) (#2945) 2026-07-15 11:44:16 -07:00
github-actions[bot] df622965f2 Add team-python to CODEOWNERS for docs (#2936) (#2938) 2026-07-15 09:26:33 -07:00
Nathan Colosimo 3b46dab148 Fix Workflow loader source map warnings (#2693) (#2926)
Co-authored-by: JJ Kasper <jj@jjsweb.site>
2026-07-14 22:52:21 +00:00
github-actions[bot] c5d14c8a89 Backport #2545: Remove lazy discovery from workflow/next (#2557)
* Remove lazy discovery from workflow/next (#2545)

Signed-off-by: JJ Kasper <jj@jjsweb.site>

* Remove lazy discovery config from Next workbenches

---------

Signed-off-by: JJ Kasper <jj@jjsweb.site>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: JJ Kasper <jj@jjsweb.site>
2026-06-22 20:10:34 +00:00
github-actions[bot] e0a4da4f9c Update default CODEOWNERS (#2556) (#2559)
Co-authored-by: JJ Kasper <jj@jjsweb.site>
2026-06-22 13:08:39 -07:00
github-actions[bot] 3bb5de1669 feat(cli): print run deep links with --url, fix dashboard route (#2467) (#2469)
Add a `--url` flag to `inspect`/`web` that prints a run's observability
dashboard deep link to stdout and exits — no browser, no local server —
so scripts and agents can share a link instead of opening a UI.

Fix the Vercel dashboard URL to the current
`…/workflows/runs/<id>?environment=<env>` route (drop the legacy
`/observability` segment) and respect `--env`. Apply the same route fix
to the e2e helpers, CI aggregation scripts, and the nextjs-turbopack
workbench. Document deep-linking in the workflow skill and observability
docs.

Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-16 18:52:47 -07:00
Peter Wielander 32e83e8091 Prevent peer dependency-only major bumps (backport #2437) (#2447)
Backport of #2437 to the stable (v4) release line.

- Add publish-time release-major guard (.github/scripts/check-release-major.js)
  run in release.yml before install, gated on RELEASE_VERSION: 4.
- Realign @workflow/nest from 0.0.10 to 4.0.11 so the v4 stable line has no
  out-of-line package majors (nest skipped straight to 5.0.0-beta on main and
  had no 4.x version). Required for the guard to pass on stable.

The .changeset/config.json onlyUpdatePeerDependentsWhenOutOfRange option from
#2437 was already present on stable.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 10:34:29 -07:00
Peter Wielander a86f3bd7dd [ci] Fix stable CI flakes: windows unit timeouts, matrix-job cache failures (#2358) 2026-06-11 14:09:03 +02:00
github-actions[bot] 38511ad632 Fix e2e failure reporting under vitest 4 and preserve fetch error causes (#2355) (#2357) 2026-06-11 12:39:59 +02:00
Pranay Prakash bc2cf32eb2 [stable] Fix Next deferred step registration under Turbopack (#2298)
* fix(next): preserve lazy step registration on stable

Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>

* refactor(next): reuse deferred step directory constant

Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>

* test: gate deferred dev checks explicitly

---------

Signed-off-by: Pranay Prakash <pranay.gp@gmail.com>
Co-authored-by: JJ Kasper <jj@jjsweb.site>
2026-06-08 21:29:08 +00:00
Peter Wielander bdca8fc7d9 [e2e] Fix event-log-race-repro stuck run reporting (#2195) 2026-06-01 12:28:54 +02:00
Peter Wielander ac59dc3ab5 [e2e] Improve error labeling in event-log-race-repro CI job (#2190) (#2194) 2026-06-01 11:22:46 +02:00
Peter Wielander d588467e69 [ci] Fix community-world E2E test timing out + fail-fast(#2189) 2026-06-01 09:32:52 +02:00
github-actions[bot] c0e4abf47c [e2e] Add event-log-race-repro label for triggering CI stress-test (#2159) (#2173) 2026-05-30 09:53:03 +02:00
Nathan Rajlich cab9a5334f docs(stable): update docs/README and docs-checks comment for tarballs move (#2094)
Per-deployment SDK tarballs are now built by the tarballs/ app, not by
docs/. Remove the outdated reference to docs/scripts/pack.ts (which no
longer exists) and point readers at tarballs/README.md.
2026-05-22 11:58:29 -07:00
Nathan Rajlich 3621f8d058 [backport] [ci] Stop using Release App token + bump pnpm/action-setup (#1918)
* ci: upgrade pnpm/action-setup to v5 and read version from package.json (#1785)

* ci: upgrade pnpm/action-setup to v6 and read version from package.json

Removes hardcoded pnpm version (10.14.0) from all workflows and instead
reads the version from the packageManager field in package.json, so CI
stays in sync with the version used locally.

* ci: update setup-workflow-dev composite action to use pnpm/action-setup@v6

Also removes the pnpm-version input since the action now reads the
version from package.json#packageManager.

* ci: downgrade pnpm/action-setup to v5

v6 installs pnpm 11 RC/beta, which has a regression
(pnpm/pnpm#11264, pnpm/action-setup#225/#227/#228) that causes
'ERR_PNPM_BROKEN_LOCKFILE: expected a single document in the stream'
when the project's packageManager pins a 10.x pnpm version. v5 is the
latest stable release before v6 and supports reading the version from
package.json#packageManager.

* ci: stop using Release App token in release workflows (#1866)

The Release App has been temporarily removed. Switch the Release and
Backport workflows to use the default GITHUB_TOKEN, and disable the
cross-repo Front dispatch workflow until the App is restored.

Also add a workflow_dispatch trigger to release.yml so the Version
Packages PR can be created/updated manually (since pushes made by
GITHUB_TOKEN do not trigger downstream workflow runs).

* ci: use GitHub API commit mode for changesets action (#1867)

The repo enforces "Commits must have verified signatures" via an
org/enterprise-level ruleset, which blocks unsigned commits pushed via
the Git CLI by GITHUB_TOKEN. Switching the changesets action to
commitMode: github-api makes commits GPG-signed by GitHub.

* Add changeset for backport

* Potential fix for pull request finding

Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Nathan Rajlich <n@n8.io>

---------

Signed-off-by: Nathan Rajlich <n@n8.io>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
2026-05-04 14:26:23 -07:00
Peter Wielander bb910f2571 [backport] [workbench] Add TanStack Start workbench (#1875, #1907) (#1914)
* [workbench] Add TanStack Start workbench and tests (#1875)

(cherry picked from commit 8202663857)

* Fix pnpm type issue after tanstack PR (#1907)

(cherry picked from commit a7071bf3d4)
2026-05-04 19:30:39 +00:00
Peter Wielander eb54dd8544 [backport] Split tarball hosting out of docs into its own project (#1893) (#1899) 2026-05-04 12:33:00 +09:00
Peter Wielander 677867bd19 [backport] ci: switch Vercel deployment-protection bypass to OIDC Trusted Sources (#1897)
Backport of #1882
2026-05-03 02:45:01 +00:00
Peter Wielander 47aa68534f [docs] Restore minimal Next.js placeholder on stable (#1786) 2026-04-16 16:45:24 -07:00
Nathan Rajlich 543216060b Remove docs app from stable branch, keep docs/content/ for npm releases (#1771)
The docs Next.js app is deployed only from main. Remove the app code
(components, layouts, configs, styles) from stable to eliminate
cherry-pick conflicts during backports. Keep docs/content/ which
contains the markdown files that are bundled into npm packages via
prepack scripts for AI agent consumption.
2026-04-16 13:13:09 -07:00
Peter Wielander 41dd333216 [ci] Run e2e tests on stable
Signed-off-by: Peter Wielander <mittgfu@gmail.com>
2026-04-16 12:32:09 -07:00
Nathan Rajlich f8badf51a7 Remove redundant npm dist-tag management step from release workflow (#1651)
Changesets already handles dist-tags correctly:
- On main: pre-release mode publishes with the 'beta' tag
- On stable: GA publishes default to the 'latest' tag
2026-04-08 20:22:30 +00:00
Pranay Prakash 125c38708e [changeset] Exit pre-release mode (to release 4.2 stable) (#1508) 2026-04-06 13:52:46 -07:00
Peter Wielander d631152a65 Support dual-branch releases (stable + main) (#1620)
- Add `stable` to release workflow trigger branches
- Make npm dist-tag conditional: `stable` gets `latest`, `main` keeps `beta` (from changeset publish)
- Make GitHub release flags branch-aware: stable = latest + non-prerelease, main = prerelease + not latest
- Change changeset baseBranch to `stable` for this branch
2026-04-06 13:51:53 -07:00
Nathan Rajlich 9d195308c2 fix(ci): use Node 24 for releases and remove npm self-update (#1614) 2026-04-06 09:43:03 -07:00
Peter Wielander 2b07294313 [core] Ensure open stream flush is await-able in pendingOps (#1446) 2026-03-20 13:28:05 -07:00
Pranay Prakash afa3931a59 Add stress benchmarks: 1000-step, data payload, and stream tests (#1214) 2026-03-19 16:59:09 -07:00
Pranay Prakash cd4abd80fe test: improve e2e test failure diagnostics (#1426)
* test: improve e2e test failure diagnostics with run context and GitHub annotations

When e2e tests fail, automatically dump workflow run diagnostics (status,
input/output, error details, event timeline, dashboard link) to the CI
logs. Emit GitHub Actions annotations that surface on PR file diffs.
Fix collectedRunIds which was declared but never populated, enabling
observability links in the PR comment. Enrich the aggregation script
to include run IDs and dashboard URLs for failed tests.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: increase diagnostics hook timeout and fix flaky Vercel Prod tests

- Increase onTestFailed hook timeout to 30s (default was 10s) so
  diagnostics can fetch run data even after slow test timeouts
- parallelSleepWorkflow: increase elapsed threshold from 10s to 25s to
  accommodate Vercel cold start latency
- webhookWorkflow: increase hook polling deadline from 30s to 60s and
  test timeout from 60s to 120s for slow Vercel webhook registration
- readableStreamWorkflow: stop reading once expected content is received
  instead of waiting for stream close (which can hang on Vercel), and
  increase test timeout to 120s

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: emit ::error annotations via process.stdout.write to bypass vitest ANSI prefix

Vitest's console interceptor prepends ANSI escape codes to console.log
output, which prevents GitHub Actions from parsing ::error workflow
commands. Use process.stdout.write() directly to ensure clean output.

Also enhance the custom reporter to emit annotations in onFinished
(which runs after vitest output is complete) as a reliable fallback,
and enrich failure data from the diagnostics sidecar.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: only show observability links for vercel-prod test failures

Community world and local tests don't run on Vercel's backend, so
dashboard links are meaningless for those categories. Previously,
test name collisions across sidecar files could cause community
test failures to show Vercel dashboard URLs from vercel-prod runs.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix: link annotations to test files instead of symlinked workflow sources

The workflow source files in workbench/ are symlinks that GitHub can't
resolve, causing annotations to show raw paths like #L0 instead of
linking to code. Now:
- utils.ts: omit file= from onTestFailed annotations (just show title)
- github-reporter.ts: use the actual test file path (e.g.
  packages/core/e2e/e2e.test.ts) which GitHub can resolve

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-17 19:47:26 -07:00
Peter Wielander 40c2d95a3a Enable DurableAgent tests (#1411) 2026-03-17 00:09:02 +00:00
Nathan Rajlich 9a114b9213 ci: fix git identity for changesets Version Packages commit (#1357)
Set setupGitUser: false on changesets/action to prevent it from
overwriting our git config with the hardcoded github-actions[bot]
identity. The git identity is now configured in a prior step using
the app-slug output from actions/create-github-app-token.
2026-03-12 14:04:54 -07:00
Nathan Rajlich 7f17b075df ci: configure git identity for GitHub App bot account (#1356)
Set git user.name and user.email so that the 'Version Packages' commit
created by changesets/action is attributed to the app's bot account
instead of the default github-actions[bot].
2026-03-12 12:38:35 -07:00
Nathan Rajlich 5811beb8d9 ci: use dedicated GitHub App token instead of shared PAT (#1351)
Replace GH_TOKEN_PULL_REQUESTS (shared org PAT) with a dedicated GitHub
App token to avoid rate limiting from noisy neighbors. The app token is
generated per-run via actions/create-github-app-token, providing its own
rate limit bucket and short-lived credentials.
2026-03-12 12:00:09 -07:00
Peter Wielander 456c1aa455 Add vitest plugin for testing full workflows without setting up a server (#1237) 2026-03-05 16:08:48 -08:00
Nathan Rajlich c35b597552 fix(ci): fix npm 'latest' dist-tag not being set during release (#1255)
* fix(ci): fix npm 'latest' dist-tag not being set during release

The OIDC trusted publishing change (a78af46f) removed NPM_TOKEN from the
changesets/action step and added registry-url to actions/setup-node. This
caused the 'Add latest dist-tag' step to break for the unscoped 'workflow'
package:

- actions/setup-node writes an .npmrc at a temp path that references
  ${NODE_AUTH_TOKEN}, and sets NPM_CONFIG_USERCONFIG to point at it
- The dist-tag step was writing its own ~/.npmrc using NPM_TOKEN, but npm
  ignored it because NPM_CONFIG_USERCONFIG overrides the default path
- The OIDC token left over in NODE_AUTH_TOKEN worked for @workflow/* scoped
  packages (which already had 'latest' set) but returned E401 for the
  unscoped 'workflow' package

Fix: set NODE_AUTH_TOKEN to NPM_TOKEN_ELEVATED secret so npm picks up the
correct token from the .npmrc that actions/setup-node already configured.

Also fix silent failures: replace the piped while-read loop (which runs in
a subshell and swallows exit codes) with a for loop that tracks failures
and exits non-zero if any dist-tag operation fails.

* use process substitution instead of word-splitting for loop
2026-03-04 09:51:45 -08:00
JJ Kasper a9fea9132e Update workbench tests to build and run outside of monorepo (#1230)
* Setup fixes

* ci: run local e2e against staged tarball workbenches

* ci: update staged workbench tarball setup script

* chore: set nextjs workbenches back to next 16.1.6

* update lock

* test(e2e): resolve workbench path from WORKBENCH_APP_PATH

* fix: address deferred builder issues outside monorepo

* ci: stage tarball workbenches only for nextjs local e2e

* fix(next): discover deferred steps imported via workflows

* test(core): gate deferred step-discovery dev test to canary

* test(e2e): cover cross-file imported step in build/start lanes

* fix(e2e): use local manifest in local runs and relax dev rebuild timeout

* fix(workbench): add imported-step workflow symlink for sveltekit/astro

* test(e2e): scope imported-step workflow test to nextjs lanes

* fix(next): rebuild deferred entries on discovered file updates

* fix(next): watch transitive deferred step deps for dev rebuilds

* fix(next): restore socket-driven deferred step rebuilds

* add changeset

* chore: address review feedback on deferred e2e updates

* fix(cli): guard stream flush against closed write streams
2026-03-03 11:17:39 -08:00
Karthik Kalyan e2420bed29 fix sync front dispatch job (#1244) 2026-03-02 18:24:54 -08:00
Karthik Kalyan 596f9bf139 [workflow] dispatch front release PR sync workflow (#1224)
* sync front release PR on changeset

* Add github dispatcher for raising PRs on workflow releases on front
2026-03-02 11:57:11 -08:00
Peter Wielander d69c80b79d [ci] Disable claude code CI (#1231) 2026-03-01 12:53:39 -08:00
Pranay Prakash 45800b474b Fix OG image routing under i18n (#1176)
* Fix og route handling in i18n middleware

* Add docs CI smoke test for OG and sitemap

* Run docs OG checks against Vercel preview

* Refactor docs CI checks and rename smoke test

* Use docs Vercel token for preview checks

* Expand docs OG smoke coverage

* Check docs HTML OG metadata
2026-02-23 23:40:46 -08:00
Nathan Rajlich 81a883bc9b ci: don't cancel in-progress CI runs on main branch (#1166)
* fix: use types.isNativeError() for cross-VM Error serialization

FatalError was not properly serialized when passed from workflow code into a step function because the Error reducer checked `value instanceof global.Error` where `global` is the VM's globalThis. Errors created in the host context (like FatalError from @workflow/errors) have a different Error prototype than the VM context, so the instanceof check returned false and the error was silently dropped.

Replaced with `types.isNativeError()` from `node:util` which uses V8's internal type tag and works across VM context boundaries.

* ci: don't cancel in-progress CI runs on main branch
2026-02-24 06:50:59 +00:00
Nathan Rajlich a78af46f0e Configure Release job for OIDC trusted publishing (#1138) 2026-02-23 16:47:34 -08:00
Peter Wielander 2b7e7daca0 [ci] Add code owners file (#1173) 2026-02-23 16:14:26 -08:00
JJ Kasper b733e2a173 Unlock canary Next.js version in tests and bump min deferred version (#1088)
* Unlock canary Next.js version

* bump min version
2026-02-16 17:27:16 -08:00
Peter Wielander 0edcccf84d [ci] Skip for CI checks when doing vercel backend testing only (#1063) 2026-02-15 18:37:17 +00:00
JJ Kasper 550997659d Update tests.yml triggers for release PR (#1048) 2026-02-14 02:31:22 +00:00
JJ Kasper 565e5ebd56 Lock Next.js canary version (#1054) 2026-02-13 23:13:44 +00:00
JJ Kasper 26399c107a ci: add 30-minute timeouts to test jobs (#1052) 2026-02-13 14:45:23 -08:00