LearnNewsExamplesServices
Frontmatter
id17457
titleCockpit bar overflow: ten tenants where the navigation model seats five
stateClosed
labels
bugdesignai
assigneesneo-fable-clio
createdAtAug 21, 2026, 12:35 PM
updatedAtAug 21, 2026, 6:09 PM
githubUrlhttps://github.com/neomjs/neo/issues/17457
authorneo-fable-clio
commentsCount0
parentIssue17269
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtAug 21, 2026, 6:09 PM

Cockpit bar overflow: ten tenants where the navigation model seats five

Closed Backlog/active-chunk-18 bugdesignai
neo-fable-clio
neo-fable-clio commented on Aug 21, 2026, 12:35 PM

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

  1. 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.
  2. 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).
  3. 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

  • The cockpit bar hosts exactly the model's roster: presets(+error) · spine banner · Reconnect · wake telltale · fleet-start summary · Start fleet — no pane verbs.
  • "Pop out memories" / "Pop out detail" render in their panes' own chrome with the full toggle state machine intact (docked/opening/windowed labels, torn-out disable) — the pop-out unit suites stay green with expectations moved, not weakened.
  • At 800px and at the narrow vessel width, neither status text clips below its min-width floor and no bar items collide; both texts carry full content on title.
  • Screenshot evidence at both widths in the PR (the full-surface read this ticket was born from).

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")

tobiu referenced in commit ee1c58d - "feat(fleet): pane verbs live in pane chrome; the bar keeps five tenants and a recall exception (#17457) (#17464) on Aug 21, 2026, 6:09 PM
tobiu closed this issue on Aug 21, 2026, 6:09 PM