diff --git a/.changeset/compact-native-build-logs.md b/.changeset/compact-native-build-logs.md
deleted file mode 100644
index b908c4147b9..00000000000
--- a/.changeset/compact-native-build-logs.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"trigger.dev": patch
----
-
-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).
diff --git a/.changeset/eighty-donkeys-shake.md b/.changeset/eighty-donkeys-shake.md
deleted file mode 100644
index bb6a1035653..00000000000
--- a/.changeset/eighty-donkeys-shake.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-"@trigger.dev/core": patch
-"@trigger.dev/react-hooks": patch
----
-
-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.
diff --git a/.changeset/realtime-streams-from-latest.md b/.changeset/realtime-streams-from-latest.md
deleted file mode 100644
index 103403705e7..00000000000
--- a/.changeset/realtime-streams-from-latest.md
+++ /dev/null
@@ -1,19 +0,0 @@
----
-"@trigger.dev/react-hooks": patch
-"@trigger.dev/core": patch
-"@trigger.dev/sdk": patch
----
-
-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.
-
-`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,
-});
-```
diff --git a/.changeset/spotty-pillows-visit.md b/.changeset/spotty-pillows-visit.md
deleted file mode 100644
index 6e3b27bbe52..00000000000
--- a/.changeset/spotty-pillows-visit.md
+++ /dev/null
@@ -1,5 +0,0 @@
----
-"@trigger.dev/react-hooks": patch
----
-
-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.
diff --git a/.server-changes/retry-requeue-nack-budget.md b/.server-changes/retry-requeue-nack-budget.md
deleted file mode 100644
index c8cabee6661..00000000000
--- a/.server-changes/retry-requeue-nack-budget.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-area: webapp
-type: fix
----
-
-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.
diff --git a/hosting/k8s/helm/Chart.yaml b/hosting/k8s/helm/Chart.yaml
index a600a59ea31..06c55f3068c 100644
--- a/hosting/k8s/helm/Chart.yaml
+++ b/hosting/k8s/helm/Chart.yaml
@@ -2,8 +2,8 @@ apiVersion: v2
name: trigger
description: The official Trigger.dev Helm chart
type: application
-version: 4.5.13
-appVersion: v4.5.13
+version: 4.5.14
+appVersion: v4.5.14
home: https://trigger.dev
sources:
- https://github.com/triggerdotdev/trigger.dev
diff --git a/packages/build/CHANGELOG.md b/packages/build/CHANGELOG.md
index c22326cb98f..557de06c9e0 100644
--- a/packages/build/CHANGELOG.md
+++ b/packages/build/CHANGELOG.md
@@ -1,5 +1,12 @@
# @trigger.dev/build
+## 4.5.14
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/build/package.json b/packages/build/package.json
index 2690c739593..f73abfbdcf1 100644
--- a/packages/build/package.json
+++ b/packages/build/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/build",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "trigger.dev build extensions",
"license": "MIT",
"publishConfig": {
@@ -79,7 +79,7 @@
},
"dependencies": {
"@prisma/config": "^6.10.0",
- "@trigger.dev/core": "workspace:4.5.13",
+ "@trigger.dev/core": "workspace:4.5.14",
"mlly": "^1.7.1",
"pkg-types": "^1.1.3",
"tinyglobby": "^0.2.2",
diff --git a/packages/cli-v3/CHANGELOG.md b/packages/cli-v3/CHANGELOG.md
index 98d3cb339be..3d5f18104fd 100644
--- a/packages/cli-v3/CHANGELOG.md
+++ b/packages/cli-v3/CHANGELOG.md
@@ -1,5 +1,15 @@
# trigger.dev
+## 4.5.14
+
+### Patch Changes
+
+- 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))
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+ - `@trigger.dev/build@4.5.14`
+ - `@trigger.dev/schema-to-json@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json
index 6474d6077da..c9d1fd4784d 100644
--- a/packages/cli-v3/package.json
+++ b/packages/cli-v3/package.json
@@ -1,6 +1,6 @@
{
"name": "trigger.dev",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "A Command-Line Interface for Trigger.dev projects",
"type": "module",
"license": "MIT",
@@ -83,9 +83,9 @@
"@opentelemetry/api-logs": "0.218.0",
"@opentelemetry/instrumentation": "0.218.0",
"@s2-dev/streamstore": "^0.25.0",
- "@trigger.dev/build": "workspace:4.5.13",
- "@trigger.dev/core": "workspace:4.5.13",
- "@trigger.dev/schema-to-json": "workspace:4.5.13",
+ "@trigger.dev/build": "workspace:4.5.14",
+ "@trigger.dev/core": "workspace:4.5.14",
+ "@trigger.dev/schema-to-json": "workspace:4.5.14",
"ansi-escapes": "^7.0.0",
"braces": "^3.0.3",
"c12": "^1.11.1",
diff --git a/packages/core/CHANGELOG.md b/packages/core/CHANGELOG.md
index 6f8f227b725..afed7005034 100644
--- a/packages/core/CHANGELOG.md
+++ b/packages/core/CHANGELOG.md
@@ -1,5 +1,24 @@
# internal-platform
+## 4.5.14
+
+### Patch Changes
+
+- 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,
+ });
+ ```
+
## 4.5.13
### Patch Changes
diff --git a/packages/core/package.json b/packages/core/package.json
index a10ad9793da..64108f7158d 100644
--- a/packages/core/package.json
+++ b/packages/core/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/core",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "Core code used across the Trigger.dev SDK and platform",
"license": "MIT",
"publishConfig": {
diff --git a/packages/python/CHANGELOG.md b/packages/python/CHANGELOG.md
index e21c6bab44d..4b89f2a1603 100644
--- a/packages/python/CHANGELOG.md
+++ b/packages/python/CHANGELOG.md
@@ -1,5 +1,14 @@
# @trigger.dev/python
+## 4.5.14
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+ - `@trigger.dev/sdk@4.5.14`
+ - `@trigger.dev/build@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/python/package.json b/packages/python/package.json
index fe92293fdc3..6d9d9fa364e 100644
--- a/packages/python/package.json
+++ b/packages/python/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/python",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "Python runtime and build extension for Trigger.dev",
"license": "MIT",
"publishConfig": {
@@ -45,7 +45,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
- "@trigger.dev/core": "workspace:4.5.13",
+ "@trigger.dev/core": "workspace:4.5.14",
"tinyexec": "^0.3.2"
},
"devDependencies": {
@@ -55,12 +55,12 @@
"typescript": "catalog:",
"tsx": "4.17.0",
"@arethetypeswrong/cli": "^0.18.5",
- "@trigger.dev/build": "workspace:4.5.13",
- "@trigger.dev/sdk": "workspace:4.5.13"
+ "@trigger.dev/build": "workspace:4.5.14",
+ "@trigger.dev/sdk": "workspace:4.5.14"
},
"peerDependencies": {
- "@trigger.dev/sdk": "workspace:^4.5.13",
- "@trigger.dev/build": "workspace:^4.5.13"
+ "@trigger.dev/sdk": "workspace:^4.5.14",
+ "@trigger.dev/build": "workspace:^4.5.14"
},
"engines": {
"node": ">=18.20.0"
diff --git a/packages/react-hooks/CHANGELOG.md b/packages/react-hooks/CHANGELOG.md
index c7be6ebe453..0de92c606cc 100644
--- a/packages/react-hooks/CHANGELOG.md
+++ b/packages/react-hooks/CHANGELOG.md
@@ -1,5 +1,28 @@
# @trigger.dev/react-hooks
+## 4.5.14
+
+### Patch Changes
+
+- 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))
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/react-hooks/package.json b/packages/react-hooks/package.json
index 3e5ec85d3c4..3fb4838ef8f 100644
--- a/packages/react-hooks/package.json
+++ b/packages/react-hooks/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/react-hooks",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "trigger.dev react hooks",
"license": "MIT",
"publishConfig": {
@@ -37,7 +37,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
- "@trigger.dev/core": "workspace:^4.5.13",
+ "@trigger.dev/core": "workspace:^4.5.14",
"swr": "^2.2.5"
},
"devDependencies": {
diff --git a/packages/redis-worker/CHANGELOG.md b/packages/redis-worker/CHANGELOG.md
index 7b9f37f8c39..f12bb578675 100644
--- a/packages/redis-worker/CHANGELOG.md
+++ b/packages/redis-worker/CHANGELOG.md
@@ -1,5 +1,12 @@
# @trigger.dev/redis-worker
+## 4.5.14
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/redis-worker/package.json b/packages/redis-worker/package.json
index 7e78adfb102..b4406639351 100644
--- a/packages/redis-worker/package.json
+++ b/packages/redis-worker/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/redis-worker",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "Redis worker for trigger.dev",
"license": "MIT",
"publishConfig": {
@@ -23,7 +23,7 @@
"test": "vitest --sequence.concurrent=false --no-file-parallelism"
},
"dependencies": {
- "@trigger.dev/core": "workspace:4.5.13",
+ "@trigger.dev/core": "workspace:4.5.14",
"nanoid": "^5.1.16",
"p-limit": "^6.2.0",
"seedrandom": "^3.0.5",
diff --git a/packages/rsc/CHANGELOG.md b/packages/rsc/CHANGELOG.md
index 892f926a9ff..9f873c023e5 100644
--- a/packages/rsc/CHANGELOG.md
+++ b/packages/rsc/CHANGELOG.md
@@ -1,5 +1,12 @@
# @trigger.dev/rsc
+## 4.5.14
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/rsc/package.json b/packages/rsc/package.json
index bfdafddde3f..dce56f099eb 100644
--- a/packages/rsc/package.json
+++ b/packages/rsc/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/rsc",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "trigger.dev rsc",
"license": "MIT",
"publishConfig": {
@@ -37,7 +37,7 @@
"check-exports": "attw --pack ."
},
"dependencies": {
- "@trigger.dev/core": "workspace:^4.5.13",
+ "@trigger.dev/core": "workspace:^4.5.14",
"mlly": "^1.7.1",
"react": "19.0.0-rc.1",
"react-dom": "19.0.0-rc.1"
diff --git a/packages/schema-to-json/CHANGELOG.md b/packages/schema-to-json/CHANGELOG.md
index 76c3b1560c4..3989b34ec5f 100644
--- a/packages/schema-to-json/CHANGELOG.md
+++ b/packages/schema-to-json/CHANGELOG.md
@@ -1,5 +1,12 @@
# @trigger.dev/schema-to-json
+## 4.5.14
+
+### Patch Changes
+
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/schema-to-json/package.json b/packages/schema-to-json/package.json
index 186f6fc68c2..b3aea2344f5 100644
--- a/packages/schema-to-json/package.json
+++ b/packages/schema-to-json/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/schema-to-json",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "Convert various schema validation libraries to JSON Schema",
"license": "MIT",
"publishConfig": {
diff --git a/packages/trigger-sdk/CHANGELOG.md b/packages/trigger-sdk/CHANGELOG.md
index 4760e9610d8..f82c864e8a2 100644
--- a/packages/trigger-sdk/CHANGELOG.md
+++ b/packages/trigger-sdk/CHANGELOG.md
@@ -1,5 +1,26 @@
# @trigger.dev/sdk
+## 4.5.14
+
+### Patch Changes
+
+- 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,
+ });
+ ```
+
+- Updated dependencies:
+ - `@trigger.dev/core@4.5.14`
+
## 4.5.13
### Patch Changes
diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json
index 2e05e204ffa..57e8d3abaeb 100644
--- a/packages/trigger-sdk/package.json
+++ b/packages/trigger-sdk/package.json
@@ -1,6 +1,6 @@
{
"name": "@trigger.dev/sdk",
- "version": "4.5.13",
+ "version": "4.5.14",
"description": "trigger.dev Node.JS SDK",
"license": "MIT",
"publishConfig": {
@@ -77,7 +77,7 @@
"dependencies": {
"@opentelemetry/api": "1.9.1",
"@opentelemetry/semantic-conventions": "1.41.1",
- "@trigger.dev/core": "workspace:4.5.13",
+ "@trigger.dev/core": "workspace:4.5.14",
"uncrypto": "^0.1.3"
},
"devDependencies": {
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index a41a3b20794..e94210014b8 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1481,7 +1481,7 @@ importers:
specifier: ^6.10.0
version: 6.19.0(magicast@0.3.5)
'@trigger.dev/core':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../core
mlly:
specifier: ^1.7.1
@@ -1545,13 +1545,13 @@ importers:
specifier: ^0.25.0
version: 0.25.0(supports-color@10.0.0)
'@trigger.dev/build':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../build
'@trigger.dev/core':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../core
'@trigger.dev/schema-to-json':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../schema-to-json
ansi-escapes:
specifier: ^7.0.0
@@ -1878,7 +1878,7 @@ importers:
packages/python:
dependencies:
'@trigger.dev/core':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../core
tinyexec:
specifier: ^0.3.2
@@ -1888,10 +1888,10 @@ importers:
specifier: ^0.18.5
version: 0.18.5
'@trigger.dev/build':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../build
'@trigger.dev/sdk':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../trigger-sdk
'@types/node':
specifier: 24.13.3
@@ -1912,7 +1912,7 @@ importers:
packages/react-hooks:
dependencies:
'@trigger.dev/core':
- specifier: workspace:^4.5.13
+ specifier: workspace:^4.5.14
version: link:../core
react:
specifier: 18.3.1
@@ -1946,7 +1946,7 @@ importers:
packages/redis-worker:
dependencies:
'@trigger.dev/core':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../core
cron-parser:
specifier: ^4.9.0
@@ -1992,7 +1992,7 @@ importers:
packages/rsc:
dependencies:
'@trigger.dev/core':
- specifier: workspace:^4.5.13
+ specifier: workspace:^4.5.14
version: link:../core
mlly:
specifier: ^1.7.1
@@ -2078,7 +2078,7 @@ importers:
specifier: 1.41.1
version: 1.41.1
'@trigger.dev/core':
- specifier: workspace:4.5.13
+ specifier: workspace:4.5.14
version: link:../core
react:
specifier: 18.3.1