diff --git a/packages/electron-app/electron/main/main.ts b/packages/electron-app/electron/main/main.ts index 80038b02..500bd4c9 100644 --- a/packages/electron-app/electron/main/main.ts +++ b/packages/electron-app/electron/main/main.ts @@ -327,7 +327,6 @@ function finalizeCliSwap(url: string) { mainWindow.loadURL(url).catch((error) => console.error("[cli] failed to load CLI view:", error)) } -const SESSION_COOKIE_NAME = "codenomad_session" let bootstrapExchangeInFlight = false function extractCookieValue(setCookieHeader: string | string[] | undefined, name: string): string | null { @@ -350,6 +349,7 @@ function extractCookieValue(setCookieHeader: string | string[] | undefined, name } async function exchangeBootstrapToken(baseUrl: string, token: string): Promise { + const sessionCookieName = cliManager.getAuthCookieName() const target = new URL("/api/auth/token", baseUrl) const body = JSON.stringify({ token }) @@ -380,14 +380,14 @@ async function exchangeBootstrapToken(baseUrl: string, token: string): Promise { @@ -132,6 +134,7 @@ export class CliProcessManager extends EventEmitter { this.stdoutBuffer = "" this.stderrBuffer = "" this.bootstrapToken = null + this.authCookieName = `${SESSION_COOKIE_NAME_PREFIX}_${process.pid}_${Date.now()}` this.requestedStop = false this.updateStatus({ state: "starting", port: undefined, pid: undefined, url: undefined, error: undefined }) @@ -328,6 +331,10 @@ export class CliProcessManager extends EventEmitter { return { ...this.status } } + getAuthCookieName(): string { + return this.authCookieName + } + private resolveListeningMode(): ListeningMode { return readListeningModeFromConfig() } @@ -416,7 +423,7 @@ export class CliProcessManager extends EventEmitter { } private buildCliArgs(options: StartOptions, host: string): string[] { - const args = ["serve", "--host", host, "--generate-token"] + const args = ["serve", "--host", host, "--generate-token", "--auth-cookie-name", this.authCookieName] if (options.dev) { // Dev: run plain HTTP + Vite dev server proxy.