diff --git a/.changeset/pre.json b/.changeset/pre.json index 26efee12b15..79a03c67007 100644 --- a/.changeset/pre.json +++ b/.changeset/pre.json @@ -38,9 +38,12 @@ "mollifier-redis-worker-primitives", "plugin-auth-path", "resource-catalog-runtime-registration", + "retry-middleware-errors", "retry-sigsegv", "runs-list-region-filter", "sessions-primitive", - "trigger-client" + "trigger-client", + "unflatten-attributes-conflict", + "warm-start-external-trace-context-leak" ] } diff --git a/.server-changes/batch-stream-phase2-retry-idempotency.md b/.server-changes/batch-stream-phase2-retry-idempotency.md deleted file mode 100644 index a14adcadb1f..00000000000 --- a/.server-changes/batch-stream-phase2-retry-idempotency.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Stop spurious `BatchTriggerError` failures when a fast-completing `batchTrigger`/`batchTriggerAndWait` raced the stream finalisation - the API now treats these as successes instead of 422s. diff --git a/.server-changes/runs-replication-bigint-recovery.md b/.server-changes/runs-replication-bigint-recovery.md deleted file mode 100644 index 9bd1afc734f..00000000000 --- a/.server-changes/runs-replication-bigint-recovery.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -area: webapp -type: fix ---- - -Extend the runs-replication sanitizer (`sanitizeUnknownInPlace`) to detect -JS Numbers that JSON-serialise as bare integer tokens outside the -Int64..UInt64 range and replace them with their string form, so a -following retry insert no longer trips ClickHouse's -`INCORRECT_DATA` parser failure on `JSON(max_dynamic_paths)` columns. - -This is the second class of poisoned-row failure that was stranding -`scan-social-profiles` runs in `EXECUTING` on the Tasks page even after -the UTF-16 surrogate fix (#3708 / TRI-9755). Root cause: upstream JS -Number precision loss on a 21-digit Google Plus ID -(`117039831458782873093` → `117039831458782870000`) — the precision-lossy -value still serialises as a bare integer that exceeds UInt64.MAX, -which CH's JSON column rejects with `Cannot parse JSON object here`. - -Recovery stays purely reactive (no extra cost on the hot replication -path); the sanitizer only runs after a ClickHouse parse-error rejection. diff --git a/.server-changes/runs-replication-utf16-recovery.md b/.server-changes/runs-replication-utf16-recovery.md deleted file mode 100644 index 4a998f2a31e..00000000000 --- a/.server-changes/runs-replication-utf16-recovery.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -area: webapp -type: fix ---- - -Recover from ClickHouse `JSONEachRow` parse failures in the runs -replication path. `RunsReplicationService` now wraps its task-run and -payload inserts with the same reactive-sanitisation pattern used by -`ClickhouseEventRepository` since #3659: on `Cannot parse JSON object`, -sanitize lone UTF-16 surrogates across the batch (via the shared -`sanitizeRows` helper) and retry once. If the sanitiser found nothing -or the retry also fails, the batch is dropped, `permanentlyDroppedBatches` -increments, and a loud error log is emitted — preventing the surrounding -`#insertWithRetry` layer from spinning on the same deterministic -failure. Non-parse errors propagate unchanged. - -Stops the bleeding behind the customer-visible "Tasks page shows a huge -Running count" symptom: one row with bad output JSON used to take down -the COMPLETED updates for its 50+ batch-mates, leaving every one of -them stranded in `EXECUTING` in ClickHouse forever (Postgres unaffected). diff --git a/.server-changes/skip-waiting-for-deploy-on-v2-promotes.md b/.server-changes/skip-waiting-for-deploy-on-v2-promotes.md deleted file mode 100644 index 883a8c6ed99..00000000000 --- a/.server-changes/skip-waiting-for-deploy-on-v2-promotes.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -area: webapp -type: fix ---- - -Skip the legacy V1 `WAITING_FOR_DEPLOY` drain on V2 deployment promotions. A new `LEGACY_RUN_ENGINE_WAITING_FOR_DEPLOY_DISABLED` env var also acts as a kill-switch for any already-enqueued jobs. diff --git a/hosting/k8s/helm/Chart.yaml b/hosting/k8s/helm/Chart.yaml index 70d883125c1..4c38d81b52d 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.0-rc.2 -appVersion: v4.5.0-rc.2 +version: 4.5.0-rc.3 +appVersion: v4.5.0-rc.3 home: https://trigger.dev sources: - https://github.com/triggerdotdev/trigger.dev diff --git a/packages/build/CHANGELOG.md b/packages/build/CHANGELOG.md index 7115bb4520a..b0596a74c26 100644 --- a/packages/build/CHANGELOG.md +++ b/packages/build/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/build +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/build/package.json b/packages/build/package.json index 95435efa57f..253d2a1efaa 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/build", - "version": "4.5.0-rc.2", + "version": "4.5.0-rc.3", "description": "trigger.dev build extensions", "license": "MIT", "publishConfig": { @@ -78,7 +78,7 @@ }, "dependencies": { "@prisma/config": "^6.10.0", - "@trigger.dev/core": "workspace:4.5.0-rc.2", + "@trigger.dev/core": "workspace:4.5.0-rc.3", "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 d42b4f5a700..ee7e8e1693a 100644 --- a/packages/cli-v3/CHANGELOG.md +++ b/packages/cli-v3/CHANGELOG.md @@ -1,5 +1,14 @@ # trigger.dev +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + - `@trigger.dev/build@4.5.0-rc.3` + - `@trigger.dev/schema-to-json@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index 8b90095849e..44bd03781ae 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -1,6 +1,6 @@ { "name": "trigger.dev", - "version": "4.5.0-rc.2", + "version": "4.5.0-rc.3", "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.5.0-rc.2", - "@trigger.dev/core": "workspace:4.5.0-rc.2", - "@trigger.dev/schema-to-json": "workspace:4.5.0-rc.2", + "@trigger.dev/build": "workspace:4.5.0-rc.3", + "@trigger.dev/core": "workspace:4.5.0-rc.3", + "@trigger.dev/schema-to-json": "workspace:4.5.0-rc.3", "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 b948880da7c..7da3221ae8b 100644 --- a/packages/core/CHANGELOG.md +++ b/packages/core/CHANGELOG.md @@ -1,5 +1,13 @@ # internal-platform +## 4.5.0-rc.3 + +### Patch Changes + +- Retry `TASK_MIDDLEWARE_ERROR` under the task's retry policy instead of failing the run on the first attempt. The error was already classified as retryable by `shouldRetryError`, but `shouldLookupRetrySettings` did not include it, so the retry flow fell through to `fail_run`. Fixes #3231. ([#3676](https://github.com/triggerdotdev/trigger.dev/pull/3676)) +- Fix `TypeError` in `unflattenAttributes` when the input attribute map contains conflicting dotted key paths (e.g. both `a.b` set to a scalar and `a.b.c` set to a value). The path-walk loop now applies last-write-wins when a prior key wrote a primitive, null, or array at an intermediate slot, matching the existing precedent in `AttributeFlattener.addAttribute`. Callers no longer crash when handed malformed external attribute inputs. ([#3762](https://github.com/triggerdotdev/trigger.dev/pull/3762)) +- Fix external trace context leaking across runs on warm-started workers with `processKeepAlive` enabled. Every subsequent run's attempt span was being exported with the first run's `traceId` and `parentSpanId`, breaking causal-chain navigation in external APM tools. Runs without an external trace context are unaffected. ([#3768](https://github.com/triggerdotdev/trigger.dev/pull/3768)) + ## 4.5.0-rc.2 ## 4.5.0-rc.1 diff --git a/packages/core/package.json b/packages/core/package.json index d35a21e1ab5..52613c81e31 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/core", - "version": "4.5.0-rc.2", + "version": "4.5.0-rc.3", "description": "Core code used across the Trigger.dev SDK and platform", "license": "MIT", "publishConfig": { diff --git a/packages/plugins/CHANGELOG.md b/packages/plugins/CHANGELOG.md index 913dbcea055..1f502a2780f 100644 --- a/packages/plugins/CHANGELOG.md +++ b/packages/plugins/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/plugins +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/plugins/package.json b/packages/plugins/package.json index 516bed10d59..6b8cab0c796 100644 --- a/packages/plugins/package.json +++ b/packages/plugins/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/plugins", - "version": "4.5.0-rc.2", + "version": "4.5.0-rc.3", "description": "Plugin contracts and interfaces for Trigger.dev", "license": "MIT", "publishConfig": { diff --git a/packages/python/CHANGELOG.md b/packages/python/CHANGELOG.md index 1179323c328..b802bb7fd84 100644 --- a/packages/python/CHANGELOG.md +++ b/packages/python/CHANGELOG.md @@ -1,5 +1,14 @@ # @trigger.dev/python +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + - `@trigger.dev/build@4.5.0-rc.3` + - `@trigger.dev/sdk@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/python/package.json b/packages/python/package.json index a99249e825f..4607cb03954 100644 --- a/packages/python/package.json +++ b/packages/python/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/python", - "version": "4.5.0-rc.2", + "version": "4.5.0-rc.3", "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.0-rc.2", + "@trigger.dev/core": "workspace:4.5.0-rc.3", "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.5.0-rc.2", - "@trigger.dev/sdk": "workspace:4.5.0-rc.2" + "@trigger.dev/build": "workspace:4.5.0-rc.3", + "@trigger.dev/sdk": "workspace:4.5.0-rc.3" }, "peerDependencies": { - "@trigger.dev/sdk": "workspace:^4.5.0-rc.2", - "@trigger.dev/build": "workspace:^4.5.0-rc.2" + "@trigger.dev/sdk": "workspace:^4.5.0-rc.3", + "@trigger.dev/build": "workspace:^4.5.0-rc.3" }, "engines": { "node": ">=18.20.0" diff --git a/packages/react-hooks/CHANGELOG.md b/packages/react-hooks/CHANGELOG.md index 93d6c07cf44..d6a895b9b66 100644 --- a/packages/react-hooks/CHANGELOG.md +++ b/packages/react-hooks/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/react-hooks +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/react-hooks/package.json b/packages/react-hooks/package.json index 79089c88d27..ae59ba16871 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.0-rc.2", + "version": "4.5.0-rc.3", "description": "trigger.dev react hooks", "license": "MIT", "publishConfig": { @@ -37,7 +37,7 @@ "check-exports": "attw --pack ." }, "dependencies": { - "@trigger.dev/core": "workspace:^4.5.0-rc.2", + "@trigger.dev/core": "workspace:^4.5.0-rc.3", "swr": "^2.2.5" }, "devDependencies": { diff --git a/packages/redis-worker/CHANGELOG.md b/packages/redis-worker/CHANGELOG.md index ba91f4b7b70..c460b0c4b89 100644 --- a/packages/redis-worker/CHANGELOG.md +++ b/packages/redis-worker/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/redis-worker +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/redis-worker/package.json b/packages/redis-worker/package.json index 0f025b7fefd..97746e3b75b 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.0-rc.2", + "version": "4.5.0-rc.3", "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.0-rc.2", + "@trigger.dev/core": "workspace:4.5.0-rc.3", "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 2fc48ef862c..c7468839bd8 100644 --- a/packages/rsc/CHANGELOG.md +++ b/packages/rsc/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/rsc +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/rsc/package.json b/packages/rsc/package.json index ead6e390e35..989a4e3078c 100644 --- a/packages/rsc/package.json +++ b/packages/rsc/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/rsc", - "version": "4.5.0-rc.2", + "version": "4.5.0-rc.3", "description": "trigger.dev rsc", "license": "MIT", "publishConfig": { @@ -37,14 +37,14 @@ "check-exports": "attw --pack ." }, "dependencies": { - "@trigger.dev/core": "workspace:^4.5.0-rc.2", + "@trigger.dev/core": "workspace:^4.5.0-rc.3", "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.5.0-rc.2", + "@trigger.dev/build": "workspace:^4.5.0-rc.3", "@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 368ff1a8f62..1dd0e24cdba 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.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/schema-to-json/package.json b/packages/schema-to-json/package.json index b5cc0f3b309..a2be14a91c1 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.0-rc.2", + "version": "4.5.0-rc.3", "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 781de7dcb45..0ab469b5247 100644 --- a/packages/trigger-sdk/CHANGELOG.md +++ b/packages/trigger-sdk/CHANGELOG.md @@ -1,5 +1,12 @@ # @trigger.dev/sdk +## 4.5.0-rc.3 + +### Patch Changes + +- Updated dependencies: + - `@trigger.dev/core@4.5.0-rc.3` + ## 4.5.0-rc.2 ### Patch Changes diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index c47c0140d4e..8efa660fa44 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@trigger.dev/sdk", - "version": "4.5.0-rc.2", + "version": "4.5.0-rc.3", "description": "trigger.dev Node.JS SDK", "license": "MIT", "publishConfig": { @@ -73,7 +73,7 @@ "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/semantic-conventions": "1.36.0", - "@trigger.dev/core": "workspace:4.5.0-rc.2", + "@trigger.dev/core": "workspace:4.5.0-rc.3", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 58a5f3f8012..21d82d6e5a3 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1472,7 +1472,7 @@ importers: specifier: ^6.10.0 version: 6.19.0(magicast@0.3.5) '@trigger.dev/core': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../core mlly: specifier: ^1.7.1 @@ -1548,13 +1548,13 @@ importers: specifier: ^0.22.5 version: 0.22.5(supports-color@10.0.0) '@trigger.dev/build': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../build '@trigger.dev/core': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../core '@trigger.dev/schema-to-json': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../schema-to-json ansi-escapes: specifier: ^7.0.0 @@ -1941,7 +1941,7 @@ importers: packages/python: dependencies: '@trigger.dev/core': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../core tinyexec: specifier: ^0.3.2 @@ -1951,10 +1951,10 @@ importers: specifier: ^0.15.4 version: 0.15.4 '@trigger.dev/build': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../build '@trigger.dev/sdk': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../trigger-sdk '@types/node': specifier: 20.14.14 @@ -1978,7 +1978,7 @@ importers: packages/react-hooks: dependencies: '@trigger.dev/core': - specifier: workspace:^4.5.0-rc.2 + specifier: workspace:^4.5.0-rc.3 version: link:../core react: specifier: ^18.0 || ^19.0 || ^19.0.0-rc @@ -2012,7 +2012,7 @@ importers: packages/redis-worker: dependencies: '@trigger.dev/core': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../core cron-parser: specifier: ^4.9.0 @@ -2061,7 +2061,7 @@ importers: packages/rsc: dependencies: '@trigger.dev/core': - specifier: workspace:^4.5.0-rc.2 + specifier: workspace:^4.5.0-rc.3 version: link:../core mlly: specifier: ^1.7.1 @@ -2077,7 +2077,7 @@ importers: specifier: ^0.15.4 version: 0.15.4 '@trigger.dev/build': - specifier: workspace:^4.5.0-rc.2 + specifier: workspace:^4.5.0-rc.3 version: link:../build '@types/node': specifier: 20.14.14 @@ -2153,7 +2153,7 @@ importers: specifier: 1.36.0 version: 1.36.0 '@trigger.dev/core': - specifier: workspace:4.5.0-rc.2 + specifier: workspace:4.5.0-rc.3 version: link:../core chalk: specifier: ^5.2.0