From 3d609b112ebd2dc24fcf91d9c47c55eb59402d62 Mon Sep 17 00:00:00 2001 From: Shakker Date: Fri, 27 Mar 2026 09:49:10 +0000 Subject: [PATCH] fix: repair local control ui auth on quickstart reruns --- src/wizard/setup.gateway-config.test.ts | 29 +++++++++++++++++++++++++ src/wizard/setup.gateway-config.ts | 1 - 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/src/wizard/setup.gateway-config.test.ts b/src/wizard/setup.gateway-config.test.ts index ff548c13a33..53f3a35db97 100644 --- a/src/wizard/setup.gateway-config.test.ts +++ b/src/wizard/setup.gateway-config.test.ts @@ -148,6 +148,35 @@ describe("configureGatewayForSetup", () => { expect(result.nextConfig.gateway?.controlUi?.allowInsecureAuth).toBe(false); }); + it("enables insecure local control ui auth when quickstart reuses an existing loopback config", async () => { + mocks.randomToken.mockReturnValue("generated-token"); + const prompter = createPrompter({ + selectQueue: [], + textQueue: [], + }); + const runtime = createRuntime(); + + const result = await configureGatewayForSetup({ + flow: "quickstart", + baseConfig: {}, + nextConfig: { + gateway: { + port: 18789, + bind: "loopback", + }, + }, + localPort: 18789, + quickstartGateway: { + ...createQuickstartGateway("token"), + hasExisting: true, + }, + prompter, + runtime, + }); + + expect(result.nextConfig.gateway?.controlUi?.allowInsecureAuth).toBe(true); + }); + it("does not set password to literal 'undefined' when prompt returns undefined", async () => { mocks.randomToken.mockReturnValue("unused"); const result = await runGatewayConfig({ diff --git a/src/wizard/setup.gateway-config.ts b/src/wizard/setup.gateway-config.ts index 56ab11f2e00..6a2d4280c54 100644 --- a/src/wizard/setup.gateway-config.ts +++ b/src/wizard/setup.gateway-config.ts @@ -297,7 +297,6 @@ export async function configureGatewayForSetup( if ( flow === "quickstart" && bind === "loopback" && - !quickstartGateway.hasExisting && nextConfig.gateway?.controlUi?.allowInsecureAuth === undefined ) { nextConfig = {