trigger.dev v4.5.7
Upgrade
npx trigger.dev@latest update # npm
pnpm dlx trigger.dev@latest update # pnpm
yarn dlx trigger.dev@latest update # yarn
bunx trigger.dev@latest update # bunSelf-hosted Docker image: ghcr.io/triggerdotdev/trigger.dev:v4.5.7
Release notes
Read the full release notes: https://trigger.dev/changelog/v4-5-7
What's changed
Improvements
-
Add
node-24andnode-26as supportedruntimeoptions intrigger.config.ts. Theexperimental-node-24andexperimental-node-26names are now deprecated aliases and emit a deprecation warning; switch tonode-24/node-26instead. (#4337)import { defineConfig } from "@trigger.dev/sdk"; export default defineConfig({ runtime: "node-24", project: "<your-project-ref>", });
-
Avoid logging task run environment variable values at debug level (#4336)
-
Custom chat agent loops get two ergonomic wins for owning the turn loop. (#4304)
chat.writeTurnComplete()now returns the turn boundary's resume cursors (lastEventIdfor the output stream andsessionInEventIdfor the input stream), so you can persist them straight from the task instead of round-tripping them back from the client.const { lastEventId, sessionInEventId } = await chat.writeTurnComplete(); await db.chats.update(chatId, { lastEventId, sessionInEventId });
chat.pipeAndCapture()no longer throws when a stream is stopped or fails. It now returns aPipeAndCaptureResultwhosemessageholds any partial output captured before the stop or failure, alongside a typedstatus("complete" | "aborted" | "error") and, on failure, theerror. Read the message off the result:const { message, status, error } = await chat.pipeAndCapture(result, { signal, }); if (message) conversation.addResponse(message); if (status === "error") logger.error("turn failed", { error });
Note:
pipeAndCapturepreviously resolved toUIMessage | undefined. Update call sites to read.messagefrom the returned result. -
Suppress a build-time warning that could appear in Vite-based projects when the optional
@ai-sdk/otelpackage is not installed. (#4188)
Bug fixes
- Fixes intermittent
trigger devrun crashes where a run could fail at boot with a crypticCannot find module .../dev-run-worker.mjsafter a rebuild had cleaned up the build directory the run was launched against. Dev runs now retry cleanly instead of hard-crashing when their build directory is missing, the dev watchdog no longer removes the build tree of a still-running session, and a run assigned to a worker version that was superseded by a rebuild now fails fast with a clear message instead of silently hanging until it times out. (#4276)
Server changes
These changes affect the self-hosted Docker image and Trigger.dev Cloud:
- Refreshed the side menu: separate organization and account menus, a new project switcher, and the menu is now resizable by dragging its edge. The account Profile page has also been redesigned. (#4066)
- Allow different organization members to use the same development branch name without sharing or colliding with each other's branch environments. (#4323)
- Limit account settings email input to 254 characters. (#4330)
- Prevent duplicate Staging and Preview environments when account setup requests overlap (#4261)
- Fix the docs link on the empty Prompts page, which pointed to a page that no longer exists. (#4247)
All packages: v4.5.7
@trigger.dev/build, @trigger.dev/core, @trigger.dev/python, @trigger.dev/react-hooks, @trigger.dev/redis-worker, @trigger.dev/rsc, @trigger.dev/schema-to-json, @trigger.dev/sdk, trigger.dev
Contributors
Chris Arderne, James Ritchie, Matt Aitken, Katia Bulatova, @nicktrn, github-actions[bot], Eric Allam, @D-K-P
Full changelog: v4.5.6...v4.5.7