From ad8e06f66b6415c37c217dc7e9037ec443899463 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 1 May 2026 16:12:32 +0000 Subject: [PATCH 1/3] chore: release --- .changeset/dev-worker-disconnect-loop.md | 6 ------ packages/build/CHANGELOG.md | 7 +++++++ packages/build/package.json | 4 ++-- packages/cli-v3/CHANGELOG.md | 10 ++++++++++ packages/cli-v3/package.json | 8 ++++---- packages/core/CHANGELOG.md | 6 ++++++ packages/core/package.json | 2 +- packages/python/CHANGELOG.md | 9 +++++++++ packages/python/package.json | 12 ++++++------ packages/react-hooks/CHANGELOG.md | 7 +++++++ packages/react-hooks/package.json | 4 ++-- packages/redis-worker/CHANGELOG.md | 7 +++++++ packages/redis-worker/package.json | 4 ++-- packages/rsc/CHANGELOG.md | 7 +++++++ packages/rsc/package.json | 6 +++--- packages/schema-to-json/CHANGELOG.md | 7 +++++++ packages/schema-to-json/package.json | 2 +- packages/trigger-sdk/CHANGELOG.md | 7 +++++++ packages/trigger-sdk/package.json | 4 ++-- 19 files changed, 90 insertions(+), 29 deletions(-) delete mode 100644 .changeset/dev-worker-disconnect-loop.md diff --git a/.changeset/dev-worker-disconnect-loop.md b/.changeset/dev-worker-disconnect-loop.md deleted file mode 100644 index cf5afbb2135..00000000000 --- a/.changeset/dev-worker-disconnect-loop.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"@trigger.dev/core": patch -"trigger.dev": patch ---- - -Fix dev workers spinning at 100% CPU after the parent CLI disconnects. Orphaned `trigger-dev-run-worker` (and indexer) processes were caught in an `uncaughtException` feedback loop: a periodic IPC send via `process.send` would throw `ERR_IPC_CHANNEL_CLOSED` once the parent closed the channel, which re-entered the same handler that itself called `process.send`, scheduled via `setImmediate` and amplified by source-map-support's `prepareStackTrace`. Fixed by (1) silently dropping packets in `ZodIpcConnection` when the channel is disconnected, (2) adding a `process.on("disconnect", ...)` handler in dev workers so they exit cleanly when the CLI closes the IPC channel, and (3) wrapping all `uncaughtException`-path `process.send` calls in a `safeSend` guard that checks `process.connected` and swallows synchronous throws. diff --git a/packages/build/CHANGELOG.md b/packages/build/CHANGELOG.md index 0be938f72f8..742c66c83ef 100644 --- a/packages/build/CHANGELOG.md +++ b/packages/build/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/build +## 4.4.6 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/build/package.json b/packages/build/package.json index 49a310e46e7..206a80b89da 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/build", - "version": "4.4.5", + "version": "4.4.6", "description": "trigger.dev build extensions", "license": "MIT", "publishConfig": { @@ -78,7 +78,7 @@ }, "dependencies": { "@prisma/config": "^6.10.0", - "@trigger.dev/core": "workspace:4.4.5", + "@trigger.dev/core": "workspace:4.4.6", "mlly": "^1.7.1", "pkg-types": "^1.1.3", "resolve": "^1.22.8", diff --git a/packages/cli-v3/CHANGELOG.md b/packages/cli-v3/CHANGELOG.md index 4f9b456832a..a29ff92a44e 100644 --- a/packages/cli-v3/CHANGELOG.md +++ b/packages/cli-v3/CHANGELOG.md @@ -1,5 +1,15 @@ # trigger.dev +## 4.4.6 + +### Patch Changes + +- Fix dev workers spinning at 100% CPU after the parent CLI disconnects. Orphaned `trigger-dev-run-worker` (and indexer) processes were caught in an `uncaughtException` feedback loop: a periodic IPC send via `process.send` would throw `ERR_IPC_CHANNEL_CLOSED` once the parent closed the channel, which re-entered the same handler that itself called `process.send`, scheduled via `setImmediate` and amplified by source-map-support's `prepareStackTrace`. Fixed by (1) silently dropping packets in `ZodIpcConnection` when the channel is disconnected, (2) adding a `process.on("disconnect", ...)` handler in dev workers so they exit cleanly when the CLI closes the IPC channel, and (3) wrapping all `uncaughtException`-path `process.send` calls in a `safeSend` guard that checks `process.connected` and swallows synchronous throws. ([#3491](https://github.com/triggerdotdev/trigger.dev/pull/3491)) +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + - `@trigger.dev/build@4.4.6` + - `@trigger.dev/schema-to-json@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index 7d75fa8c3d9..326104a624d 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -1,6 +1,6 @@ { "name": "trigger.dev", - "version": "4.4.5", + "version": "4.4.6", "description": "A Command-Line Interface for Trigger.dev projects", "type": "module", "license": "MIT", @@ -95,9 +95,9 @@ "@opentelemetry/sdk-trace-node": "2.0.1", "@opentelemetry/semantic-conventions": "1.36.0", "@s2-dev/streamstore": "^0.22.5", - "@trigger.dev/build": "workspace:4.4.5", - "@trigger.dev/core": "workspace:4.4.5", - "@trigger.dev/schema-to-json": "workspace:4.4.5", + "@trigger.dev/build": "workspace:4.4.6", + "@trigger.dev/core": "workspace:4.4.6", + "@trigger.dev/schema-to-json": "workspace:4.4.6", "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 3ca55e930f6..66925a0c41f 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,11 @@ # internal-platform +## 4.4.6 + +### Patch Changes + +- Fix dev workers spinning at 100% CPU after the parent CLI disconnects. Orphaned `trigger-dev-run-worker` (and indexer) processes were caught in an `uncaughtException` feedback loop: a periodic IPC send via `process.send` would throw `ERR_IPC_CHANNEL_CLOSED` once the parent closed the channel, which re-entered the same handler that itself called `process.send`, scheduled via `setImmediate` and amplified by source-map-support's `prepareStackTrace`. Fixed by (1) silently dropping packets in `ZodIpcConnection` when the channel is disconnected, (2) adding a `process.on("disconnect", ...)` handler in dev workers so they exit cleanly when the CLI closes the IPC channel, and (3) wrapping all `uncaughtException`-path `process.send` calls in a `safeSend` guard that checks `process.connected` and swallows synchronous throws. ([#3491](https://github.com/triggerdotdev/trigger.dev/pull/3491)) + ## 4.4.5 ### Patch Changes diff --git a/packages/core/package.json b/packages/core/package.json index f58708dff92..cd62bc97d6f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/core", - "version": "4.4.5", + "version": "4.4.6", "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 04207148062..357e7dc1cd3 100644 --- a/packages/python/CHANGELOG.md +++ b/packages/python/CHANGELOG.md @@ -1,5 +1,14 @@ # @trigger.dev/python +## 4.4.6 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + - `@trigger.dev/build@4.4.6` + - `@trigger.dev/sdk@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/python/package.json b/packages/python/package.json index 969c5c3d693..be93677702d 100644 --- a/packages/python/package.json +++ b/packages/python/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/python", - "version": "4.4.5", + "version": "4.4.6", "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.4.5", + "@trigger.dev/core": "workspace:4.4.6", "tinyexec": "^0.3.2" }, "devDependencies": { @@ -56,12 +56,12 @@ "tsx": "4.17.0", "esbuild": "^0.23.0", "@arethetypeswrong/cli": "^0.15.4", - "@trigger.dev/build": "workspace:4.4.5", - "@trigger.dev/sdk": "workspace:4.4.5" + "@trigger.dev/build": "workspace:4.4.6", + "@trigger.dev/sdk": "workspace:4.4.6" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^4.4.5", - "@trigger.dev/build": "workspace:^4.4.5" + "@trigger.dev/sdk": "workspace:^4.4.6", + "@trigger.dev/build": "workspace:^4.4.6" }, "engines": { "node": ">=18.20.0" diff --git a/packages/react-hooks/CHANGELOG.md b/packages/react-hooks/CHANGELOG.md index 1a33e35726d..fcbc0bb7be6 100644 --- a/packages/react-hooks/CHANGELOG.md +++ b/packages/react-hooks/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/react-hooks +## 4.4.6 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/react-hooks/package.json b/packages/react-hooks/package.json index bb32dcb4a1a..96a4a90ed8a 100644 --- a/packages/react-hooks/package.json +++ b/packages/react-hooks/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/react-hooks", - "version": "4.4.5", + "version": "4.4.6", "description": "trigger.dev react hooks", "license": "MIT", "publishConfig": { @@ -37,7 +37,7 @@ "check-exports": "attw --pack ." }, "dependencies": { - "@trigger.dev/core": "workspace:^4.4.5", + "@trigger.dev/core": "workspace:^4.4.6", "swr": "^2.2.5" }, "devDependencies": { diff --git a/packages/redis-worker/CHANGELOG.md b/packages/redis-worker/CHANGELOG.md index 80cb92c8f3a..5bad65ed478 100644 --- a/packages/redis-worker/CHANGELOG.md +++ b/packages/redis-worker/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/redis-worker +## 4.4.6 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/redis-worker/package.json b/packages/redis-worker/package.json index 4e436c2908a..df8bd8a6b40 100644 --- a/packages/redis-worker/package.json +++ b/packages/redis-worker/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/redis-worker", - "version": "4.4.5", + "version": "4.4.6", "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.4.5", + "@trigger.dev/core": "workspace:4.4.6", "lodash.omit": "^4.5.0", "nanoid": "^5.0.7", "p-limit": "^6.2.0", diff --git a/packages/rsc/CHANGELOG.md b/packages/rsc/CHANGELOG.md index 755fbeaedc8..9304f8caaec 100644 --- a/packages/rsc/CHANGELOG.md +++ b/packages/rsc/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/rsc +## 4.4.6 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/rsc/package.json b/packages/rsc/package.json index 3ed9a6c3e5c..e41126cd7ba 100644 --- a/packages/rsc/package.json +++ b/packages/rsc/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/rsc", - "version": "4.4.5", + "version": "4.4.6", "description": "trigger.dev rsc", "license": "MIT", "publishConfig": { @@ -37,14 +37,14 @@ "check-exports": "attw --pack ." }, "dependencies": { - "@trigger.dev/core": "workspace:^4.4.5", + "@trigger.dev/core": "workspace:^4.4.6", "mlly": "^1.7.1", "react": "19.0.0-rc.1", "react-dom": "19.0.0-rc.1" }, "devDependencies": { "@arethetypeswrong/cli": "^0.15.4", - "@trigger.dev/build": "workspace:^4.4.5", + "@trigger.dev/build": "workspace:^4.4.6", "@types/node": "^20.14.14", "@types/react": "*", "@types/react-dom": "*", diff --git a/packages/schema-to-json/CHANGELOG.md b/packages/schema-to-json/CHANGELOG.md index 995a2c4d293..707367feff5 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.4.6 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/schema-to-json/package.json b/packages/schema-to-json/package.json index c16c335aed0..0721caaa5c8 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.4.5", + "version": "4.4.6", "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 45fa51d07de..6254af0aad9 100644 --- a/packages/trigger-sdk/CHANGELOG.md +++ b/packages/trigger-sdk/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/sdk +## 4.4.6 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.4.6` + ## 4.4.5 ### Patch Changes diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index 9a1b90b059e..eac075466f0 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sdk", - "version": "4.4.5", + "version": "4.4.6", "description": "trigger.dev Node.JS SDK", "license": "MIT", "publishConfig": { @@ -52,7 +52,7 @@ "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/semantic-conventions": "1.36.0", - "@trigger.dev/core": "workspace:4.4.5", + "@trigger.dev/core": "workspace:4.4.6", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", From ceb4fc993d410032dfd2df6df069fe58ef138925 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 1 May 2026 16:14:02 +0000 Subject: [PATCH 2/3] chore: update lockfile and clean up .server-changes/ for release --- .../admin-back-office-rate-limit.md | 6 ----- .server-changes/admin-global-flags-warning.md | 6 ----- .server-changes/admin-workers-endpoint.md | 6 ----- .../api-key-rotation-pat-grace-period.md | 6 ----- .../batch-fast-fail-queue-size-limit.md | 7 ------ .server-changes/cancel-dequeued-runs.md | 6 ----- .../debounce-hot-key-lock-contention.md | 8 ------- .server-changes/deprecate-v3-cli-deploys.md | 6 ----- .../ecr-default-repository-policy.md | 6 ----- .server-changes/errors-page-polish-and-ga.md | 6 ----- .../fix-realtime-fetch-signal-leak.md | 6 ----- .server-changes/fix-rollback-schedule-sync.md | 6 ----- .server-changes/fix-sse-memory-leak.md | 6 ----- .server-changes/getEntitlement-swr-cache.md | 6 ----- .server-changes/highlight-microvm-regions.md | 6 ----- .../increase-default-project-limit.md | 6 ----- ...merge-dequeue-snapshot-into-transaction.md | 6 ----- .../multi-preset-template-creation.md | 6 ----- .server-changes/nodejs-heap-metrics.md | 6 ----- .../prisma-span-datasource-attribute.md | 6 ----- ...connections-helper-cross-region-comment.md | 6 ----- .../queues-preserve-filters-on-action.md | 6 ----- .../read-replica-snapshots-since.md | 6 ----- .../realtime-redis-connection-leak.md | 10 -------- .../revoked-api-key-grace-period.md | 6 ----- .server-changes/session-primitive.md | 6 ----- .server-changes/span-accessory-text-guard.md | 6 ----- .../stop-creating-taskruntag-records.md | 6 ----- .../stop-persisting-schedule-tick-state.md | 6 ----- .server-changes/supervisor-pod-dns-ndots.md | 8 ------- .server-changes/task-identifier-registry.md | 6 ----- .../throttle-token-last-accessed-at.md | 6 ----- .server-changes/upgrade-remix-security.md | 6 ----- .server-changes/vercel-auto-promote-toggle.md | 6 ----- ...ettings-fix-and-onboarding-improvements.md | 6 ----- pnpm-lock.yaml | 24 +++++++++---------- 36 files changed, 12 insertions(+), 231 deletions(-) delete mode 100644 .server-changes/admin-back-office-rate-limit.md delete mode 100644 .server-changes/admin-global-flags-warning.md delete mode 100644 .server-changes/admin-workers-endpoint.md delete mode 100644 .server-changes/api-key-rotation-pat-grace-period.md delete mode 100644 .server-changes/batch-fast-fail-queue-size-limit.md delete mode 100644 .server-changes/cancel-dequeued-runs.md delete mode 100644 .server-changes/debounce-hot-key-lock-contention.md delete mode 100644 .server-changes/deprecate-v3-cli-deploys.md delete mode 100644 .server-changes/ecr-default-repository-policy.md delete mode 100644 .server-changes/errors-page-polish-and-ga.md delete mode 100644 .server-changes/fix-realtime-fetch-signal-leak.md delete mode 100644 .server-changes/fix-rollback-schedule-sync.md delete mode 100644 .server-changes/fix-sse-memory-leak.md delete mode 100644 .server-changes/getEntitlement-swr-cache.md delete mode 100644 .server-changes/highlight-microvm-regions.md delete mode 100644 .server-changes/increase-default-project-limit.md delete mode 100644 .server-changes/merge-dequeue-snapshot-into-transaction.md delete mode 100644 .server-changes/multi-preset-template-creation.md delete mode 100644 .server-changes/nodejs-heap-metrics.md delete mode 100644 .server-changes/prisma-span-datasource-attribute.md delete mode 100644 .server-changes/private-connections-helper-cross-region-comment.md delete mode 100644 .server-changes/queues-preserve-filters-on-action.md delete mode 100644 .server-changes/read-replica-snapshots-since.md delete mode 100644 .server-changes/realtime-redis-connection-leak.md delete mode 100644 .server-changes/revoked-api-key-grace-period.md delete mode 100644 .server-changes/session-primitive.md delete mode 100644 .server-changes/span-accessory-text-guard.md delete mode 100644 .server-changes/stop-creating-taskruntag-records.md delete mode 100644 .server-changes/stop-persisting-schedule-tick-state.md delete mode 100644 .server-changes/supervisor-pod-dns-ndots.md delete mode 100644 .server-changes/task-identifier-registry.md delete mode 100644 .server-changes/throttle-token-last-accessed-at.md delete mode 100644 .server-changes/upgrade-remix-security.md delete mode 100644 .server-changes/vercel-auto-promote-toggle.md delete mode 100644 .server-changes/vercel-settings-fix-and-onboarding-improvements.md diff --git a/.server-changes/admin-back-office-rate-limit.md b/.server-changes/admin-back-office-rate-limit.md deleted file mode 100644 index da6835f0c5e..00000000000 --- a/.server-changes/admin-back-office-rate-limit.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: feature ---- - -Add a "Back office" tab to `/admin` and a per-organization detail page at `/admin/back-office/orgs/:orgId`. The first action available on that page is editing the org's API rate limit: admins can save a `tokenBucket` override (refill rate, interval, max tokens) and see a plain-English preview of the resulting sustained rate and burst allowance. Writes are audit-logged via the server logger. diff --git a/.server-changes/admin-global-flags-warning.md b/.server-changes/admin-global-flags-warning.md deleted file mode 100644 index f0af91b143b..00000000000 --- a/.server-changes/admin-global-flags-warning.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Make it clear in the admin that feature flags are global and should rarely be changed. diff --git a/.server-changes/admin-workers-endpoint.md b/.server-changes/admin-workers-endpoint.md deleted file mode 100644 index 34cd6ad70e3..00000000000 --- a/.server-changes/admin-workers-endpoint.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Admin worker groups API: add GET loader and expose more fields on POST. diff --git a/.server-changes/api-key-rotation-pat-grace-period.md b/.server-changes/api-key-rotation-pat-grace-period.md deleted file mode 100644 index c2163d968b8..00000000000 --- a/.server-changes/api-key-rotation-pat-grace-period.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Public Access Tokens (PATs) minted before an API key rotation now keep working during the 24h grace window. `validatePublicJwtKey` falls back to any non-expired `RevokedApiKey` rows for the signing environment when the primary signature check against the env's current `apiKey` fails. The fallback query only runs on the failure path, so the hot success path is unchanged. diff --git a/.server-changes/batch-fast-fail-queue-size-limit.md b/.server-changes/batch-fast-fail-queue-size-limit.md deleted file mode 100644 index 77b926a5a80..00000000000 --- a/.server-changes/batch-fast-fail-queue-size-limit.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -area: webapp -type: fix ---- - -Batch items that hit the environment queue size limit now fast-fail without -retries and without creating pre-failed TaskRuns. diff --git a/.server-changes/cancel-dequeued-runs.md b/.server-changes/cancel-dequeued-runs.md deleted file mode 100644 index 4e393411010..00000000000 --- a/.server-changes/cancel-dequeued-runs.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Show the cancel button in the runs list for runs in `DEQUEUED` status. `DEQUEUED` was missing from `NON_FINAL_RUN_STATUSES` so the list hid the button even though the single run page allowed it. diff --git a/.server-changes/debounce-hot-key-lock-contention.md b/.server-changes/debounce-hot-key-lock-contention.md deleted file mode 100644 index 7579ce50adb..00000000000 --- a/.server-changes/debounce-hot-key-lock-contention.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -area: webapp -type: fix ---- - -Reduce 5xx feedback loops on hot debounce keys by quantizing `delayUntil`, -adding an unlocked fast-path skip, and gracefully handling redlock -contention in `handleDebounce` so the SDK no longer retries into a herd. diff --git a/.server-changes/deprecate-v3-cli-deploys.md b/.server-changes/deprecate-v3-cli-deploys.md deleted file mode 100644 index 72040b4c5ed..00000000000 --- a/.server-changes/deprecate-v3-cli-deploys.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: breaking ---- - -Add server-side deprecation gate for deploys from v3 CLI versions (gated by `DEPRECATE_V3_CLI_DEPLOYS_ENABLED`). v4 CLI deploys are unaffected. diff --git a/.server-changes/ecr-default-repository-policy.md b/.server-changes/ecr-default-repository-policy.md deleted file mode 100644 index 0ec2d04659a..00000000000 --- a/.server-changes/ecr-default-repository-policy.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: feature ---- - -Optional `DEPLOY_REGISTRY_ECR_DEFAULT_REPOSITORY_POLICY` env var to apply a default repository policy when the webapp creates new ECR repos diff --git a/.server-changes/errors-page-polish-and-ga.md b/.server-changes/errors-page-polish-and-ga.md deleted file mode 100644 index 6faa63d6942..00000000000 --- a/.server-changes/errors-page-polish-and-ga.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: feature ---- - -Ship the Errors page to all users, with a polish + bug-fix pass: pinned "No channel" item in the Slack alert channel picker, viewer-timezone alert timestamps via Slack's `` token, Activity sparkline peak tooltip, centered loading spinner and bug-icon empty state on the error detail page, ellipsis on the Configure alerts trigger. diff --git a/.server-changes/fix-realtime-fetch-signal-leak.md b/.server-changes/fix-realtime-fetch-signal-leak.md deleted file mode 100644 index ac681a301f6..00000000000 --- a/.server-changes/fix-realtime-fetch-signal-leak.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Fix RSS memory leak in the realtime proxy routes. `/realtime/v1/runs`, `/realtime/v1/runs/:id`, and `/realtime/v1/batches/:id` called `fetch()` into Electric with no abort signal, so when a client disconnected mid long-poll, undici kept the upstream socket open and buffered response chunks that would never be consumed — retained only in RSS, invisible to V8 heap tooling. Thread `getRequestAbortSignal()` through `RealtimeClient.streamRun/streamRuns/streamBatch` to `longPollingFetch` and cancel the upstream body in the error path. Isolated reproducer showed ~44 KB retained per leaked request; signal propagation releases it cleanly. diff --git a/.server-changes/fix-rollback-schedule-sync.md b/.server-changes/fix-rollback-schedule-sync.md deleted file mode 100644 index c9f3d14f59b..00000000000 --- a/.server-changes/fix-rollback-schedule-sync.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Sync declarative schedules when rolling back or promoting deployments diff --git a/.server-changes/fix-sse-memory-leak.md b/.server-changes/fix-sse-memory-leak.md deleted file mode 100644 index e2b9ddd1810..00000000000 --- a/.server-changes/fix-sse-memory-leak.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Fix memory leak where every aborted SSE connection pinned the full request/response graph on Node 20, caused by `AbortSignal.any()` in `sse.ts` retaining its source signals indefinitely (see nodejs/node#54614, nodejs/node#55351). Also clear the `setTimeout(abort)` timer in `entry.server.tsx` so successful HTML renders don't pin the React tree for 30s per request. diff --git a/.server-changes/getEntitlement-swr-cache.md b/.server-changes/getEntitlement-swr-cache.md deleted file mode 100644 index 1c9c887a33d..00000000000 --- a/.server-changes/getEntitlement-swr-cache.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Add 60s fresh / 60s stale SWR cache to `getEntitlement` in `platform.v3.server.ts`. Eliminates a synchronous billing-service HTTP round trip on every trigger. Reuses the existing `platformCache` (LRU memory + Redis) pattern already used for `limits` and `usage`. Cache key is `${orgId}`. Errors return a permissive `{ hasAccess: true }` fallback (existing behavior) and are also cached to prevent thundering-herd on billing outages. diff --git a/.server-changes/highlight-microvm-regions.md b/.server-changes/highlight-microvm-regions.md deleted file mode 100644 index 0d5139f93fb..00000000000 --- a/.server-changes/highlight-microvm-regions.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Show a `MicroVM` badge next to the region name on the regions page. diff --git a/.server-changes/increase-default-project-limit.md b/.server-changes/increase-default-project-limit.md deleted file mode 100644 index f24ba53ca0b..00000000000 --- a/.server-changes/increase-default-project-limit.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Increase default maximum project count per organization from 10 to 25 diff --git a/.server-changes/merge-dequeue-snapshot-into-transaction.md b/.server-changes/merge-dequeue-snapshot-into-transaction.md deleted file mode 100644 index 62c9a0ec6ca..00000000000 --- a/.server-changes/merge-dequeue-snapshot-into-transaction.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Merge execution snapshot creation into the dequeue taskRun.update transaction, reducing 2 DB commits to 1 per dequeue operation diff --git a/.server-changes/multi-preset-template-creation.md b/.server-changes/multi-preset-template-creation.md deleted file mode 100644 index fd3ba9576f1..00000000000 --- a/.server-changes/multi-preset-template-creation.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: feature ---- - -Configure the set of machine presets to build boot snapshots for at deploy time via `COMPUTE_TEMPLATE_MACHINE_PRESETS` (CSV of preset names, default `small-1x`). Use `COMPUTE_TEMPLATE_MACHINE_PRESETS_REQUIRED` (CSV, default = full PRESETS list) to scope which preset failures fail a required-mode deploy. Optional preset failures are logged and don't block the deploy. diff --git a/.server-changes/nodejs-heap-metrics.md b/.server-changes/nodejs-heap-metrics.md deleted file mode 100644 index bb82fcca99a..00000000000 --- a/.server-changes/nodejs-heap-metrics.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Add per-worker Node.js heap metrics to the OTel meter — `nodejs.memory.heap.used`, `nodejs.memory.heap.total`, `nodejs.memory.heap.limit`, `nodejs.memory.external`, `nodejs.memory.array_buffers`, `nodejs.memory.rss`. Host-metrics only publishes RSS, which overstates V8 heap by the external + native footprint; these give direct heap visibility per cluster worker so `NODE_MAX_OLD_SPACE_SIZE` can be sized against observed heap peaks rather than RSS. diff --git a/.server-changes/prisma-span-datasource-attribute.md b/.server-changes/prisma-span-datasource-attribute.md deleted file mode 100644 index 86507b89790..00000000000 --- a/.server-changes/prisma-span-datasource-attribute.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Tag Prisma spans with `db.datasource: "writer" | "replica"` so monitors and trace queries can distinguish the writer pool from the replica pool. Applies to all `prisma:engine:*` spans (including `prisma:engine:connection` used by the connection-pool monitors) and the outer `prisma:client:operation` span. diff --git a/.server-changes/private-connections-helper-cross-region-comment.md b/.server-changes/private-connections-helper-cross-region-comment.md deleted file mode 100644 index 8d0bed2c2bb..00000000000 --- a/.server-changes/private-connections-helper-cross-region-comment.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Clarify the cross-region intent in the Terraform and AI-prompt helpers on the Add Private Connection page. Both already default `supported_regions` to `["us-east-1", "eu-central-1"]`; added an inline comment / parenthetical so the user understands why both regions are listed (Trigger.dev runs in both, so the service must be consumable from either). diff --git a/.server-changes/queues-preserve-filters-on-action.md b/.server-changes/queues-preserve-filters-on-action.md deleted file mode 100644 index c472d35a123..00000000000 --- a/.server-changes/queues-preserve-filters-on-action.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Preserve filters on the queues page when submitting modal actions. diff --git a/.server-changes/read-replica-snapshots-since.md b/.server-changes/read-replica-snapshots-since.md deleted file mode 100644 index 24f4f070c7d..00000000000 --- a/.server-changes/read-replica-snapshots-since.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Add `RUN_ENGINE_READ_REPLICA_SNAPSHOTS_SINCE_ENABLED` flag (default off) to route the Prisma reads inside `RunEngine.getSnapshotsSince` through the read-only replica client. Offloads the snapshot polling queries (fired by every running task runner) from the primary. When disabled, behavior is unchanged. diff --git a/.server-changes/realtime-redis-connection-leak.md b/.server-changes/realtime-redis-connection-leak.md deleted file mode 100644 index e27b200174e..00000000000 --- a/.server-changes/realtime-redis-connection-leak.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -area: webapp -type: fix ---- - -Fix Redis connection leak in realtime streams and broken abort signal propagation. - -**Redis connections**: Non-blocking methods (ingestData, appendPart, getLastChunkIndex) now share a single Redis connection instead of creating one per request. streamResponse still uses dedicated connections (required for XREAD BLOCK) but now tears them down immediately via disconnect() instead of graceful quit(), with a 15s inactivity fallback. - -**Abort signal**: request.signal is broken in Remix/Express due to a Node.js undici GC bug (nodejs/node#55428) that severs the signal chain when Remix clones the Request internally. Added getRequestAbortSignal() wired to Express res.on("close") via httpAsyncStorage, which fires reliably on client disconnect. All SSE/streaming routes updated to use it. diff --git a/.server-changes/revoked-api-key-grace-period.md b/.server-changes/revoked-api-key-grace-period.md deleted file mode 100644 index df8727295ea..00000000000 --- a/.server-changes/revoked-api-key-grace-period.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: feature ---- - -Regenerating a RuntimeEnvironment API key no longer invalidates the previous key immediately. The old key is recorded in a new `RevokedApiKey` table with a 24 hour grace window, and `findEnvironmentByApiKey` falls back to it when the submitted key doesn't match any live environment. The grace window can be ended early (or extended) by updating `expiresAt` on the row. diff --git a/.server-changes/session-primitive.md b/.server-changes/session-primitive.md deleted file mode 100644 index a4d8b606ee2..00000000000 --- a/.server-changes/session-primitive.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: feature ---- - -Add the `Session` primitive — a durable, task-bound, bidirectional I/O channel that outlives a single run and acts as the run manager for `chat.agent`. Ships the Postgres `Session` + `SessionRun` tables, ClickHouse `sessions_v1` + replication service, the `sessions` JWT scope, and the public CRUD + realtime routes (`/api/v1/sessions`, `/realtime/v1/sessions/:session/:io`) including `end-and-continue` for server-orchestrated run handoffs and session-stream waitpoints. diff --git a/.server-changes/span-accessory-text-guard.md b/.server-changes/span-accessory-text-guard.md deleted file mode 100644 index ab668efd17a..00000000000 --- a/.server-changes/span-accessory-text-guard.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Prevent dashboard crash (React error #31) when span accessory item text is not a string. Filters out malformed accessory items in SpanCodePathAccessory instead of passing objects to React as children. diff --git a/.server-changes/stop-creating-taskruntag-records.md b/.server-changes/stop-creating-taskruntag-records.md deleted file mode 100644 index 0b068d3c3ac..00000000000 --- a/.server-changes/stop-creating-taskruntag-records.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Stop creating TaskRunTag records and _TaskRunToTaskRunTag join table entries during task triggering. The denormalized runTags string array on TaskRun already stores tag names, making the M2M relation redundant write overhead. diff --git a/.server-changes/stop-persisting-schedule-tick-state.md b/.server-changes/stop-persisting-schedule-tick-state.md deleted file mode 100644 index 859ef0e2b78..00000000000 --- a/.server-changes/stop-persisting-schedule-tick-state.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Stop writing per-tick state (`lastScheduledTimestamp`, `nextScheduledTimestamp`, `lastRunTriggeredAt`) on `TaskSchedule` and `TaskScheduleInstance`. The schedule engine now carries the previous fire time forward via the worker queue payload, eliminating ~270K dead-tuple-driven autovacuums per year on these hot tables and the associated `IO:XactSync` mini-spikes on the writer. Customer-facing `payload.lastTimestamp` semantics are unchanged. diff --git a/.server-changes/supervisor-pod-dns-ndots.md b/.server-changes/supervisor-pod-dns-ndots.md deleted file mode 100644 index 48d3563f146..00000000000 --- a/.server-changes/supervisor-pod-dns-ndots.md +++ /dev/null @@ -1,8 +0,0 @@ ---- -area: supervisor -type: feature ---- - -Add `KUBERNETES_POD_DNS_NDOTS_OVERRIDE_ENABLED` flag (off by default) that overrides the cluster default and sets `dnsConfig.options.ndots` on runner pods (defaulting to 2, configurable via `KUBERNETES_POD_DNS_NDOTS`). Kubernetes defaults pods to `ndots: 5`, so any name with fewer than 5 dots — including typical external domains like `api.example.com` — is first walked through every entry in the cluster search list (`.svc.cluster.local`, `svc.cluster.local`, `cluster.local`) before being tried as-is, turning one resolution into 4+ CoreDNS queries (×2 with A+AAAA). Using a lower `ndots` value reduces DNS query amplification in the `cluster.local` zone. - -Note: before enabling, make sure no code path relies on search-list expansion for names with dots ≥ the configured value — those names will hit their as-is form first and could resolve externally before falling back to the cluster search path. diff --git a/.server-changes/task-identifier-registry.md b/.server-changes/task-identifier-registry.md deleted file mode 100644 index 327e188de21..00000000000 --- a/.server-changes/task-identifier-registry.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Replace the expensive DISTINCT query for task filter dropdowns with a dedicated TaskIdentifier registry table backed by Redis. Environments migrate automatically on their next deploy, with a transparent fallback to the legacy query for unmigrated environments. Also fixes duplicate dropdown entries when a task changes trigger source, and adds active/archived grouping for removed tasks. Moves BackgroundWorkerTask reads in the trigger hot path to the read replica. diff --git a/.server-changes/throttle-token-last-accessed-at.md b/.server-changes/throttle-token-last-accessed-at.md deleted file mode 100644 index 53379622cc3..00000000000 --- a/.server-changes/throttle-token-last-accessed-at.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: improvement ---- - -Throttle `PersonalAccessToken.lastAccessedAt` and `OrganizationAccessToken.lastAccessedAt` writes to at most once per 5 minutes per token. Eliminates ~95% of writes on two narrow hot tables that were autovacuuming every ~5 minutes — same denormalization-on-the-hot-path shape as the schedule engine fix in TRI-8891. The settings UI continues to display "last used" with at most 5-minute lag. diff --git a/.server-changes/upgrade-remix-security.md b/.server-changes/upgrade-remix-security.md deleted file mode 100644 index cfb19bacf58..00000000000 --- a/.server-changes/upgrade-remix-security.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Upgrade Remix packages from 2.1.0 to 2.17.4 to address security vulnerabilities in React Router diff --git a/.server-changes/vercel-auto-promote-toggle.md b/.server-changes/vercel-auto-promote-toggle.md deleted file mode 100644 index bb5f25a21c1..00000000000 --- a/.server-changes/vercel-auto-promote-toggle.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: feature ---- - -Vercel integration option to disable auto promotions diff --git a/.server-changes/vercel-settings-fix-and-onboarding-improvements.md b/.server-changes/vercel-settings-fix-and-onboarding-improvements.md deleted file mode 100644 index a78a9012432..00000000000 --- a/.server-changes/vercel-settings-fix-and-onboarding-improvements.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Fix Vercel integration settings page (remove redundant section toggles) and improve the Vercel onboarding flow so the modal closes after connecting a GitHub repo and the marketplace `next` URL is preserved across the GitHub app install redirect. diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index b7c70806a1d..e91b71ff1df 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1441,7 +1441,7 @@ importers: specifier: ^6.10.0 version: 6.19.0(magicast@0.3.5) '@trigger.dev/core': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../core mlly: specifier: ^1.7.1 @@ -1517,13 +1517,13 @@ importers: specifier: ^0.22.5 version: 0.22.5(supports-color@10.0.0) '@trigger.dev/build': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../build '@trigger.dev/core': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../core '@trigger.dev/schema-to-json': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../schema-to-json ansi-escapes: specifier: ^7.0.0 @@ -1891,7 +1891,7 @@ importers: packages/python: dependencies: '@trigger.dev/core': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../core tinyexec: specifier: ^0.3.2 @@ -1901,10 +1901,10 @@ importers: specifier: ^0.15.4 version: 0.15.4 '@trigger.dev/build': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../build '@trigger.dev/sdk': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../trigger-sdk '@types/node': specifier: 20.14.14 @@ -1928,7 +1928,7 @@ importers: packages/react-hooks: dependencies: '@trigger.dev/core': - specifier: workspace:^4.4.5 + specifier: workspace:^4.4.6 version: link:../core react: specifier: ^18.0 || ^19.0 || ^19.0.0-rc @@ -1962,7 +1962,7 @@ importers: packages/redis-worker: dependencies: '@trigger.dev/core': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../core cron-parser: specifier: ^4.9.0 @@ -2011,7 +2011,7 @@ importers: packages/rsc: dependencies: '@trigger.dev/core': - specifier: workspace:^4.4.5 + specifier: workspace:^4.4.6 version: link:../core mlly: specifier: ^1.7.1 @@ -2027,7 +2027,7 @@ importers: specifier: ^0.15.4 version: 0.15.4 '@trigger.dev/build': - specifier: workspace:^4.4.5 + specifier: workspace:^4.4.6 version: link:../build '@types/node': specifier: 20.14.14 @@ -2103,7 +2103,7 @@ importers: specifier: 1.36.0 version: 1.36.0 '@trigger.dev/core': - specifier: workspace:4.4.5 + specifier: workspace:4.4.6 version: link:../core chalk: specifier: ^5.2.0 From b577d8c00b4938e81a99e462a9f3ff0eb25fe83d Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Fri, 1 May 2026 16:14:13 +0000 Subject: [PATCH 3/3] chore: bump helm chart version for release --- hosting/k8s/helm/Chart.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hosting/k8s/helm/Chart.yaml b/hosting/k8s/helm/Chart.yaml index 855453bb422..04515cd9a76 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.4.5 -appVersion: v4.4.5 +version: 4.4.6 +appVersion: v4.4.6 home: https://trigger.dev sources: - https://github.com/triggerdotdev/trigger.dev