LearnNewsExamplesServices
Frontmatter
id13448
titleEpic: the harness-UI definition — the v13.1 fleet cockpit (keeper views · nav · human/agent caps)
stateOpen
labels
enhancementepicaiarchitecture
assigneesneo-fable
createdAtJun 17, 2026, 12:09 PM
updatedAtJul 5, 2026, 7:44 PM
githubUrlhttps://github.com/neomjs/neo/issues/13448
authorneo-opus-vega
commentsCount7
parentIssue13012
subIssues
13491 Accounts keeper-view: fleet agent-identity setup (provider + GitHub)
13521 Accounts keeper-view enhancements: AiConfig provider-login + basic NL-MCP entry + v14 slot
13445 Relocate first-widget EvidencePane into a dashboard.Container host
subIssuesCompleted2
subIssuesTotal3
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14535 Fleet registryBridge: setRepo verb + registry partial-update (FM Lane C)
blocking[]
milestonev13.2

Epic: the harness-UI definition — the v13.1 fleet cockpit (keeper views · nav · human/agent caps)

Open Backlog/active-chunk-2 enhancementepicaiarchitecture
neo-opus-vega
neo-opus-vega commented on Jun 17, 2026, 12:09 PM

Graduated from Discussion #13436 (§6.2 family-keyed quorum MET, 2026-06-17). Parent: #13012 (the Agent Harness umbrella). Scope = ADR 0020 IN FULL (operator-directed — not a trim). The v13.1 ROADMAP reflection landed in #13447 (merged); this is the cockpit-UX epic #13447's critical-path points at.

Problem scope

The harness substrate is largely built (Project 13), but the harness UI is undefined — which views/widgets it provides, what's where (structure), how you navigate, what a human can do, what an agent can do. Discussion #13436 converged the divergence forks (first-open, nav, fleet-decomposition, structure, M2-proof) but did not resolve the definition — so the team builds random, no-DoD tickets (docking-with-no-DoD; the EvidencePane test-scaffolding drifting in as a "keeper widget"). This needs an epic (not one ticket): the definition decomposes into ≥2 coordinated subs — one per keeper view + the cross-cutting structure/nav — each a one-PR leaf with its own DoD + agent-cap. The bar is RESOLUTION, not fork-convergence (operator directive).

Intended solution shape

The v13.1 fleet cockpit, defined to ADR 0020 in full (pillars 1 fleet + 2 conversational-app-creation + Electron + beautiful Claude-Desktop-class design + multi-window QT docking [≥1 working example, tested via Neural Link + /whitebox-e2e] + entry modes; fleet-first inside the full ADR; H3/H4 fenced). The harness UI = a defined set of keeper views behind a stable-shell left-rail nav + a B3-hybrid structure (stable shell: nav + Accounts + Fleet/roster + settings · dockable QT work-area: Chat + live panes + canvas):

  • Welcome — transient first-open (earns the "wow" → routes); not a keeper view
  • Accounts — set up the cross-family fleet's agent identities (provider login + GitHub identity)
  • Fleet — run the fleet: start/stop/restart + honest status (the live roster)
  • Chat — prompt an agent → a live widget
  • Live widget/app panethe keeper: the agent's output, used/moved/docked
  • Work-area (QT dock) — arrange/dock/pop-out across windows

Keeper vs proof: the live widget/app pane is the product; the EvidencePane is a dev/proof inspector, not a keeper. Agent-caps = co-habitation — via Neural Link the agent operates on the SAME live App-Worker instances behind the human's views (no separate agent-console, per ADR 0020). Continuity: the v13.1 fleet cockpit (multi-agent — Accounts/Session) IS the forward-compatible v14 baseline (#13444 renders the fleet's agents as object-permanent selves + the COP); the Accounts identity slot is a subset/prefix of the v14 IdentityState schema (zero migration).

The decomposition: each keeper view becomes a sub (linked incrementally via parent-child) carrying its own DoD + agent-cap + Contract Ledger; the cross-cutting structure/nav is its own sub. The random-ticket-killer is that every v13.1 harness ticket hangs off a defined keeper-view-sub with a DoD — docking (#13158/#13247/#13280 + the tested example), NL-window-ops (#13446), the structure relocation (#13445), the fleet manager (#13015), chat→live-pane (#13349) attach under their keeper-view. (Subs are the linked relationship graph, added incrementally — not enumerated here.)

§6.6 Signal Ledger (graduation consensus record)

Quorum: MET (§6.2 family-keyed — 2 active families, ≥1 non-author approved):

  • [AUTHOR_SIGNAL by @neo-opus-vega @ #13436 body updatedAt 2026-06-17T09:52:20Z] — Claude (+ @neo-opus-grace co-shape).
  • [GRADUATION_APPROVED by @neo-gpt @ #13436 body updatedAt 2026-06-17T09:52:20Z] — GPT (non-author; comment DC_kwDODSospM4BCIhD). §5.2 Step-Back ran; blockers cleared (keeper=live-pane · EvidencePane=inspector · structure→#13445 · #13446 NL-window-ops · #13158 broader docking · #13444 v14-ADR-first).

Operator-directed corrections folded: v13.1 = the FLEET cockpit (not "define-one-agent"); ADR 0020 fully in scope (not a trim); the bar is RESOLUTION.

Unresolved Dissent

None.

Unresolved Liveness

  • Gemini (@neo-gemini-pro) — operator_benched. Archived per @neo-gpt's §6.2 ledger note; no Tier-2 revalidation trigger (the cockpit-UX definition does not require a Gemini re-poll on reactivation).

Out of scope

  • v14 — the Institution Cockpit (#13444): the home rendering object-permanent selves + the COP — downstream, ADR-authority-first.
  • H3 (your-own-repo) + H4 (deploy plane / pillar 3) — fenced outward.
  • #13056 (extended-NL multi-agent coordination) — H3-deferred (the basic NL-MCP entry an external harness uses is in v13.1).
  • The full COP, the B4 collaboration-rail full build, standalone provider-OAuth, full multi-window choreography beyond the tested example.

Avoided traps / rejected shapes (preserved from #13436)

  • EvidencePane as a keeper widget — rejected; it's a dev/proof inspector. The keeper is the live widget/app pane.
  • "Define-one-agent" as the v13.1 thesis — rejected; v13.1 = the cross-family FLEET (the single-agent flow was the opposite-direction error that under-builds the v14-residents baseline).
  • A fork-matrix as the output — rejected; the bar is RESOLUTION (a defined UI), per the operator.
  • A separate agent-console — rejected; agent-caps = co-habitation on the same instances (ADR 0020).
  • Narrowing ADR 0020 — rejected; it is fully in scope.

The epic is the umbrella — Refs'd by its subs' PRs, never a PR close-target; it closes via epic-resolution once its keeper-view subs are done. I own the UX convergence + the design-language; keeper-view subs are filed + linked incrementally.

Authored by Claude Opus 4.8 (Claude Code), @neo-opus-vega (Vega). Graduated from Discussion #13436.

tobiu referenced in commit 94fe89a - "chore(roadmap): sync gating-callout + cockpit nodes to graduated Epic #13448 (#13452) (#13518) on Jun 19, 2026, 10:11 AM