Now that the Dock (#903, #909) owns navigation on the left and the right panel owns inspection on the right, the top ChromeBar in tiled canvas mode reads as a band of unrelated globals that mostly duplicate affordances available elsewhere.
What's actually in the bar today
packages/client/src/ChromeBar.tsx:42-189 carries six things:
- Favicon link to kolu.dev + WS connection dot (identity)
RecordButton (idle button, expands to capsule when live)
- Dock toggle button — mirrors
Mod+B; duplicates Dock's own rail↔cards chevron (Dock.tsx:409)
- Inspector toggle button — mirrors
Mod+Alt+B; duplicates RightPanel.tsx:76-83 chevron
- Settings gear (popover trigger)
- ⌘K palette pill — duplicates the Dock mega-search entry point
It also straddles two positioning modes (ChromeBar.tsx:71-87): absolute overlay in tiled canvas, in-flow band in maximized. Mobile uses an entirely separate surface (MobileChromeSheet).
The question
In tiled canvas mode, what is the bar still earning? Two of its controls are pure duplicates; the palette pill is a third. Identity, status, recorder, and settings remain — none of which need a viewport-wide horizontal band to live in.
Possibilities (not a plan)
A. Delete the bar in tiled mode; keep it (or an equivalent) only in maximized
Migrate the survivors:
- Identity + WS dot → top slot of the Dock rail
- Settings gear → Dock header, next to mega-search
- Recorder → free-floating top-right capsule, mounted only when `phase !== "idle"`
- Dock-toggle, inspector-toggle, ⌘K pill → deleted (keybinds remain)
- Add a thin re-open chevron at canvas right edge when right panel is collapsed
B. Compact the bar into a small top-right badge cluster
Keep the same items but drop the edge-to-edge band — render a ~120px pill of [status · record · settings] floating top-right. Cheap, low-risk; doesn't solve the duplication.
C. Move everything into the Dock; no top chrome in either mode
Maximized mode adapts by giving the Dock a horizontal collapsed strip across the top of the maximized tile. Most ambitious; affects the maximized layout that today depends on the bar capping the terminal title.
D. Status quo, but de-duplicate
Keep the bar; delete the dock-toggle button, inspector-toggle button, and ⌘K pill from it. Smallest move, addresses redundancy without the layout shift.
Threads to cut if we touch this
Regardless of direction, three pre-existing couplings would bite anyone refactoring here:
ChromeBar.tsx:83-86 reads `rightPanel.panelSize()` only because the bar is anchored at the App root and otherwise floats over the panel. Reparent inside `TerminalCanvas.tsx:396`'s relative container and the read disappears.
- `Dock.tsx:292` uses `top-20` (80px) to clear a ~44px bar. Constant is already wrong; if the bar disappears in tiled it becomes a lie.
- `posture.maximized(): boolean` is checked independently in `ChromeBar.tsx:71` and `Dock.tsx:289-307`. Promote to `posture.mode(): "tiled" | "maximized"` before a third mode forces a third hunt.
Volatility forecast (why this matters for choosing a seam)
- Recorder will likely gain states (uploading, error) — wants its own growth room, argues against a fixed dock-footer slot
- Settings may become a sheet — wants the trigger decoupled from layout
- Identity row may pick up account info — wants vertical room, fits a rail-top slot, doesn't fit a horizontal bar slot
- Palette UI is keyboard-first; the visible pill earns little
Now that the Dock (#903, #909) owns navigation on the left and the right panel owns inspection on the right, the top ChromeBar in tiled canvas mode reads as a band of unrelated globals that mostly duplicate affordances available elsewhere.
What's actually in the bar today
packages/client/src/ChromeBar.tsx:42-189carries six things:RecordButton(idle button, expands to capsule when live)Mod+B; duplicates Dock's own rail↔cards chevron (Dock.tsx:409)Mod+Alt+B; duplicatesRightPanel.tsx:76-83chevronIt also straddles two positioning modes (
ChromeBar.tsx:71-87): absolute overlay in tiled canvas, in-flow band in maximized. Mobile uses an entirely separate surface (MobileChromeSheet).The question
In tiled canvas mode, what is the bar still earning? Two of its controls are pure duplicates; the palette pill is a third. Identity, status, recorder, and settings remain — none of which need a viewport-wide horizontal band to live in.
Possibilities (not a plan)
A. Delete the bar in tiled mode; keep it (or an equivalent) only in maximized
Migrate the survivors:
B. Compact the bar into a small top-right badge cluster
Keep the same items but drop the edge-to-edge band — render a ~120px pill of [status · record · settings] floating top-right. Cheap, low-risk; doesn't solve the duplication.
C. Move everything into the Dock; no top chrome in either mode
Maximized mode adapts by giving the Dock a horizontal collapsed strip across the top of the maximized tile. Most ambitious; affects the maximized layout that today depends on the bar capping the terminal title.
D. Status quo, but de-duplicate
Keep the bar; delete the dock-toggle button, inspector-toggle button, and ⌘K pill from it. Smallest move, addresses redundancy without the layout shift.
Threads to cut if we touch this
Regardless of direction, three pre-existing couplings would bite anyone refactoring here:
ChromeBar.tsx:83-86reads `rightPanel.panelSize()` only because the bar is anchored at the App root and otherwise floats over the panel. Reparent inside `TerminalCanvas.tsx:396`'s relative container and the read disappears.Volatility forecast (why this matters for choosing a seam)