Cockpit bar overflow: ten tenants where the navigation model seats five
Context
Operator catch 2026-08-21, pointing at a screenshot I published myself during PR #17455 verification: the cockpit's top bar is "so heavily overloaded that items can not even fit — especially long texts / labels." At 800px the spine banner clips mid-word ("Fleet server offline — show…"), the wake telltale clips mid-parenthesis ("wake stream disconnected (conne…"), and the two pop-out buttons visually collide. The catch also carried a process correction (recorded in my memory substrate): a published screenshot owes a full-surface design read, not just change-confirmation.
The Problem
FleetCockpit's fm-cockpit-bar (built in buildWorkspaceItems, apps/agentos/view/fleet/FleetCockpit.mjs:1100-1183) hosts up to TEN tenants in one row: three preset buttons · preset-error · spine banner · Reconnect · wake telltale · fleet-start summary · "Pop out memories" · "Pop out detail" · "Start fleet". The two status texts are the only shrinkable members (flex: 0 1 auto + ellipsis; the wake telltale additionally caps at 40ch), so six fixed-width buttons compress them first — the two surfaces whose entire job is carrying VERBATIM cause/remedy text are the first to become unreadable, exactly when something is wrong (both render meaningfully only in non-nominal states).
The #17269 navigation-model decision (AC1 gate passed 2026-08-21) already rules the composition: top chrome = root context + instance-wide actions/status — nothing else. Its target-chrome roster: instance switcher · layout control (presets) · Start fleet · Reconnect/banner · wake telltale. The pop-out toggles are NOT in it — they are pane-scoped verbs. The code agrees: the memories toggle's own comment (line 1157-1159) says "Provisional bar placement pending the shell navigation-model redesign (per-pane chrome is that pass's scope)." The model landed; the provisional placement is now due.
The Architectural Reality
FleetCockpit.mjs:1156-1175 — both pop-out toggles are SHELL-owned buttons (panes are layout-blind; the shell owns docking behavior). Their labels are synced by syncControlBar (detail-window-toggle, memories-window-toggle references), and the toggle state machine (docked/opening/windowed, torn-out disable) lives shell-side. Relocation moves the AFFORDANCE's mount point, not its ownership: the buttons stay shell-built and shell-synced, projected into per-pane chrome (the dock projection already decorates projected items shell-side — decorateProjectedItem).
- After nav cut 1 (PR #17452), memories is a resident south tab and detail is the rail inspector — both have natural pane-header homes for their own window verb.
fleetCockpitPopOut.spec.mjs asserts the toggle references and labels; expectations follow the new mount point. Sequencing: this lane starts only after PR #17452 merges — it edits the same spec regions.
- The bar keeps: presets (+error) · spine banner · Reconnect · wake telltale · fleet-start summary · Start fleet. The freed width goes to the two status texts; both keep full text on
title.
The Fix
- Move each pop-out toggle into its pane's chrome (memories → the memories pane header/tab strip region; detail → the inspector header), keeping shell ownership, references, handler wiring, and
syncControlBar label/state sync intact.
- Give the two status texts explicit
min-width floors so six-tenant crowding can never truncate them to zero; verify both carry their full text on title (the drill-free detail).
- Re-verify the bar at narrow widths (the vessel-window case the spine banner's shrink comment already documents) — no collision, no clipped buttons.
Acceptance Criteria
Out of Scope
Chip/tab anatomy and §04 tokens (#17269 cuts 2 / #17264 own the look) · the instance switcher's chrome slot (#17328 shipped it; unchanged) · responsive/overflow behavior beyond the two named widths · pane content design (#17268).
Related
Parent #17269 (the composition authority) · epic #14560 · PR #17452 (sequencing dependency: merges first) · #17211 (rail sizing sibling) · #17265 (density pass sibling).
Live latest-open sweep: checked latest 20 open issues at 2026-08-21T10:31Z; no equivalent found. A2A in-flight claim sweep: herd window clean (peer claims: #17414/#17447 Memory-Core lanes, Grace's #17376 migration).
Origin Session ID: 1d9a2e33-2b0d-4185-9296-4b32559e2825
Retrieval Hint: query_raw_memories("cockpit bar overflow ten tenants pop-out toggles pane chrome relocation")
Cockpit bar overflow: ten tenants where the navigation model seats five
Context
Operator catch 2026-08-21, pointing at a screenshot I published myself during PR #17455 verification: the cockpit's top bar is "so heavily overloaded that items can not even fit — especially long texts / labels." At 800px the spine banner clips mid-word ("Fleet server offline — show…"), the wake telltale clips mid-parenthesis ("wake stream disconnected (conne…"), and the two pop-out buttons visually collide. The catch also carried a process correction (recorded in my memory substrate): a published screenshot owes a full-surface design read, not just change-confirmation.
The Problem
FleetCockpit'sfm-cockpit-bar(built inbuildWorkspaceItems,apps/agentos/view/fleet/FleetCockpit.mjs:1100-1183) hosts up to TEN tenants in one row: three preset buttons · preset-error · spine banner · Reconnect · wake telltale · fleet-start summary · "Pop out memories" · "Pop out detail" · "Start fleet". The two status texts are the only shrinkable members (flex: 0 1 auto+ ellipsis; the wake telltale additionally caps at40ch), so six fixed-width buttons compress them first — the two surfaces whose entire job is carrying VERBATIM cause/remedy text are the first to become unreadable, exactly when something is wrong (both render meaningfully only in non-nominal states).The #17269 navigation-model decision (AC1 gate passed 2026-08-21) already rules the composition: top chrome = root context + instance-wide actions/status — nothing else. Its target-chrome roster: instance switcher · layout control (presets) · Start fleet · Reconnect/banner · wake telltale. The pop-out toggles are NOT in it — they are pane-scoped verbs. The code agrees: the memories toggle's own comment (line 1157-1159) says "Provisional bar placement pending the shell navigation-model redesign (per-pane chrome is that pass's scope)." The model landed; the provisional placement is now due.
The Architectural Reality
FleetCockpit.mjs:1156-1175— both pop-out toggles are SHELL-owned buttons (panes are layout-blind; the shell owns docking behavior). Their labels are synced bysyncControlBar(detail-window-toggle,memories-window-togglereferences), and the toggle state machine (docked/opening/windowed, torn-out disable) lives shell-side. Relocation moves the AFFORDANCE's mount point, not its ownership: the buttons stay shell-built and shell-synced, projected into per-pane chrome (the dock projection already decorates projected items shell-side —decorateProjectedItem).fleetCockpitPopOut.spec.mjsasserts the toggle references and labels; expectations follow the new mount point. Sequencing: this lane starts only after PR #17452 merges — it edits the same spec regions.title.The Fix
syncControlBarlabel/state sync intact.min-widthfloors so six-tenant crowding can never truncate them to zero; verify both carry their full text ontitle(the drill-free detail).Acceptance Criteria
min-widthfloor and no bar items collide; both texts carry full content ontitle.Out of Scope
Chip/tab anatomy and §04 tokens (#17269 cuts 2 / #17264 own the look) · the instance switcher's chrome slot (#17328 shipped it; unchanged) · responsive/overflow behavior beyond the two named widths · pane content design (#17268).
Related
Parent #17269 (the composition authority) · epic #14560 · PR #17452 (sequencing dependency: merges first) · #17211 (rail sizing sibling) · #17265 (density pass sibling).
Live latest-open sweep: checked latest 20 open issues at 2026-08-21T10:31Z; no equivalent found. A2A in-flight claim sweep: herd window clean (peer claims: #17414/#17447 Memory-Core lanes, Grace's #17376 migration).
Origin Session ID: 1d9a2e33-2b0d-4185-9296-4b32559e2825
Retrieval Hint:
query_raw_memories("cockpit bar overflow ten tenants pop-out toggles pane chrome relocation")