# Trigger.dev v4.5.14 — trigger.dev v4.5.14 - Product: Trigger.dev (https://whatsnew.fyi/product/trigger-dev) - Vendor: Trigger.dev - Date: 2026-08-28 - Version: v4.5.14 - Original notes: https://github.com/triggerdotdev/trigger.dev/releases/tag/v4.5.14 - Permalink: https://whatsnew.fyi/product/trigger-dev/releases/v4.5.14 What's New is an index, not a publisher: every entry below links to the vendor's own release notes, which are the authoritative source. Entries are labelled where they are hand-curated sample data, pre-releases, or drawn from a secondary source such as a developer blog. Reuse: the summaries, labels and curation here are © What's New. Quote freely with attribution and a link back; wholesale republication of the corpus is not permitted — terms: https://whatsnew.fyi/terms. The vendors' own release notes remain their publishers'. --- - **changed** — Native build server deploys now show a single updating build log line by default; pass --build-logs full to stream every line (always used in CI and when output is not a terminal) - **added** — Realtime stream subscriptions can now refresh an expired access token and reconnect via a new optional refreshAccessToken option on the client configuration and the React hooks - **added** — Subscribe to a realtime stream from its latest record instead of replaying the whole history by passing from: "latest" to useRealtimeStream, streams.read(), or fetchStream to start at the current tail instead of replaying - **added** — useRealtimeStream gains a lastEventId option and returns the lastEventId of the last part seen to persist the cursor and resume exactly where you left off - **added** — useRealtimeStream supports maxParts to keep the accumulated parts array bounded - **added** — useRealtimeStream gains an onParts callback that delivers each throttled batch of parts with their event ids - **added** — Added a useSessionStream React hook for reading a session's output or input channel in realtime with automatic resume from the last record received - **fixed** — Task retries that wait in the queue no longer count against the queue's internal redelivery limit, preventing runs with many long-delay retries from being wrongly failed with TASK_RUN_DEQUEUED_MAX_RETRIES #### trigger.dev v4.5.14 ##### Upgrade ```sh 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 # bun ``` Self-hosted Docker image: [`ghcr.io/triggerdotdev/trigger.dev:v4.5.14`](https://github.com/triggerdotdev/trigger.dev/pkgs/container/trigger.dev/1184053770?tag=v4.5.14) ##### Release notes Read the full release notes: https://trigger.dev/changelog/v4-5-14 ##### What's changed ##### Improvements - Native build server deploys now show a single updating build log line by default; pass `--build-logs full` to stream every line (always used in CI and when output is not a terminal). ([#4817](https://github.com/triggerdotdev/trigger.dev/pull/4817)) - Realtime stream subscriptions can now refresh an expired access token and reconnect, via a new optional `refreshAccessToken` option on the client configuration and the React hooks. ([#4811](https://github.com/triggerdotdev/trigger.dev/pull/4811)) - Subscribe to a realtime stream from its latest record instead of replaying the whole history. Pass `from: "latest"` to `useRealtimeStream`, `streams.read()`, or `fetchStream` to start at the current tail (the latest record, then live updates) instead of replaying (a live "last value" view), and `maxParts` to keep the accumulated `parts` array bounded. A reconnect or remount resumes from the last record it saw, so no records are missed and none are replayed. `from: "latest"` needs a server that supports it; older servers safely fall back to a full replay. ([#4811](https://github.com/triggerdotdev/trigger.dev/pull/4811)) `useRealtimeStream` also gains a `lastEventId` option and returns the `lastEventId` of the last part seen, so you can persist the cursor (for example across a page reload) and resume exactly where you left off. An `onParts` callback delivers each throttled batch of parts with their event ids. ```tsx const { parts, lastEventId } = useRealtimeStream(runId, "frames", { from: "latest", // skip history, start at the current tail maxParts: 1, // keep only the most recent frame lastEventId: savedCursor, // resume from a persisted cursor onParts: (batch) => save(batch.at(-1)?.id), // track the cursor accessToken, }); ``` - Added a `useSessionStream` React hook for reading a session's output or input channel in realtime. It accumulates records with automatic resume from the last record you received, and supports `from: "latest"` (start at the current tail, only new records after you connect), `maxRecords` (keep a bounded number of records in memory), a `lastEventId` resume cursor, and an `onRecords` callback that delivers each throttled batch of records with their event ids. ([#4811](https://github.com/triggerdotdev/trigger.dev/pull/4811)) ##### Server changes These changes affect the self-hosted Docker image and Trigger.dev Cloud: - Task retries that wait in the queue no longer count against the queue's internal redelivery limit, so runs with many long-delay retries are not wrongly failed with TASK_RUN_DEQUEUED_MAX_RETRIES. ([#4810](https://github.com/triggerdotdev/trigger.dev/pull/4810)) ##### All packages: v4.5.14 @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 Saadi Myftija, James Ritchie, @d-cs, github-actions[bot], Matt Aitken, @nicktrn, Chris Arderne, Eric Allam **Full changelog**: https://github.com/triggerdotdev/trigger.dev/compare/v4.5.13...v4.5.14