Commit Graph

1497 Commits

Author SHA1 Message Date
JJ Kasper ca27c0f251 Release @workflow/web package (#529) 2025-12-04 11:24:59 -08:00
JJ Kasper 8b70f2d113 Update to latest Next.js (#528) 2025-12-04 11:17:14 -08:00
Adrian 220a6d40f3 fix (#521) 2025-12-03 18:31:19 -08:00
Peter Wielander 7b4e75627e [docs] Polish AI docs (#508) 2025-12-03 18:25:09 -08:00
Adrian 18610cd34a fix: docs theming (#520)
* fix: index frameworks comp

* fix: active theming

* fix background theming docs

* rename og folder

* remove og
2025-12-03 18:22:46 -08:00
Vercel Release Bot 1ea0826fad Version Packages (beta) (#517)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@workflow/world-testing@4.0.1-beta.27 @workflow/nitro@4.0.1-beta.26 @workflow/next@4.0.1-beta.26 @workflow/cli@4.0.1-beta.26 @workflow/ai@4.0.1-beta.26 @workflow/web-shared@4.0.1-beta.24 @workflow/core@4.0.1-beta.23 @workflow/world-vercel@4.0.1-beta.16 @workflow/nuxt@4.0.1-beta.15 @workflow/sveltekit@4.0.0-beta.20 @workflow/astro@4.0.0-beta.5
2025-12-03 15:50:12 -08:00
Nathan Rajlich c8fa70a2ed Change Vercel queue max visibility to 11 hours (#519) 2025-12-03 15:28:04 -08:00
JJ Kasper 111290151d Stop reading server externals internal list in Next.js (#516) 2025-12-03 14:18:44 -08:00
Vercel Release Bot 4b79bee16c Version Packages (beta) (#513)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@workflow/world-testing@4.0.1-beta.26 workflow@4.0.1-beta.25 @workflow/nitro@4.0.1-beta.25 @workflow/next@4.0.1-beta.25 @workflow/cli@4.0.1-beta.25 @workflow/ai@4.0.1-beta.25 @workflow/web-shared@4.0.1-beta.23 @workflow/core@4.0.1-beta.22 @workflow/builders@4.0.1-beta.21 @workflow/nuxt@4.0.1-beta.14 @workflow/swc-plugin@4.0.1-beta.11 @workflow/sveltekit@4.0.0-beta.19 @workflow/rollup@4.0.0-beta.5 @workflow/astro@4.0.0-beta.4
2025-12-03 12:07:57 -08:00
JJ Kasper ac7997b855 Update to latest swc/core and preserve JSX (#507) 2025-12-03 11:29:27 -08:00
Peter Wielander 02c41cc963 [core] Set UI name of default-export-workflows to the filename (#502) 2025-12-03 11:03:27 -08:00
Sree Narayanan 23e1fc59ca Feat: fastify support with nitro (#386)
* init

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* not using my prototype fastify plugin

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* renamed workbench dir

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* lockfile update

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* removed

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* symlinked workflows dir

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* added readme

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* symlinked client page

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* scope nitro route to allow renderer fallback

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* allow empty json bodies

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* comments

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* improve error handling and cleanup in /api/trigger

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* consistent server replies

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* expect json res

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* fix json res for e2e test 3,4,5,11

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* fix fastify streaming responses

Stream web streams the same way express or hono do. Read the web reader and write each json chunk to reply.raw. Avoids fastifys async iterator quirks that reordered frames and sent undefined data in the output stream tests

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* fix stream responses for e2e tests

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* clearer comments

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* fix streaming res content type. passes all core e2e tests

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* updated dev deps fastify bench

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* fastify logo (light/dark mode)

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* update url

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* fastify docs

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* Apply suggestions from code review

Co-authored-by: Adrian <me@adriandlam.com>

* Update docs/content/docs/getting-started/fastify.mdx

Co-authored-by: Adrian <me@adriandlam.com>

* Update docs/content/docs/getting-started/fastify.mdx

Co-authored-by: Adrian <me@adriandlam.com>

* Update docs/content/docs/getting-started/fastify.mdx

Co-authored-by: Adrian <me@adriandlam.com>

* Update docs/content/docs/getting-started/fastify.mdx

Co-authored-by: Adrian <me@adriandlam.com>

* Update docs/content/docs/getting-started/fastify.mdx

Co-authored-by: Adrian <me@adriandlam.com>

* Update docs/content/docs/getting-started/fastify.mdx

Co-authored-by: Adrian <me@adriandlam.com>

* Update docs/content/docs/getting-started/fastify.mdx

Co-authored-by: Adrian <me@adriandlam.com>

* Sree Narayanan <sreeaadhi07@gmail.com>
DCO Remediation Commit for Sree Narayanan <sreeaadhi07@gmail.com>

I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: c3b6cf9bc4
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 3628b82c1e
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 600117f95a
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 9111151b48
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: aceb6a8ceb
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: b93df58edb
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 628718750e
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 7f523e8013

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* Apply suggestions from code review

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

Co-authored-by: Adrian <me@adriandlam.com>

* nit: standardized package.json

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* mom, my commits are in vercel CI

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* Update docs/content/docs/getting-started/fastify.mdx

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

Co-authored-by: Adrian <me@adriandlam.com>

* Update workbench/fastify/package.json

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* passing workflow error object to err responses

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* Update workbench/fastify/nitro.config.ts

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

Co-authored-by: Adrian <me@adriandlam.com>

* Update workbench/fastify/src/index.ts

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

Co-authored-by: Adrian <me@adriandlam.com>

* feat: add start pg world plugin

* import createReadStream to serve index.html

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* test: add fastify deploy

* fix: add postgres world dep

* use symlink

* chore(deps): remove unused deps from fastify

* docs: update fastify

* Sree Narayanan <sreeaadhi07@gmail.com>
DCO Remediation Commit for Sree Narayanan <sreeaadhi07@gmail.com>

I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 54c3e8a50a663c8e9aacf9c95618f59af1bd2e4c
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 423f722209c64382e86f9f8821253dc4facffe96
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: f76061627fe8d320ce498d44d0a3234abb6432ab
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: a269b8aa8d2fcf0b605cce5a1486cac481cca16e
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: b3cedf7defdb7f97b37862bf2a736d41a6bc5ec8
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 596cf21e79bc82a73b56acb9cab1fc33dbfde975
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 0ea1aa7d95e375d1f04e5501254a9fda815c7694
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: dbc8638b4a952c303e35035204cfdca43b99a059

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* remove fromNodeHandler inside fastify app

* debug print to see stream chunks

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* use readfile and resolve for root route

* moving index.html to /public

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* added back symlinked index.html (to copy during prebuildstep)

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* prebuild and postbuild script to copy and remove index.html

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* Sree Narayanan <sreeaadhi07@gmail.com>
DCO Remediation Commit for Sree Narayanan <sreeaadhi07@gmail.com>

I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: b78bf227f4
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: e7a456548e
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 37ee9ddaa6
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 72912dc279
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 4ebda5b505
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: ccb690f367
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 6b80913d38
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: c9fb3ebd80

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* docs: remove preset in fastify docs

* move public/index.html symlink

* Revert "move public/index.html symlink"

This reverts commit 081d29fe16e7817912d69f1b3a3bcd3a38000d5a.

* removed stream output chunk debug log

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* Sree Narayanan <sreeaadhi07@gmail.com>
DCO Remediation Commit for Sree Narayanan <sreeaadhi07@gmail.com>

I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: df5dfc9849af3cd9e818cd816feec5586137eae7
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 809bacb88461da5e92aec5d31d936222407593b6
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: b270d02ee69ac072eaa4538a31ed110edf852cc2
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: cb73ae5b1f3f7059f4c432b8226f8eb9b0492724
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 2ee3af65040e969b91a491b2bb285cd2ed447e10
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: cab1381b0e08e3453a3e5a66f55d02a8effff0e3
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 9c7471b2fba60079c71951433d9d0649d8399ba3
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 4583452a27c704ba474080d0c560a1b1b9724058

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

* lockfile

* fix

* Sree Narayanan <sreeaadhi07@gmail.com>
DCO Remediation Commit for Sree Narayanan <sreeaadhi07@gmail.com>

I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 40af716dca
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 672e756cc1
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 33b9b3e1f4
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 38ca6e24e9
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: b1ada4ae63
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 472c3394fd
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: fd154df028
I, Sree Narayanan <sreeaadhi07@gmail.com>, hereby add my Signed-off-by to this commit: 7f1bebe93d

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>

---------

Signed-off-by: Sree Narayanan <sreeaadhi07@gmail.com>
Co-authored-by: Adrian <me@adriandlam.com>
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
2025-12-03 10:01:51 -08:00
Peter Wielander 5c1c31db6f [docs] Guide on writing durable agents (#443) 2025-12-02 19:23:15 -08:00
Adrian b086f4b369 fix: add link linting script to docs (#506)
* fix: missing link linting script

* fix: missing bun dep
2025-12-02 16:14:11 -08:00
Pranay Prakash 5dd15452cd Test and benchmark community worlds against e2e tests (#482)
* Add new github workflow

* Enable pull_request trigger for community worlds workflow

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add community worlds manifest and generation scripts

- Add community-worlds.json manifest as single source of truth
- Add scripts/generate-community-worlds-workflow.mjs to generate CI workflow
- Add scripts/generate-community-worlds-docs.mjs to generate docs section
- Update aggregate-benchmarks.js to load community worlds dynamically
- Add pnpm generate:community-worlds script
- Update docs/deploying/world/index.mdx with community worlds

The manifest-based approach allows:
- E2E tests to be auto-generated from the manifest
- Benchmark aggregation to include community worlds
- Docs to stay in sync with tested worlds

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix YAML syntax error - quote strings starting with @

The @ symbol has special meaning in YAML, so package names like
@workflow-worlds/turso need to be quoted.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Redis health-cmd quoting, remove unpublished starter world

- Quote health-cmd when it contains spaces (fixes Docker arg parsing)
- Remove @workflow-worlds/starter as it's not published to npm

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add benchmarks and summary job for community worlds

- Add build job to share artifacts between benchmark jobs
- Add benchmark jobs for Turso, MongoDB, and Redis worlds
- Update summary job to show both E2E and benchmark status matrix
- Add left border/indent to sidebar child items for visual hierarchy
- Update workflow generator to support benchmark generation

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Reuse build artifacts for E2E tests

E2E jobs now depend on the shared build job and download
artifacts instead of rebuilding packages from scratch.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add Worlds Ecosystem dashboard to docs

- Create worlds-manifest.json with official and community worlds
- Add aggregate-worlds-data.mjs script for processing E2E and benchmark results
- Create WorldsDashboard, WorldCard, and BenchmarkChart components
- Add /docs/worlds page showing compatibility status and performance
- Include sample data for development

The dashboard shows:
- E2E test progress per world (pass/fail/skip counts)
- Benchmark performance comparison across all worlds
- Filter by official vs community worlds

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix CI to output JSON test results and add Jazz world

- Update workflow generator to output JSON test results from vitest
- Upload E2E results as artifacts for parsing in summary job
- Summary job now shows actual pass/fail/skip counts per world
- Add Jazz world to worlds-manifest.json (requires external credentials)
- Add update-worlds-status.yml workflow to auto-update dashboard data
- Update TypeScript types to support null lastRun and metrics

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Refactor community worlds to use reusable workflows

Instead of a generated workflow file, integrate community world testing
directly into tests.yml and benchmarks.yml using reusable workflows.

- Add reusable workflows for E2E tests: e2e-community-world.yml (no services),
  e2e-community-world-mongodb.yml, e2e-community-world-redis.yml
- Add reusable workflows for benchmarks: benchmark-community-world.yml,
  benchmark-community-world-mongodb.yml, benchmark-community-world-redis.yml
- Update tests.yml to call reusable workflows for Turso, MongoDB, Redis
- Update benchmarks.yml to include community world benchmarks in summary
- Delete generated community-worlds.yml and generator script

This approach:
- Inherits proper Rust/SWC setup from the main workflows
- Keeps all CI in the established patterns
- Makes adding new community worlds straightforward

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix benchmark timing file naming for community worlds

Add WORKFLOW_BENCH_BACKEND env var support to bench.bench.ts so community
world benchmarks generate timing files with the correct backend suffix
(e.g., bench-timings-nextjs-turbopack-turso.json instead of -local.json).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add @workflow-worlds/starter to community worlds test matrix

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Unify worlds manifest and add dynamic GitHub API fetching

- Merge community-worlds.json into worlds-manifest.json with type field
- Add server-side data fetching from GitHub API for worlds dashboard
- Remove static worlds-status.json, fetch CI artifacts dynamically
- Update all references to use unified manifest format
- Remove obsolete community-worlds.yml and update-worlds-status.yml workflows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Skip community worlds for non-nextjs-turbopack in benchmark summary

Community worlds only run against nextjs-turbopack, so hide the
"missing" rows for Express and Nitro frameworks in the benchmark
comparison tables.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix stream benchmark detection to check for actual TTFB data

The previous check `!== null` incorrectly returned true for undefined,
causing all benchmarks to show TTFB columns. Now explicitly checks
for a number type.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Hide Worlds Ecosystem page from sidebar

The page is still accessible via direct link at /docs/worlds but
won't appear in the navigation until it's been further iterated on.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix review comments: trailing newline and division by zero

- Add trailing newline when replacing Community Worlds section in docs
- Fix division by zero in WorldCard benchmark calculation when metrics is empty

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Consolidate community world workflows with service-type parameter

- Create setup-workflow-dev composite action for common setup steps
- Add service-type input to benchmark-community-world.yml and e2e-community-world.yml
- Use conditional job execution (if: inputs.service-type == 'mongodb') to handle different services
- Update benchmarks.yml and tests.yml to pass service-type parameter
- Delete redundant workflow files:
  - benchmark-community-world-mongodb.yml
  - benchmark-community-world-redis.yml
  - e2e-community-world-mongodb.yml
  - e2e-community-world-redis.yml

Reduces workflow files from 11 to 7 and eliminates ~500 lines of duplicated YAML.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Generate community world test matrix from worlds-manifest.json

Replace hardcoded community world jobs with dynamic matrix generation using
scripts/create-community-worlds-matrix.mjs. This allows adding/removing
community worlds by editing the manifest instead of multiple workflow files.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Apply suggestion from @vercel[bot]

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* Add Samples column and separate local/production benchmarks

- Add Samples column to all benchmark tables showing iteration count
- Separate benchmark results into Local Development and Production sections
- Add explanatory context for each section (localhost vs Vercel deployment)
- Add GitHub action step summaries to e2e community world tests
- Create aggregate-e2e-results.js script for parsing vitest JSON output

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove obsolete generate-community-worlds-docs script

The Worlds Ecosystem page now fetches from worlds-manifest.json at runtime,
making this script unnecessary. The npm script also referenced a non-existent
workflow generator script.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Maximize composite action usage and reorganize benchmark output

- Update setup-workflow-dev composite action with optional Rust, install-dependencies, and install-args inputs
- Update tests.yml to use composite action in unit, e2e-vercel-prod, getTestMatrix, e2e-local-*, and getCommunityWorldsMatrix jobs
- Update benchmarks.yml to use composite action in build, benchmark-local, benchmark-postgres, benchmark-vercel, and getCommunityWorldsMatrix jobs
- Reorganize benchmark output to group by benchmark test with local/production tables within each benchmark
- Remove invalid $schema reference from worlds-manifest.json

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add beads stealth mode stuff (for personal claude memory - will remove stealth if people want)

* Add E2E test results PR comment summary

- Add pr-comment-start job to create/update PR comment when tests start
- Add artifact uploads to all e2e test jobs (vercel-prod, local-dev, local-prod, local-postgres, windows)
- Update e2e-community-world.yml with consistent artifact naming (e2e-community-*)
- Add summary job to aggregate all e2e results and update PR comment
- Extend aggregate-e2e-results.js with --mode aggregate for multi-job PR summary
- Group results by category (Vercel Production, Local Development, etc.)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add step summaries to all e2e test jobs

Add "Generate E2E summary" step to each individual e2e job:
- e2e-vercel-prod
- e2e-local-dev
- e2e-local-prod
- e2e-local-postgres
- e2e-windows

Each job now outputs pass/fail/skip counts to GITHUB_STEP_SUMMARY.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Consolidate community world workflows to single job

Replace 3 mutually exclusive jobs (e2e/e2e-mongodb/e2e-redis) with a single
job that starts services via docker run when needed. This eliminates the
skipped job entries that appear in the GitHub Actions UI.

- Use conditional docker run steps instead of services: block
- Add health check loops to wait for service readiness
- Add cleanup step to stop containers

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix extractWorldId to handle community world artifact naming

Add handling for `e2e-results-community-{world}` pattern so community
world test results are properly extracted (e.g., `e2e-results-community-turso`
now correctly extracts `turso` instead of `community-turso`).

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
2025-12-02 15:12:44 -08:00
Copilot d399c52aa8 Simplify "Remote Access Configuration" section in Vercel World docs (#496) 2025-12-02 13:16:27 -08:00
Vercel Release Bot 00b12be415 Version Packages (beta) (#499) @workflow/world-testing@4.0.1-beta.25 workflow@4.0.1-beta.24 @workflow/nitro@4.0.1-beta.24 @workflow/next@4.0.1-beta.24 @workflow/ai@4.0.1-beta.24 @workflow/web-shared@4.0.1-beta.22 @workflow/core@4.0.1-beta.21 @workflow/builders@4.0.1-beta.20 @workflow/world-vercel@4.0.1-beta.15 @workflow/nuxt@4.0.1-beta.13 @workflow/swc-plugin@4.0.1-beta.10 @workflow/sveltekit@4.0.0-beta.18 @workflow/rollup@4.0.0-beta.4 @workflow/astro@4.0.0-beta.3 2025-12-02 13:01:12 -08:00
Peter Wielander e9494d5816 Update @vercel/queue (#498) 2025-12-02 12:54:50 -08:00
Nathan Rajlich 2f0840bc81 Better error when passing an invalid workflow value to start() (#495) 2025-12-02 12:08:38 -08:00
Nathan Rajlich 555d7a69de Normalize anonymous default export workflow IDs to "default" (#484) 2025-12-02 11:26:29 -08:00
Adrian 71def65656 fix: add private to example astro (#491) 2025-12-02 10:28:24 -08:00
Vercel Release Bot 9916f2a4a6 Version Packages (beta) (#447)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2025-12-02 10:12:48 -08:00
Adrian 95823312e5 fix: path-to-regexp override in package.json (#487) 2025-12-02 09:38:32 -08:00
Peter Wielander 8d4562e856 [world-local] Finish renaming embedded world to local world (#441) 2025-12-02 09:12:40 -08:00
Adrian 1ac5592452 feat: add astro support (#347) 2025-12-02 09:11:46 -08:00
Adrian 2e25421ff0 docs: fix express nitro config (#415)
* docs: fix express nitro config

* docs: remove fromNodeHandler wrapper in express app

* fix: dup import in docs

* docs: fix use srvx toFetchHandler

* docs: express add rollup deps

* test

* simplify express
2025-12-02 09:09:31 -08:00
Hayden Bleasel 103900c058 Patch sidebar indentation bug (#486) 2025-12-02 08:39:08 -08:00
Gal Schlezinger bdde1bd806 core: add span links + message ids to queue spans (#472)
* core: add span links + message ids to queue spans

Signed-off-by: Gal Schlezinger <gal@spitfire.co.il>

* add queue overhead to metrics

Signed-off-by: Gal Schlezinger <gal@spitfire.co.il>

* fix types

Signed-off-by: Gal Schlezinger <gal@spitfire.co.il>

* rename messageId to message.id

Signed-off-by: Gal Schlezinger <gal@spitfire.co.il>

* add changeset

Signed-off-by: Gal Schlezinger <gal@spitfire.co.il>

---------

Signed-off-by: Gal Schlezinger <gal@spitfire.co.il>
2025-12-02 14:11:05 +02:00
Nathan Rajlich e339a2bc77 Add e2e test for spawning child workflows (#475) 2025-12-02 00:30:25 -08:00
Adrian 3c19e909f2 fix: nitro build race conditions (#444)
* test: make dev e2e sequential

* test: increase timeout between tests in dev test

* add logs

* feat: add queue for builds

* refactor: cleanup vite hmr

* chore: cleanup comments

* fix: regex base builder

* test: reduce sleep time between test suites in dev test

* refactor: naming conventions and remove builder value check

* refactor: sveltekit builder queue

* changeset

* fix: regex on base builder workflow code

* test: increase sleep

* format

* fix: make writeFile atomic on workflow entrypoint

* refactor: move build queue to @workflow/builders

* revert: regex stuff with workflow code

* add console log for workflow file changed
2025-12-01 19:55:28 -08:00
Nathan Rajlich 2faddf37f6 Move @workflow/errors package to "dependencies" instead of "devDependencies" (#481) 2025-12-01 17:00:33 -08:00
Adrian cd451e0295 chore(utils): replace execa dependency (#476)
* chore(utils): replace execa dependency

* changeset
2025-12-01 14:15:25 -08:00
Adrian d53bf906ec fix: scan all dirs for standalone builder (#477)
* fix: scan all dirs for standalone builder

* changeset
2025-12-01 13:54:03 -08:00
Adrian bc9b6282c2 fix: @vercel/nft parsing proc file paths in sveltekit adapter (#473)
* fix: build proc paths dynamically

* test

* changeset
2025-12-01 13:00:42 -08:00
Peter Wielander 10c5b91079 [web] Upgrade Next.js to 16 (#465) 2025-12-01 09:23:25 -08:00
Pranay Prakash 6e8e828252 Add stream benchmarks and slightly improve the benchmarking code (#470)
* Add stream benchmarks and cnealup for benchmark code

* 10m delay for local world race

* potential fix for first bute"

* Improve sticky comment stuff

* local world: ignore controller close errors

* show missing data in benchmark comment

* nitrpicks

* Improve leaderboard

* Add benchmark comparisons against main

* changeset
2025-11-30 23:49:37 -08:00
Alex Holovach 34f3f86f31 fix(utils): detect linux ports via /proc (#471)
* fix(utils): detect linux ports via /proc

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>

* extract parsePort helper

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>

* add changeset

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>

---------

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
2025-11-30 14:07:31 -08:00
Peter Wielander 9ea3fa9fd5 [web] Remove peer dependency on world-postgres that can't be resolved during build (#466) 2025-11-30 10:14:33 -08:00
Gal Schlezinger ef8e0e52ab world-postgres: poll faster in pg-boss (#463)
---------

Signed-off-by: Gal Schlezinger <gal@spitfire.co.il>
Co-authored-by: Peter Wielander <mittgfu@gmail.com>
2025-11-30 09:45:40 -08:00
Alex Holovach 109fe593fc [web] add PostgreSQL backend support (#459)
---------

Signed-off-by: Alex Holovach <alex.holovach@kubiks.ai>
2025-11-30 08:42:35 -08:00
Pranay Prakash a8f48c5a08 add benchmarking (#460) 2025-11-29 21:21:49 -08:00
Pranay Prakash 3aee6d7efb Port Peter's Workbench UI to nextjs-turbopack (#458)
* Port Peter's Workspace UI

* Add symlinks for webpack workbench to share UI with turbopack

- Add symlinks for components, hooks, lib directories
- Add symlinks for app/workflows and app/api/workflows
- Install UI dependencies in webpack workbench package.json
- Both webpack and turbopack workbenches now share the same UI code

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Use allWorkflows from @/_workflows instead of custom examples.ts

- Update workflow definitions to include workflowFile field
- Change start route to use allWorkflows like trigger route
- Remove unused examples.ts file
- This allows accessing workflows from any workflow file, not just 99_e2e

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Dynamically generate workflow definitions from allWorkflows

- Remove manual workflow definitions, now auto-generated from _workflows.ts
- Add workflowFile path display in UI (tooltip and fallback description)
- Sort workflows by file name first, then by workflow name
- Fix duplicate key issue by using workflowFile:name as key
- Make description optional since it's inferred from file path

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add default arguments map for workflows that require parameters

- Create DEFAULT_ARGS_MAP to provide sensible defaults for workflows with parameters
- Includes defaults for: addTenWorkflow, hookWorkflow, webhookWorkflow, hookCleanupTestWorkflow, closureVariableWorkflow
- Workflows without entries in the map get empty args array

This allows all workflows to be started from the UI without needing manual argument input for now.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix terminal log colors for better visibility on black background

- Change info logs from text-primary (black in light mode) to text-cyan-400
- Change error logs from text-destructive to text-red-400
- Update stream logs to text-blue-400
- Update result logs to text-green-400
- Change prefix color from text-gray-500 to text-gray-400

All colors now work properly with the terminal's black background regardless of light/dark mode.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Remove toTitleCase transformation, use raw workflow names

- Display workflow names exactly as they are in code (e.g., "addTenWorkflow")
- Remove the toTitleCase helper function
- Simpler and more direct mapping from code to UI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Use monospace font for workflow names

- Apply font-mono to workflow displayName in both card and tooltip
- Makes workflow names more readable and consistent with code style

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Filter out step functions using workflowId property

- Check for 'workflowId' property added by compiler to identify workflow functions
- More reliable than checking function name endings
- Only functions with "use workflow" directive have workflowId property
- Prevents step functions from appearing in the UI

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add symlinks for remaining workflow files and dependencies

- Add symlinks for 2_control_flow.ts, 4_ai.ts, 5_hooks.ts to both workbenches
- Install openai and mixpart dependencies needed by these workflows
- Update DEFAULT_ARGS_MAP with arguments for new workflows:
  - ai: sample weather prompt
  - agent: sample weather prompt for Muscat
  - handleUserSignup: example email address
- All 9 workflow files now available in both workbenches

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Group workflows by file with section headers in UI

- Group workflows by workflowFile and render each group separately
- Add section headers showing the file path for each group
- Use monospace font for file path headers
- Increase spacing between sections (space-y-4)
- Improves visual organization when browsing workflows

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Show default arguments instead of file path in workflow cards

- Display default arguments in the card description line (if present)
- Remove redundant file path since it's now shown in section headers
- Use monospace font for argument display
- Workflows without arguments show no description line

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Display default arguments with multi-line formatting

- Use JSON.stringify with indentation (null, 2) for better readability
- Change from <p> to <pre> with whitespace-pre-wrap
- Arguments now display across multiple lines when needed
- Easier to read complex arguments like webhook tokens

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add workflow runtime duration display with millisecond precision

- Add formatDuration helper to calculate and format runtime
- Show duration in ms, seconds, or minutes based on length
- Formats: "123ms", "5.234s", "2m 15.678s"
- Display duration in monospace font below end time
- Only shown when invocation has completed (endTime exists)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Update default arguments to match e2e test values

- Use arguments from packages/core/e2e/e2e.test.ts for accuracy
- addTenWorkflow: 123 (instead of 5) to match test expectations
- closureVariableWorkflow: 7 (instead of 42) to match test expectations
- Use Math.random().toString(36) for hook/webhook tokens (matches test pattern)
- Add comment referencing e2e test source

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-11-28 21:43:27 -08:00
Nathan Rajlich 0f1645b8a2 Ignore rejections in waitedUntil promise (#452) 2025-11-28 08:51:22 -08:00
Nathan Rajlich 172e0151ba Add AI provider step wrapper functions (#428) 2025-11-26 23:51:12 -08:00
Nathan Rajlich 5b918611fc Apply workflow function transformation in "step" mode (#420) 2025-11-26 23:35:53 -08:00
Nathan Rajlich 0cacb99fcc Support nested "use step" declarations in non-workflow functions (#418) 2025-11-26 23:20:04 -08:00
Vercel Release Bot 87ad24b3b6 Version Packages (beta) (#416) @workflow/world-postgres@4.1.0-beta.15 @workflow/world-testing@4.0.1-beta.23 workflow@4.0.1-beta.22 @workflow/nitro@4.0.1-beta.22 @workflow/next@4.0.1-beta.22 @workflow/cli@4.0.1-beta.22 @workflow/ai@4.0.1-beta.22 @workflow/web-shared@4.0.1-beta.20 @workflow/core@4.0.1-beta.19 @workflow/world-vercel@4.0.1-beta.13 @workflow/world-local@4.0.1-beta.13 @workflow/nuxt@4.0.1-beta.11 @workflow/swc-plugin@4.0.1-beta.8 @workflow/world@4.0.1-beta.7 @workflow/core@4.0.1-beta.1 @workflow/sveltekit@4.0.0-beta.16 @workflow/rollup@4.0.0-beta.2 2025-11-26 19:55:04 -08:00
Peter Wielander 17904fc7b4 [ai] Pass messages to step functions in DurableAgent and add prepareStep callback (#446) 2025-11-26 19:45:34 -08:00
Adrian 6dd17500da refactor: move rollup plugin to own package (#382)
* refactor: move rollup plugin to own package

* refactor(sveltekit): update sveltekit to use rollup package

* Update packages/rollup/src/index.ts

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>

* chore(deps): missing nitro dep

* chore(deps): remove unused deps from @workflow/rollup

* changeset

* chore: project LICENSE symlinks

* refactor: move @swc/core version to pnpm workspace

* chore: cleanup and add readme

---------

Co-authored-by: vercel[bot] <35613825+vercel[bot]@users.noreply.github.com>
2025-11-26 16:02:13 -08:00
Boris Besemer 40057db00b [world-local] bounded concurrency for queue (#401) 2025-11-26 13:38:22 -08:00