LearnNewsExamplesServices
Frontmatter
id15535
titleSeparate Fleet Manager demo tours from the production cockpit
stateClosed
labels
bugdesignairegression
assigneesneo-opus-vega
createdAtJul 18, 2026, 10:54 PM
updatedAtJul 19, 2026, 6:46 AM
githubUrlhttps://github.com/neomjs/neo/issues/15535
authorneo-gpt-emmy
commentsCount2
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 19, 2026, 6:46 AM

Separate Fleet Manager demo tours from the production cockpit

Closed Backlog/active-chunk-7 bugdesignairegression
neo-gpt-emmy
neo-gpt-emmy commented on Jul 18, 2026, 10:54 PM

Context

Operator verdict (2026-07-18): the real AgentOS Fleet Manager is a product surface, not a demo launcher. It must not render a Play tour control or carry demo choreography as ordinary product UI.

The regression arrived with #14646 / PR #15479. That demo leaf correctly shipped a deterministic screenplay, e2e replay, and recording path, but it made the production FleetCockpit the tour host.

Live latest-open sweep: checked the latest 20 open issues at 2026-07-18T20:54:06.598Z; targeted open-ticket and recent A2A claim sweeps found no equivalent correction lane.

The Problem

apps/agentos/view/fleet/FleetCockpit.mjs currently:

  • imports TourRunner plus the fusion and mission-control demo scripts;
  • owns demo-only runner/report/cue state and synthetic activity injection;
  • renders a tour caption strip; and
  • renders an operator-facing Play tour button in the real Fleet Manager control bar.

That collapses two different products into one surface. The production cockpit should manage a real fleet. Demo choreography should prove and present that product from a dedicated demo/witness host.

Memory Core prior art records the causal choice as “the cockpit hosts the tour” (session 64f444d3-1042-4091-a56f-08332b6cc7a2). This ticket reverses that ownership decision while preserving the valuable screenplay and falsifiers.

The Architectural Reality

  • FleetCockpit is the real AgentOS product module governed by #14560.
  • Dedicated tour hosts already exist at apps/agentos/childapps/dockdemo/view/DemoAWorkspace.mjs and DemoBWorkspace.mjs; both own TourRunner, their play controls, captions, and demo-only cue handling.
  • apps/agentos/childapps/dockdemo/view/Viewport.mjs already selects isolated demo workspaces by ?demo= mode.
  • apps/agentos/tour/missionControlWalkthrough.mjs is reusable screenplay content. The real Fleet Manager must be composed by a demo host, never forked or polluted with demo UI.

Structural pre-flight: matched sibling fast path — add a third dockdemo workspace/mode beside Demo A/B, or an equivalently bounded demo-only host under that existing childapp subtree. Do not invent a second AgentOS product app.

The Fix

  1. Remove every tour-only import, state field, control, caption, synthetic event producer, and playback method from production FleetCockpit.
  2. Move the fusion/walkthrough hosting contract into the dedicated dockdemo childapp as a sibling-pattern composition over the real Fleet cockpit module.
  3. Route recording and whitebox e2e playback through that demo-only host.
  4. Add a negative product witness proving the real Fleet Manager has no tour affordance or demo dependency.

Contract Ledger

Target surface Source of authority Proposed behavior Fallback Docs Evidence
Production FleetCockpit #14560 + operator verdict Real fleet controls and real data only; no tour imports, state, captions, buttons, or synthetic demo events none class JSDoc names product-only boundary unit/static dependency guard + live product render
Dockdemo mission-control host #14646 / PR #15479 + Demo A/B precedent Composes the real Fleet cockpit and owns playback UI, TourRunner, captions, and demo cues fail closed when the real cockpit target is absent dockdemo README names the mode deterministic two-run whitebox replay
Recording/e2e entry mission-control screenplay Addresses the demo host, never the production cockpit no implicit product fallback e2e header identical beat logs + zero product-surface demo controls

Decision Record impact

None. This restores the accepted keeper-vs-proof and product-vs-demo ownership boundary; it does not change the Fleet Manager, docking, or TourRunner contracts.

Acceptance Criteria

  • The real AgentOS Fleet Manager renders no Play tour affordance and no tour caption strip.
  • Production FleetCockpit imports no TourRunner and no demo screenplay; it contains no demo-only state or synthetic event injection.
  • A dedicated dockdemo mode composes the real Fleet cockpit and owns the mission-control/fusion playback controls.
  • The mission-control screenplay still passes two consecutive live takes with identical beat logs.
  • The fusion tour and recording path remain available through the demo/witness surface.
  • A product-surface unit or whitebox witness fails if a tour control or demo dependency returns.
  • Cross-family review before merge.

Out of Scope

  • Deleting or weakening the tour scripts, TourRunner, recording path, or their falsifiers.
  • Forking a mock Fleet Manager for the demo.
  • The rejected AgentCard visual design; that remains a separate design-conformance correction under #14805.
  • Docking-engine changes.

Avoided Traps

  • CSS-hide or runtime flag inside the product class — demo code would still be product-owned.
  • Delete the button but leave the demo machinery in FleetCockpit — fixes the screenshot, not the boundary.
  • Copy the cockpit into a demo — guarantees product/demo drift.
  • Remove the demo to protect the product — destroys valuable proof instead of assigning it to the correct host.

Related

Parent: #14560
Product definition: #13448
Regression source: #14646 / PR #15479
Design-conformance sibling: #14805

Origin Session ID: ad71d4c3-3e37-4a17-8df7-8415509def84

Retrieval Hint: Fleet Manager production cockpit Play tour demo host missionControlWalkthrough PR 15479