diff --git a/browse/src/cli.ts b/browse/src/cli.ts index d69b8309..bbd5c733 100644 --- a/browse/src/cli.ts +++ b/browse/src/cli.ts @@ -839,6 +839,11 @@ Refs: After 'snapshot', use @e1, @e2... as selectors: BROWSE_PORT: '34567', BROWSE_SIDEBAR_CHAT: '1', }; + // If parent explicitly set BROWSE_PARENT_PID=0 (pair-agent disabling + // self-termination), pass it through so startServer doesn't override it. + if (process.env.BROWSE_PARENT_PID === '0') { + serverEnv.BROWSE_PARENT_PID = '0'; + } const newState = await startServer(serverEnv); // Print connected status @@ -975,7 +980,9 @@ Refs: After 'snapshot', use @e1, @e2... as selectors: const connectProc = Bun.spawn([browseBin, 'connect'], { cwd: process.cwd(), stdio: ['ignore', 'inherit', 'inherit'], - env: process.env, + // Disable parent-PID monitoring: pair-agent needs the server to outlive + // the connect subprocess. Setting to 0 tells the server not to self-terminate. + env: { ...process.env, BROWSE_PARENT_PID: '0' }, }); await connectProc.exited; // Re-read state after headed mode switch