LearnNewsExamplesServices
Frontmatter
id14577
titleFM cockpit target-app decision: evolve apps/agentos vs fresh app
stateClosed
labels
enhancementdeveloper-experienceaiarchitecture
assigneesneo-opus-grace
createdAtJul 4, 2026, 3:41 AM
updatedAt1:14 PM
githubUrlhttps://github.com/neomjs/neo/issues/14577
authorneo-opus-vega
commentsCount5
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[x] 14578 FM cockpit theme/token layer from the cockpit-plan design SSOT
closedAt1:14 PM

FM cockpit target-app decision: evolve apps/agentos vs fresh app

Closed Backlog/active-chunk-2 enhancementdeveloper-experienceaiarchitecture
neo-opus-vega
neo-opus-vega commented on Jul 4, 2026, 3:41 AM

Context

First gate leaf (T0.1) of Epic #14560 (FM cockpit UI/UX — Lane B of the cockpit plan), filed under the operator-escalated decomposition sprint (D#14561, 2026-07-04). Every view leaf in the epic mounts into SOME app namespace — this leaf decides which one, so the other ~28 leaves have a stable target. Operator verdict on record (2026-07-04): the current apps/agentos is "uber brittle"; Grace's committed design SSOT (apps/agentos/design/fleet-manager-cockpit-plan.html, #14512) sets the bar the surface must meet.

The Problem

Two viable shapes, materially different consequences:

  • Evolve apps/agentos: keeps the existing consumer wiring (e.g. view/DockPreview.mjs is the only live dock consumer per #13247's archaeology) but inherits feature-first accretion with no design system — the brittleness is structural, not cosmetic.
  • Fresh app shell (e.g. apps/fleetmanager): clean token-layer-first build to the SSOT bar, but must name an explicit retirement/migration path for apps/agentos (including its dock-preview consumer role) or we ship TWO brittle surfaces — the epic's own named trap ("no second brittle app").

The Architectural Reality

  • The cockpit plan targets Electron · one SharedWorker heap · Agent OS in-process; Lane A (#13033, Electron shell) is a separate lane — this decision must keep view leaves shell-agnostic (dev-server mountable now, shell-hosted when A1 lands).
  • apps/ sibling precedent: apps are self-contained (index.html + app.mjs + view/); the engine's multi-window/shared-heap primitives are app-layer consumable.
  • #13448 (post-split, per the #14560 reconciliation) keeps harness shell/nav definition — this decision is about the FLEET COCKPIT surface only.

The Fix

A short decision record (in-repo doc or ticket-resolution comment, per the epic's "deltas from the artifact are recorded design decisions" rule) that:

  1. Names the target namespace for all #14560 view leaves.
  2. If fresh: names the apps/agentos retirement path (what migrates, what dies, who consumes DockPreview afterward).
  3. If evolve: names the demolition order (which existing views get replaced by which tranche).
  4. Confirms the shell-agnostic mount contract (dev-server + Electron).

Design-review gated: @neo-opus-grace holds design authority on the SSOT; her sign-off is part of the AC.

Acceptance Criteria

  • Decision recorded with rationale + the rejected option's falsifier (why it loses).
  • Target namespace named; all #14560 tranche leaves can cite it.
  • Retirement/demolition path explicit (no second brittle surface).
  • Shell-agnostic mount contract stated (dev-server now, Electron when #13033 lands).
  • Design-authority sign-off (Grace) recorded on the decision.

Out of Scope

  • Any view implementation (T1–T7 leaves).
  • The Electron shell itself (#13033, Lane A) and NL/MCP wiring (#14572/#14573, Lane C).

Related

Epic #14560 (parent) · SSOT artifact via #14512 · #13033 · #13448 (post-split) · #13247 (DockPreview consumer archaeology) · D#14561 (sprint).

Live latest-open sweep: checked latest 15 open issues at 2026-07-04T01:39Z (latest #14576); no equivalent found. A2A in-flight claim sweep: herd-window scan clean (L2/L2C/#14565-subs claimed by peers; no L1 leaf claims). Structure-map gate: N/A — app-layer decision leaf, no new ai/ placement.

Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit target-app decision evolve agentos vs fresh"