Context
#13448 (the graduated harness-UI-definition epic, ADR-0020 in full) explicitly requires that "the cross-cutting structure/nav is its own sub" — but that sub was never filed. #13448 defines the harness UI as a B3-hybrid: a stable shell (left-rail nav + Accounts + Fleet roster + settings) beside a dockable QT work-area (Chat + live panes + canvas), with keeper views (Welcome → Accounts → Fleet → Chat) selected from the left-rail nav.
Every keeper view + the FM module mount (#14632) plugs into this shell — but the shell doesn't exist, so the live app is the June-post-mortem debt: Viewport.mjs = a toolbar + a dashboard.Container hosting Accounts + a FleetSettingsPanel (GridContainer data-table). No left-rail nav, no Welcome, no keeper-view routing, and the Fleet is a data-grid instead of the card cockpit the design SSOT specifies. Operator escalation (2026-07-05): "how do we get to the fleet manager?" — there is no nav shell to get there through.
Intended solution
The stable-shell left-rail nav (the B3-hybrid shell), idiomatically a tab.Container with a left tab-bar = the keeper-view nav rail, hosting:
- Welcome — transient first-open landing (earns the "wow", routes in); not a keeper.
- Fleet — the FM cockpit: the roster as cards (
FleetGrid + AgentCard + ActivityStream + HealthBar) + start/stop/restart. Not a GridContainer table (the "no neo grid planned" correction).
- Accounts — the existing identity-setup keeper-view, reachable via the rail.
- Chat — prompt → live-pane (placeholder → the dockable work-area).
The FM module mount (#14632) resolves to the Fleet keeper-view slot in this shell (view-region per the B3-hybrid; pop-out rides the dockable work-area — resolves #14631's topology). SSOT conformance (#14805) skins it.
Acceptance Criteria
Related
Parent #13448 (this is its unfiled cross-cutting structure/nav sub) · #14560 (FM cockpit UI/UX — the Fleet keeper-view components) · #14631/#14632 (FM module topology/mount — resolves to the Fleet view-region in this shell) · #14805 (SSOT conformance) · the design SSOTs (apps/agentos/design/*.html).
Live latest-open sweep this turn (newest #14845); no equivalent shell/nav sub exists.
Origin Session ID: 3bc21462-8122-4b02-81e4-324ed781e1ac (@neo-opus-vega · Opus 4.8)
Context
#13448 (the graduated harness-UI-definition epic, ADR-0020 in full) explicitly requires that "the cross-cutting structure/nav is its own sub" — but that sub was never filed. #13448 defines the harness UI as a B3-hybrid: a stable shell (left-rail nav + Accounts + Fleet roster + settings) beside a dockable QT work-area (Chat + live panes + canvas), with keeper views (Welcome → Accounts → Fleet → Chat) selected from the left-rail nav.
Every keeper view + the FM module mount (#14632) plugs into this shell — but the shell doesn't exist, so the live app is the June-post-mortem debt:
Viewport.mjs= a toolbar + adashboard.ContainerhostingAccounts+ aFleetSettingsPanel(GridContainerdata-table). No left-rail nav, no Welcome, no keeper-view routing, and the Fleet is a data-grid instead of the card cockpit the design SSOT specifies. Operator escalation (2026-07-05): "how do we get to the fleet manager?" — there is no nav shell to get there through.Intended solution
The stable-shell left-rail nav (the B3-hybrid shell), idiomatically a
tab.Containerwith a left tab-bar = the keeper-view nav rail, hosting:FleetGrid+AgentCard+ActivityStream+HealthBar) + start/stop/restart. Not aGridContainertable (the "no neo grid planned" correction).The FM module mount (#14632) resolves to the Fleet keeper-view slot in this shell (view-region per the B3-hybrid; pop-out rides the dockable work-area — resolves #14631's topology). SSOT conformance (#14805) skins it.
Acceptance Criteria
apps/agentosrenders a stable-shell left-rail nav (tab.Container, left rail) with keeper-view destinations.FleetGrid+ActivityStreamin the §01 two-zone layout) — not a data-table.Related
Parent #13448 (this is its unfiled cross-cutting structure/nav sub) · #14560 (FM cockpit UI/UX — the Fleet keeper-view components) · #14631/#14632 (FM module topology/mount — resolves to the Fleet view-region in this shell) · #14805 (SSOT conformance) · the design SSOTs (
apps/agentos/design/*.html).Live latest-open sweep this turn (newest #14845); no equivalent shell/nav sub exists.
Origin Session ID: 3bc21462-8122-4b02-81e4-324ed781e1ac (@neo-opus-vega · Opus 4.8)