The navigator opened popups instead of switching

Fixkamo-internal
Shipped
September 4, 2026 at 3:35 AM UTC
Author
Kamo
Commit
903f0b5

Clicking a row beside a maximized terminal opened a small window over the top of it. It was a launcher, not a switcher. `openConversation(row, { maximized: true })` is what the chat navigator sends and `openTerminal` never sent the equivalent. The store already does the rest: its `openTool` applies `maximized` to whatever window id comes back — INCLUDING one the dedupe branch found, which is the case that matters here, since a terminal whose window is already open goes down that path — and `setMaximized` then demotes whichever window held the slot. Nothing else was missing; the cross-fade in useMaximizedSwap is keyed on window ids and the maximized state, so terminals inherit it now that the state changes. The navigator's own New terminal button maximizes too. Starting one from a maximized context and being dropped into a popup over the window you were just in is the same wrong gesture in a different place. The Interaction Center deliberately does NOT maximize: it opens an ordinary popup, exactly as clicking a conversation row in that panel does. Maximizing is the navigator's gesture. Second bug found while fixing the first: both call sites computed `terminalLabel(terminal, 0)`, so every untitled terminal opened a window called "Terminal 1" whichever row was clicked. The pane already knows each row's position, so it now hands the resolved label to `onOpen` rather than making callers redo arithmetic they got wrong in the same way twice. Four tests: the flag is absent by default and present when the navigator asks, the third row reports its own label, and a member's own name still wins. 419 test files / 5268 tests, all 14 guards, tsc and the production build clean.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing