Commit Graph

402 Commits

Author SHA1 Message Date
Vercel Release Bot 62cde6dd8d Version Packages (beta) (#696) workflow@4.0.1-beta.38 2025-12-28 18:07:16 +01:00
Chris Tate 25bfa52d02 Fix: Handle object-style finishReason for AI SDK v5/v6 compatibility (#695)
---------

Signed-off-by: Peter Wielander <mittgfu@gmail.com>
Co-authored-by: Peter Wielander <mittgfu@gmail.com>
2025-12-28 18:00:25 +01:00
Peter Wielander 80955e7212 [cli] [web] Allow opening web UI without config validation, show better UI when runs can't be found (#684) 2025-12-28 17:55:24 +01:00
Peter Wielander f989613d70 [web] Add error boundaries around UI in run detail view (#694)
Signed-off-by: Peter Wielander <mittgfu@gmail.com>
2025-12-28 14:08:11 +01:00
Vercel Release Bot e6b1bef5bb Version Packages (beta) (#693) workflow@4.0.1-beta.37 2025-12-27 12:40:09 -08:00
Karthik Kalyanaraman e3f0390469 Workflows graph extractor (#455)
---------

Signed-off-by: Karthik Kalyanaraman <karthik@scale3labs.com>
2025-12-27 16:52:19 +01:00
Chris Tate b97b87b4fe Add AI SDK v6 support (#692) 2025-12-27 16:24:54 +01:00
Vercel Release Bot 96a4d3a2fd Version Packages (beta) (#676)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
workflow@4.0.1-beta.36
2025-12-24 09:51:14 -08:00
Chris Tate 26d9769335 ai sdk parity for DurableAgent (#668)
### Key Changes

**Generation Settings**
- Support for `temperature`, `maxOutputTokens`, `topP`, `topK`, `presencePenalty`, `frequencyPenalty`, `stopSequences`, `seed` at constructor and per-stream level

**Step Control**
- Added `maxSteps` to limit LLM calls (default: unlimited for backwards compatibility)
- Added `toolChoice` (`auto`, `none`, `required`, or specific tool)
- Added `activeTools` to filter available tools per-stream call

**Callbacks**
- `onChunk` - called for each stream chunk
- `onStepFinish` - called after each step completes  
- `onFinish` - called when all steps complete
- `onError` - called on errors
- `onAbort` - called when aborted via `AbortSignal`

**Structured Output**
- Added `experimental_output` with `Output.object({ schema })` for parsing structured responses

**Context & Telemetry**
- Added `experimental_context` to pass data to tool executions
- Added `experimental_telemetry` for observability

**Stream Result**
- `stream()` now returns `{ messages, steps, experimental_output }` instead of just `{ messages }`

**Other**
- `prepareStep` can now override generation settings, toolChoice, and context
- Added `experimental_repairToolCall` for handling malformed tool calls
- Enabled file, source, and tool input streaming chunks
- Exported all new types from `@workflow/ai`
2025-12-24 09:37:02 -08:00
Peter Wielander d9f6a49397 [world-local] Create dataDir on start and add versioning forward-compat (#681) 2025-12-23 20:43:03 +01:00
Peter Wielander 0cf0ac3211 [util] Extract helper function to find local world dataDir across CLI/UI (#682) 2025-12-23 20:42:42 +01:00
JJ Kasper 8ba8b6be6b Revert extra stdlib re-export (#683) 2025-12-23 12:04:47 -06:00
Peter Wielander 25b02b0bfd [runtime] Add CORS headers and request handling to health check check response (#624) 2025-12-23 14:17:17 +01:00
Peter Wielander c059cf6fcd [cli] Only do interactive pagination when using the -i flag (#669) 2025-12-23 14:05:06 +01:00
Peter Wielander 4bc98ff4a1 [web-shared] Move error boundary from web to web-shared and use for sidebar detail view (#674) 2025-12-23 14:02:36 +01:00
JJ Kasper ea3afce222 Add lazy workflow and step discovery in Next.js (#640) 2025-12-22 23:16:17 -06:00
Malte Ubl 3f0a2e76d2 Bring back agent sitemap code (#665)
Original PR #108

This was deleted in a bad merge here https://github.com/vercel/workflow/commit/c0991b4ff795687bb477e96f6b4261a2c8a5bc61#diff-4f67490b6b20a5606964421a564836c3033f0ff2b0d90a41fe8822001d217f20

Also introduces proper canonical URLs and alternates for the MD responses.

Signed-off-by: Malte Ubl <malte.ubl@gmail.com>
2025-12-22 11:17:19 -08:00
Nathan Rajlich c3464bfd97 Fix race conditions in webhook response handling (#672)
Fixes flaky `webhookWorkflow` e2e test on "local" test suites
2025-12-22 10:41:08 -08:00
Vercel Release Bot 0143da749d Version Packages (beta) (#675) 2025-12-22 16:22:58 +01:00
Peter Wielander cbf9b46aea [ci] Github changelog: fix packages that haven't changed being re-listed with same changes (#664) 2025-12-22 16:19:53 +01:00
Peter Wielander 616bc67be4 [web-shared] Fix null access in eventData (#673) 2025-12-22 16:18:17 +01:00
Vercel Release Bot 560dda3014 Version Packages (beta) (#660) workflow@4.0.1-beta.35 2025-12-20 10:58:29 +01:00
Peter Wielander 696ef450f2 [ci] Fix github changelog generation missing some PR links (#663) 2025-12-20 10:50:12 +01:00
Peter Wielander f2d5997b80 [world-local] Throw an error when trying writing JSON that fails entity validation 2025-12-20 10:44:00 +01:00
Peter Wielander 88ad5c9bbf [web] Fix hook span display if hooks were already disposed (#658) 2025-12-20 09:52:32 +01:00
Peter Wielander ef22f82c9e [web] Allow resuming hooks with payloads from the UI (#656) 2025-12-20 09:27:01 +01:00
Vercel Release Bot bd3385ff6d Version Packages (beta) (#652)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
workflow@4.0.1-beta.34
2025-12-19 15:41:36 -08:00
Nathan Rajlich 75a5060473 Handle Vercel Queue 24 hour message TTL by re-enqueueing message (#651) 2025-12-19 15:30:51 -08:00
Nathan Rajlich eaf9aa65f3 Don't shadow globalThis (#649) 2025-12-18 15:37:52 -08:00
Nathan Rajlich 6cd1a47b31 Additional error debugging when failing to validate server response (#647) 2025-12-18 15:17:33 -08:00
Adrian f39683370d fix: include next config in web package (#646)
* fix: include next config in web package

* changeset
2025-12-18 15:10:45 -08:00
Adrian ea3815c75d docs: mention nextjs breaking change with workflow compatibility (#645) 2025-12-18 13:41:54 -08:00
Peter Wielander 187225fa64 Fix release target (#644) workflow@4.0.1-beta.33 2025-12-18 20:46:38 +01:00
Peter Wielander 2a3bbb79e8 Fix releasing as latest on npm, but not within changeset (#643) 2025-12-18 20:41:46 +01:00
Vercel Release Bot b4132d0895 Version Packages (beta) (#635) 2025-12-18 20:07:06 +01:00
Peter Wielander 28224fff13 Compile release note summaries using custom script in CI (#637) 2025-12-18 19:06:05 +01:00
Pranay Prakash ea2a67e19c perf: parallelize suspension handler for high-concurrency (#544)
The current implementation of suspension handler processes the invocation queue sequentially which is really slow. Now we process is in parallel:

- Process hooks first, then steps and waits in parallel to prevent race conditions
- Refactor runtime.ts into modular files: `suspension-handler.ts`, `step-handler.ts`, `helpers.ts`
- nit: Add otel attributes for hooks created (`workflow.hooks.created`) and waits created (`workflow.waits.created`)
- nit: Update suspension status from `pending_steps` to `workflow_suspended`
2025-12-17 18:43:09 -08:00
Adrian ab55ba2d61 fix: disable RSC dedupe request through world-vercel (#639)
* fix: add request header for world-vercel

* changeset
2025-12-17 15:43:10 -08:00
Peter Wielander 712f6f86b1 [worlds] [runtime] Change serialized stream ID gen from v4 UUIDs to ULIDs and fix stream list endpoint (#625) 2025-12-17 20:44:34 +01:00
Peter Wielander 4bdd3e5086 Move auth error messages into @workflow/errors package (#638) 2025-12-17 16:54:29 +01:00
Peter Wielander c6f33ee9d3 [web] Show event markers for step_started events (#636) 2025-12-17 10:35:09 +01:00
Nathan Rajlich c4402a12cc Reduce flaky idempotency test timeout on Windows (#581)
The `idempotency` test was running **110 concurrent steps** (10 + 100), with each step requiring multiple filesystem operations in the local world:

1. **Step creation** - writes step JSON file
2. **Step update** - reads and overwrites step JSON file
3. **Event creation** - writes event JSON file

That's ~3-4 file operations per step × 110 steps = **330-440 total file operations**.

On Windows, this is especially slow because:
- **NTFS** is slower than ext4/APFS for small file writes
- **Windows Defender** real-time scanning adds latency to new file creation
- The **atomic write pattern** (write temp file → rename) is slower on Windows

Reduced the number of steps from **110 to 20** (5 + 15 instead of 10 + 100):

**`workflows/noop.ts`**:
- First batch: 10 → 5 steps
- Second batch: 100 → 15 steps

**`src/idempotency.mts`**:
- Updated assertion to expect 20 numbers instead of 110

This is ~5.5x fewer file operations while still testing the same concurrent step execution and idempotency behavior. The test should now complete well within the 60-second timeout even on slow Windows CI machines.
2025-12-17 00:03:56 -08:00
Peter Wielander ce7d428a07 [world-local] Fix step queries not returning new items for live pagination (#623) 2025-12-17 08:58:42 +01:00
Peter Wielander a84f0db227 [web] Visually distinguish createdAt vs startedAt for run/steps (#622) 2025-12-17 08:58:18 +01:00
Vercel Release Bot fc6a32d6dc Version Packages (beta) (#607) @workflow/nitro@4.0.1-beta.30 @workflow/next@4.0.1-beta.31 workflow@4.0.1-beta.32 @workflow/world-testing@4.0.1-beta.33 @workflow/world-postgres@4.1.0-beta.20 @workflow/world-local@4.0.1-beta.18 @workflow/ai@4.0.1-beta.32 @workflow/web-shared@4.0.1-beta.28 @workflow/utils@4.0.1-beta.7 @workflow/sveltekit@4.0.0-beta.24 @workflow/world-vercel@4.0.1-beta.20 @workflow/web@4.0.1-beta.17 @workflow/builders@4.0.1-beta.26 @workflow/errors@4.0.1-beta.9 @workflow/core@4.0.1-beta.27 @workflow/cli@4.0.1-beta.32 @workflow/nuxt@4.0.1-beta.19 @workflow/astro@4.0.0-beta.9 2025-12-16 21:05:18 +01:00
Adrian 29967bff90 fix: nitro duplicate building workflows on startup (#619) 2025-12-16 12:04:05 -08:00
Peter Wielander deaf0193e9 [world-vercel] Allow skipping vercel backend proxy for e2e tests where CLI runs in runtime env (#627) 2025-12-16 20:44:05 +01:00
Adrian 89ad239516 remove react-router workbench (#631) 2025-12-16 10:46:31 -08:00
Adrian 1ef6b2fdc8 fix: use workflow health endpoint to check for port (#616)
* chore: use workflow health endpoint to check for port

* chore: update comment

* changeset

* Fix: The JSDoc comment for the `probePort` function is outdated and doesn't match the implementation. It claims the function returns true for "non-404 response" but the code now checks for exactly 200 status.

This commit fixes the issue reported at packages/utils/src/get-port.ts:251

## Outdated JSDoc comment in probePort() function doesn't match implementation

**What fails:** The JSDoc comment at line 251 of `packages/utils/src/get-port.ts` claims the `probePort()` function `@returns true if the port responds as a workflow server (non-404 response)`, but the actual implementation at line 269 explicitly checks `return response.status === 200;`

**How to reproduce:**
1. Read the JSDoc comment for `probePort()` function in `packages/utils/src/get-port.ts` (line 251)
2. Read the implementation at lines 268-269
3. Observe the mismatch: the comment says "non-404 response" but code checks for exactly status 200

**What happened vs expected behavior:**
- The code behavior was changed in commit `34cb235` (Dec 15, 2025) from checking `response.status !== 404` to checking `response.status === 200`
- The internal code comments were updated in commit `5840ab2`, but the JSDoc was left outdated
- Developers reading the JSDoc would incorrectly believe the function accepts any non-404 response (400, 405, etc.) when it actually requires exactly 200

**Fix:** Updated the JSDoc `@returns` line to accurately reflect the implementation: `@returns true if the port responds with a 200 status from the health check endpoint`

**Verification:** All 19 tests in `packages/utils/src/get-port.test.ts` pass with the updated documentation.

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

---------

Co-authored-by: Vercel <vercel[bot]@users.noreply.github.com>
2025-12-15 16:34:44 -08:00
Nathan Rajlich 4d7a393906 Add workflow endpoints health check query parameter (#613)
* Add workflow endpoints health check query parameter

* .

* .

* Add e2e
2025-12-15 15:14:29 -08:00