diff --git a/.changeset/sharp-cheetahs-end.md b/.changeset/sharp-cheetahs-end.md new file mode 100644 index 0000000000..818d14b615 --- /dev/null +++ b/.changeset/sharp-cheetahs-end.md @@ -0,0 +1,6 @@ +--- +"trigger.dev": patch +--- + +- Reduce restore times by 5s due to immediate polling +- Fix `s is not a function` and surface underlying error messages \ No newline at end of file diff --git a/packages/cli-v3/src/entryPoints/managed/controller.ts b/packages/cli-v3/src/entryPoints/managed/controller.ts index 72006652cf..80bd744dfa 100644 --- a/packages/cli-v3/src/entryPoints/managed/controller.ts +++ b/packages/cli-v3/src/entryPoints/managed/controller.ts @@ -514,7 +514,7 @@ export class ManagedRunController { supervisorApiUrl: this.env.TRIGGER_SUPERVISOR_API_URL, }; - await this.currentExecution.processEnvOverrides("socket disconnected"); + await this.currentExecution.processEnvOverrides("socket disconnected", true); const newEnv = { workerInstanceName: this.env.TRIGGER_WORKER_INSTANCE_NAME, diff --git a/packages/cli-v3/src/entryPoints/managed/execution.ts b/packages/cli-v3/src/entryPoints/managed/execution.ts index 84a6b00d64..2b9e0c9c08 100644 --- a/packages/cli-v3/src/entryPoints/managed/execution.ts +++ b/packages/cli-v3/src/entryPoints/managed/execution.ts @@ -896,7 +896,10 @@ export class RunExecution { /** * Processes env overrides from the metadata service. Generally called when we're resuming from a suspended state. */ - public async processEnvOverrides(reason?: string): Promise<{ overrides: Metadata } | null> { + public async processEnvOverrides( + reason?: string, + shouldPollForSnapshotChanges?: boolean + ): Promise<{ overrides: Metadata } | null> { if (!this.metadataClient) { return null; } @@ -943,6 +946,12 @@ export class RunExecution { this.httpClient.updateRunnerId(this.env.TRIGGER_RUNNER_ID); } + // Poll for snapshot changes immediately + if (shouldPollForSnapshotChanges) { + this.sendDebugLog("[override] polling for snapshot changes", { reason }); + this.fetchAndProcessSnapshotChanges("restore").catch(() => {}); + } + return { overrides, }; diff --git a/packages/cli-v3/src/utilities/windows.ts b/packages/cli-v3/src/utilities/windows.ts index 5b1f12125d..e3363e9040 100644 --- a/packages/cli-v3/src/utilities/windows.ts +++ b/packages/cli-v3/src/utilities/windows.ts @@ -57,12 +57,30 @@ const wrappedClackSpinner = () => { spinner.start(truncateMessage(currentMessage)); }, stop: (msg?: string, code?: number): void => { - isActive = false; process.stdout.off("resize", handleResize); + + if (!isActive) { + // Spinner was never started, just display the message + if (msg) { + log.message(msg); + } + return; + } + + isActive = false; spinner.stop(truncateMessage(msg ?? ""), code); }, message: (msg?: string): void => { currentMessage = msg ?? ""; + + if (!isActive) { + // Spinner was never started, just display the message + if (msg) { + log.message(msg); + } + return; + } + spinner.message(truncateMessage(currentMessage)); }, }; diff --git a/scripts/publish-prerelease.sh b/scripts/publish-prerelease.sh index 66602fb069..9e5131dc6d 100755 --- a/scripts/publish-prerelease.sh +++ b/scripts/publish-prerelease.sh @@ -24,7 +24,7 @@ if [[ -z "${GITHUB_TOKEN}" ]]; then fi # Use the first argument as version or 'v3-prerelease' if not available -version=${1:-'v3-prerelease'} +version=${1:-'v4-prerelease'} # Ensure git stage is clear if [[ $(git status --porcelain) ]]; then