diff --git a/src/cli/update-cli.ts b/src/cli/update-cli.ts index 8b3eb6eb9..ddd1433ce 100644 --- a/src/cli/update-cli.ts +++ b/src/cli/update-cli.ts @@ -64,6 +64,15 @@ function createUpdateProgress(enabled: boolean): ProgressController { currentSpinner.stop(`${icon} ${label} ${duration}`); currentSpinner = null; + + if (step.exitCode !== 0 && step.stderrTail) { + const lines = step.stderrTail.split("\n").slice(-10); + for (const line of lines) { + if (line.trim()) { + defaultRuntime.log(` ${theme.error(line)}`); + } + } + } }, }; diff --git a/src/infra/update-runner.ts b/src/infra/update-runner.ts index bc1138fda..0e53a006a 100644 --- a/src/infra/update-runner.ts +++ b/src/infra/update-runner.ts @@ -40,6 +40,7 @@ export type UpdateStepInfo = { export type UpdateStepCompletion = UpdateStepInfo & { durationMs: number; exitCode: number | null; + stderrTail?: string | null; }; export type UpdateStepProgress = { @@ -199,10 +200,13 @@ async function runStep(opts: RunStepOptions): Promise { const result = await runCommand(argv, { cwd, timeoutMs, env }); const durationMs = Date.now() - started; + const stderrTail = trimLogTail(result.stderr, MAX_LOG_CHARS); + progress?.onStepComplete?.({ ...stepInfo, durationMs, exitCode: result.code, + stderrTail, }); return {