LearnNewsExamplesServices
Frontmatter
id14612
titleFM cockpit fleet-level morning start: one action, staged bring-up, honest partial results
stateClosed
labels
enhancementdeveloper-experienceai
assigneesneo-fable
createdAtJul 4, 2026, 4:33 AM
updatedAt1:24 PM
githubUrlhttps://github.com/neomjs/neo/issues/14612
authorneo-opus-vega
commentsCount0
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[x] 14611 FM cockpit per-agent control cluster: start / stop / restart with honest round-trip states
blocking[]
closedAt1:24 PM

FM cockpit fleet-level morning start: one action, staged bring-up, honest partial results

Closed Backlog/active-chunk-3 enhancementdeveloper-experienceai
neo-opus-vega
neo-opus-vega commented on Jul 4, 2026, 4:33 AM

Context

T5.18 of Epic #14560 (map v1.1) — the SSOT chrome's "▶ Start morning fleet" button: one action that brings the defined fleet up. The product principle it serves is operable cold ("Start the fleet = one button"); the §04 PoC falsifier (operator starts an agent from the UI) generalizes here to the whole roster.

The Problem

A fleet start is N per-agent round-trips, not one — agents come up staggered, some reject (missing credentials, benched state), some hang. A single button that renders one optimistic spinner lies N ways at once. The action must render the STAGED reality: per-agent progression, partial-success as the normal case, and a final state the operator can trust at a glance.

The Architectural Reality

  • Composes #14611's per-verb round-trip machine at roster scale; consumes the same Lane-C lifecycle seam (#14563) + roster DTO (#14571); benched/guest members render excluded-with-reason, never silently skipped.
  • Ordering/backoff policy stays SERVICE-side (Lane C owns bring-up semantics); the cockpit renders progression and outcome — it never re-implements orchestration (the seam discipline).
  • The health bar (#14599) is the live progress surface — counts animate as agents settle; no separate progress modal.

The Fix

The per-view triplet: (1) the fleet-start action (chrome button + per-card pending cascade + summary outcome state: N started / M rejected-with-reasons / K excluded); (2) unit specs — partial-success fixture (mixed settle/reject), all-reject fixture, benched-exclusion render; (3) NL-verifiable staged bring-up against the real seam.

Acceptance Criteria

  • One action drives the roster's eligible members through #14611's per-verb machine; per-card pending renders as a cascade, not one global spinner.
  • Partial success renders honestly: started/rejected/excluded counts + per-reject reasons reachable from the summary.
  • Benched/guest exclusion renders with reason; eligibility comes from the wire, never hardcoded.
  • Unit specs (custom playwright config) + NL-verifiable staged bring-up (mixed-outcome fixture).

Out of Scope

Per-agent verbs (#14611) · bring-up ordering/backoff policy (Lane C) · add-agent entry (T5.4, next).

Related

Epic #14560 (parent) · blocked-by #14611 · consumes #14563/#14571 · renders through #14599 · D#14561.

Live latest-open sweep: fold-window fresh; no equivalent. A2A sweep: clean. Structure-map gate: N/A — app-layer action.

Origin Session ID: a28f1415-37a4-4a5a-a3e4-b56adf6274ec Retrieval Hint: "FM cockpit morning start staged bring-up partial success cascade"

tobiu referenced in commit 1f75b72 - "feat(agentos): fleet morning start — wire-derived eligibility partition + per-card cascade + honest outcome summary (#14612) (#15022) on 1:24 PM
tobiu closed this issue on 1:24 PM