diff --git a/.changeset/config.json b/.changeset/config.json index a79ea117204..7e7b4d8e387 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -1,11 +1,6 @@ { "$schema": "https://unpkg.com/@changesets/config@2.2.0/schema.json", - "changelog": [ - "@remix-run/changelog-github", - { - "repo": "BasicBlock/trigger.dev" - } - ], + "changelog": false, "commit": false, "fixed": [["@basicblock/trigger-*"]], "linked": [], diff --git a/apps/supervisor/src/env.ts b/apps/supervisor/src/env.ts index 11ded0b8bed..4e18201df74 100644 --- a/apps/supervisor/src/env.ts +++ b/apps/supervisor/src/env.ts @@ -24,6 +24,8 @@ const Env = z.object({ TRIGGER_WORKLOAD_API_HOST_INTERNAL: z.string().default("0.0.0.0"), TRIGGER_WORKLOAD_API_PORT_INTERNAL: z.coerce.number().default(8020), // This is the port the workload API listens on TRIGGER_WORKLOAD_API_PORT_EXTERNAL: z.coerce.number().default(8020), // This is the exposed port passed to the run controller + TRIGGER_WORKLOAD_API_WS_PING_INTERVAL_MS: z.coerce.number().int().positive().default(25000), + TRIGGER_WORKLOAD_API_WS_PING_TIMEOUT_MS: z.coerce.number().int().positive().default(120000), // Runner settings RUNNER_HEARTBEAT_INTERVAL_SECONDS: z.coerce.number().optional(), diff --git a/apps/supervisor/src/workloadServer/index.ts b/apps/supervisor/src/workloadServer/index.ts index 2e782176279..3be265b4629 100644 --- a/apps/supervisor/src/workloadServer/index.ts +++ b/apps/supervisor/src/workloadServer/index.ts @@ -398,7 +398,10 @@ export class WorkloadServer extends EventEmitter { } private createWebsocketServer() { - const io = new Server(this.httpServer.server); + const io = new Server(this.httpServer.server, { + pingInterval: env.TRIGGER_WORKLOAD_API_WS_PING_INTERVAL_MS, + pingTimeout: env.TRIGGER_WORKLOAD_API_WS_PING_TIMEOUT_MS, + }); const websocketServer: Namespace< WorkloadClientToServerEvents, diff --git a/packages/build/package.json b/packages/build/package.json index 1cd65be09e8..e677f6160ba 100644 --- a/packages/build/package.json +++ b/packages/build/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-build", - "version": "4.3.4", + "version": "4.3.5", "description": "trigger.dev build extensions", "license": "MIT", "publishConfig": { @@ -79,7 +79,7 @@ }, "dependencies": { "@prisma/config": "^6.10.0", - "@basicblock/trigger-core": "workspace:4.3.4", + "@basicblock/trigger-core": "workspace:4.3.5", "mlly": "^1.7.1", "pkg-types": "^1.1.3", "resolve": "^1.22.8", diff --git a/packages/cli-v3/package.json b/packages/cli-v3/package.json index b2e47cac577..1f1c79c7668 100644 --- a/packages/cli-v3/package.json +++ b/packages/cli-v3/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-cli", - "version": "4.3.4", + "version": "4.3.5", "description": "A Command-Line Interface for Trigger.dev projects", "type": "module", "license": "MIT", @@ -94,9 +94,9 @@ "@opentelemetry/sdk-trace-node": "2.0.1", "@opentelemetry/semantic-conventions": "1.36.0", "@s2-dev/streamstore": "^0.17.6", - "@basicblock/trigger-build": "workspace:4.3.4", - "@basicblock/trigger-core": "workspace:4.3.4", - "@basicblock/trigger-schema-to-json": "workspace:4.3.4", + "@basicblock/trigger-build": "workspace:4.3.5", + "@basicblock/trigger-core": "workspace:4.3.5", + "@basicblock/trigger-schema-to-json": "workspace:4.3.5", "ansi-escapes": "^7.0.0", "braces": "^3.0.3", "c12": "^1.11.1", diff --git a/packages/cli-v3/src/entryPoints/managed/execution.ts b/packages/cli-v3/src/entryPoints/managed/execution.ts index 69af002df50..abb01c49ed5 100644 --- a/packages/cli-v3/src/entryPoints/managed/execution.ts +++ b/packages/cli-v3/src/entryPoints/managed/execution.ts @@ -865,6 +865,15 @@ export class RunExecution { // Short delay to give websocket time to reconnect await sleep(100); + // Reset the supervisor socket after checkpoint restore. + // Socket transports don't reliably survive process snapshot/restore boundaries. + try { + this.supervisorSocket.disconnect(); + } catch (_) { + // noop + } + this.supervisorSocket.connect(); + // Process any env overrides await this.processEnvOverrides("restore"); @@ -1204,6 +1213,10 @@ export class RunExecution { } this.sendDebugLog("suspending, any day now 🚬", { suspendableSnapshot }); + + // Disconnect before snapshotting so the restored process does a fresh socket handshake. + // This avoids carrying a stale websocket transport through checkpoint/restore. + this.supervisorSocket.disconnect(); } /** diff --git a/packages/core/package.json b/packages/core/package.json index 94bdd6ea80f..09de748bf53 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-core", - "version": "4.3.4", + "version": "4.3.5", "description": "Core code used across the Trigger.dev SDK and platform", "license": "MIT", "publishConfig": { diff --git a/packages/python/package.json b/packages/python/package.json index 84b4963ee07..498a05e6f4d 100644 --- a/packages/python/package.json +++ b/packages/python/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-python", - "version": "4.3.4", + "version": "4.3.5", "description": "Python runtime and build extension for Trigger.dev", "license": "MIT", "publishConfig": { @@ -46,7 +46,7 @@ "check-exports": "attw --pack ." }, "dependencies": { - "@basicblock/trigger-core": "workspace:4.3.4", + "@basicblock/trigger-core": "workspace:4.3.5", "tinyexec": "^0.3.2" }, "devDependencies": { @@ -57,12 +57,12 @@ "tsx": "4.17.0", "esbuild": "^0.23.0", "@arethetypeswrong/cli": "^0.15.4", - "@basicblock/trigger-build": "workspace:4.3.4", - "@basicblock/trigger-sdk": "workspace:4.3.4" + "@basicblock/trigger-build": "workspace:4.3.5", + "@basicblock/trigger-sdk": "workspace:4.3.5" }, "peerDependencies": { - "@basicblock/trigger-sdk": "workspace:^4.3.4", - "@basicblock/trigger-build": "workspace:^4.3.4" + "@basicblock/trigger-sdk": "workspace:^4.3.5", + "@basicblock/trigger-build": "workspace:^4.3.5" }, "engines": { "node": ">=18.20.0" diff --git a/packages/react-hooks/package.json b/packages/react-hooks/package.json index 7d87e9715b6..8fad244fb02 100644 --- a/packages/react-hooks/package.json +++ b/packages/react-hooks/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-react-hooks", - "version": "4.3.4", + "version": "4.3.5", "description": "trigger.dev react hooks", "license": "MIT", "publishConfig": { @@ -38,7 +38,7 @@ "check-exports": "attw --pack ." }, "dependencies": { - "@basicblock/trigger-core": "workspace:^4.3.4", + "@basicblock/trigger-core": "workspace:^4.3.5", "swr": "^2.2.5" }, "devDependencies": { diff --git a/packages/redis-worker/package.json b/packages/redis-worker/package.json index 5c7186c9ce7..79f6b799ef5 100644 --- a/packages/redis-worker/package.json +++ b/packages/redis-worker/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-redis-worker", - "version": "4.3.4", + "version": "4.3.5", "description": "Redis worker for trigger.dev", "license": "MIT", "publishConfig": { @@ -24,7 +24,7 @@ "test": "vitest --sequence.concurrent=false --no-file-parallelism" }, "dependencies": { - "@basicblock/trigger-core": "workspace:4.3.4", + "@basicblock/trigger-core": "workspace:4.3.5", "lodash.omit": "^4.5.0", "nanoid": "^5.0.7", "p-limit": "^6.2.0", diff --git a/packages/rsc/package.json b/packages/rsc/package.json index c2dad1267cc..531857cb18f 100644 --- a/packages/rsc/package.json +++ b/packages/rsc/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-rsc", - "version": "4.3.4", + "version": "4.3.5", "description": "trigger.dev rsc", "license": "MIT", "publishConfig": { @@ -38,14 +38,14 @@ "check-exports": "attw --pack ." }, "dependencies": { - "@basicblock/trigger-core": "workspace:^4.3.4", + "@basicblock/trigger-core": "workspace:^4.3.5", "mlly": "^1.7.1", "react": "19.0.0-rc.1", "react-dom": "19.0.0-rc.1" }, "devDependencies": { "@arethetypeswrong/cli": "^0.15.4", - "@basicblock/trigger-build": "workspace:^4.3.4", + "@basicblock/trigger-build": "workspace:^4.3.5", "@types/node": "^20.14.14", "@types/react": "*", "@types/react-dom": "*", diff --git a/packages/schema-to-json/package.json b/packages/schema-to-json/package.json index e60c531c644..c6d9b40d260 100644 --- a/packages/schema-to-json/package.json +++ b/packages/schema-to-json/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-schema-to-json", - "version": "4.3.4", + "version": "4.3.5", "description": "Convert various schema validation libraries to JSON Schema", "license": "MIT", "publishConfig": { diff --git a/packages/trigger-sdk/package.json b/packages/trigger-sdk/package.json index 04dcc14969b..1541d04656b 100644 --- a/packages/trigger-sdk/package.json +++ b/packages/trigger-sdk/package.json @@ -1,6 +1,6 @@ { "name": "@basicblock/trigger-sdk", - "version": "4.3.4", + "version": "4.3.5", "description": "trigger.dev Node.JS SDK", "license": "MIT", "publishConfig": { @@ -53,7 +53,7 @@ "dependencies": { "@opentelemetry/api": "1.9.0", "@opentelemetry/semantic-conventions": "1.36.0", - "@basicblock/trigger-core": "workspace:4.3.4", + "@basicblock/trigger-core": "workspace:4.3.5", "chalk": "^5.2.0", "cronstrue": "^2.21.0", "debug": "^4.3.4", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index baa91c1127f..a93ac4ce96e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1376,7 +1376,7 @@ importers: packages/build: dependencies: '@basicblock/trigger-core': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../core '@prisma/config': specifier: ^6.10.0 @@ -1419,13 +1419,13 @@ importers: packages/cli-v3: dependencies: '@basicblock/trigger-build': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../build '@basicblock/trigger-core': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../core '@basicblock/trigger-schema-to-json': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../schema-to-json '@clack/prompts': specifier: 0.11.0 @@ -1820,7 +1820,7 @@ importers: packages/python: dependencies: '@basicblock/trigger-core': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../core tinyexec: specifier: ^0.3.2 @@ -1830,10 +1830,10 @@ importers: specifier: ^0.15.4 version: 0.15.4 '@basicblock/trigger-build': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../build '@basicblock/trigger-sdk': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../trigger-sdk '@types/node': specifier: 20.14.14 @@ -1857,7 +1857,7 @@ importers: packages/react-hooks: dependencies: '@basicblock/trigger-core': - specifier: workspace:^4.3.4 + specifier: workspace:^4.3.5 version: link:../core react: specifier: ^18.0 || ^19.0 || ^19.0.0-rc @@ -1891,7 +1891,7 @@ importers: packages/redis-worker: dependencies: '@basicblock/trigger-core': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../core cron-parser: specifier: ^4.9.0 @@ -1940,7 +1940,7 @@ importers: packages/rsc: dependencies: '@basicblock/trigger-core': - specifier: workspace:^4.3.4 + specifier: workspace:^4.3.5 version: link:../core mlly: specifier: ^1.7.1 @@ -1956,7 +1956,7 @@ importers: specifier: ^0.15.4 version: 0.15.4 '@basicblock/trigger-build': - specifier: workspace:^4.3.4 + specifier: workspace:^4.3.5 version: link:../build '@types/node': specifier: 20.14.14 @@ -2026,7 +2026,7 @@ importers: packages/trigger-sdk: dependencies: '@basicblock/trigger-core': - specifier: workspace:4.3.4 + specifier: workspace:4.3.5 version: link:../core '@opentelemetry/api': specifier: 1.9.0 diff --git a/scripts/publish-release.sh b/scripts/publish-release.sh index 36141916d3e..34111fc180a 100755 --- a/scripts/publish-release.sh +++ b/scripts/publish-release.sh @@ -4,6 +4,10 @@ set -euo pipefail token="${NODE_AUTH_TOKEN:-${GITHUB_TOKEN:-${GH_TOKEN:-}}}" +if [[ -z "$token" ]] && command -v gh >/dev/null 2>&1; then + token="$(gh auth token 2>/dev/null || true)" +fi + if [[ -z "$token" ]]; then echo "Missing auth token. Set NODE_AUTH_TOKEN, GITHUB_TOKEN, or GH_TOKEN." exit 1