From f4f119a5a327511859e37e8ac9e916a08a6bfa30 Mon Sep 17 00:00:00 2001 From: Shakker Date: Tue, 21 Apr 2026 02:44:40 +0100 Subject: [PATCH] fix: preserve tui hatch exit flow --- src/wizard/setup.finalize.test.ts | 5 ++++- src/wizard/setup.finalize.ts | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/wizard/setup.finalize.test.ts b/src/wizard/setup.finalize.test.ts index ee502309120..a7ef0f0eea3 100644 --- a/src/wizard/setup.finalize.test.ts +++ b/src/wizard/setup.finalize.test.ts @@ -282,9 +282,10 @@ describe("finalizeSetupWizard", () => { confirm: vi.fn(async () => false), }); const runtime = createRuntime(); + let result: Awaited> | undefined; try { - await finalizeSetupWizard({ + result = await finalizeSetupWizard({ flow: "quickstart", opts: { acceptRisk: true, @@ -345,6 +346,8 @@ describe("finalizeSetupWizard", () => { password: "resolved-gateway-password", // pragma: allowlist secret }), ); + expect(result).toEqual({ launchedTui: true }); + expect(setupWizardShellCompletion).not.toHaveBeenCalled(); }); it("restores terminal state after failed TUI hatch", async () => { diff --git a/src/wizard/setup.finalize.ts b/src/wizard/setup.finalize.ts index 66192b10269..ee9be9fe175 100644 --- a/src/wizard/setup.finalize.ts +++ b/src/wizard/setup.finalize.ts @@ -435,7 +435,7 @@ export async function finalizeSetupWizard( } finally { restoreTerminalState("post-setup tui", { resumeStdinIfPaused: true }); } - launchedTui = true; + return { launchedTui: true }; } else if (hatchChoice === "web") { const browserSupport = await detectBrowserOpenSupport(); if (browserSupport.ok) {