The operator's 2026-07-14 authority delta identifies a product-boundary error in the just-landed dense-workstation showcase: the v13.2 flagship is buried behind the AgentOS dock-demo childapp even though the application does not consume Fleet Manager or the planned Agent Harness. The next ticket and PR must correct that boundary.
Closed #15099 explicitly selected apps/agentos/childapps/dockdemo and rejected a standalone app because it treated that childapp as the release product surface. PR #15133 proved the feature itself — density × living data, real docking, two themes, deterministic tour — but live source inspection falsifies the placement premise. This ticket reverses only that home decision; it preserves the shipped proof.
This is directly inside the v13.2 roadmap gate: public animated docking demos and flagship applications must read as products, not as hidden modes of an unrelated AgentOS childapp.
The Problem
The flagship currently boots only at /apps/agentos/childapps/dockdemo/index.html?demo=c. apps/agentos/childapps/dockdemo/view/Viewport.mjs imports DemoCWorkspace and selects it through the demo=c query mode.
The runtime implementation itself is not an AgentOS/Fleet consumer:
its two data surfaces are app-owned Store<Model> instances under one root state.Provider;
it imports no Fleet store, roster, lifecycle controller, account model, or harness shell.
The actual coupling is accidental product identity:
every class and DOM selector is named AgentOS.childapps.dockdemo.* / .agentos-dockdemo-*;
the workspace loads AgentOS.view.Viewport solely to inherit the Fleet palette;
its SCSS consumes --fm-* tokens defined in AgentOS theme files;
panel copy names Fleet, Memory Core, Native Edge Graph, swarm, and harness concepts despite the surface being a general operations workstation;
the tour content lives in apps/agentos/tour/;
unit and E2E paths encode AgentOS ownership.
A top-level flagship must be independently discoverable, bootable, buildable, themed, tested, and named. Moving only the URL while retaining AgentOS namespace/theme ownership would leave the architectural error intact.
The Architectural Reality
Canonical standalone browser applications live at apps/<app>/ and own app.mjs, index.html, neo-config.json, view/, and any model/ / store/ state. apps/colors and apps/finance are direct sibling precedents.
apps/agentos/childapps/dockdemo remains the home of Demo A (dock choreography) and Demo B (perspectives/pop-out). Those technical demonstrations do not become part of the flagship.
The durable product identity is Workstation; “dense” is an acceptance property, not an application namespace. The destination is apps/workstation/ with Workstation.* classes.
neo.harness.dockZone.v1 remains the currently shipped generic dock-document schema used by core dashboard classes and non-AgentOS examples. Renaming that core contract is not required to correct this consumer boundary.
The app-work invariants remain binding: one view-root state.Provider; data-carrying UI binds data.Store of data.Model; SCSS owns styling; no plain-array data projection and no CSS-in-JS.
Structural pre-flight is a sibling-file-lift: the new top-level app and app-scoped test directories match established repository roles. No new subsystem or architecture-map row is introduced.
The Fix
One PR performs an ownership-preserving extraction, not a fork:
Create apps/workstation/ as a complete Neo app build target with app.mjs, index.html, neo-config.json, and a Workstation.view.Viewport that directly mounts the workspace without a query-mode switch.
Relocate and rename Demo C's workspace, panes, model, stores, and tour content into app-owned Workstation.* modules. Preserve the existing dock document, Store/Model identities, feed contract, TourRunner screenplay, and docking behavior.
Move the workspace SCSS into resources/scss/src/apps/workstation/; add light/dark Workstation theme files; replace --fm-* with app-owned --workstation-* tokens and .agentos-dockdemo-* selectors with .workstation-*.
Generalize the panel/story copy into an operations workstation. Remove Fleet Manager, AgentOS, Memory Core, Native Edge Graph, swarm, and harness product claims from the app while preserving the twenty-pane density and living-data narrative.
Remove Demo C's import and ?demo=c mode from the AgentOS dockdemo viewport. Do not add a wrapper, redirect, re-export, or second source copy.
Relocate and rename the focused unit and whitebox E2E specs to Workstation-owned paths. Point the mounted journey at /apps/workstation/index.html and update class/DOM identity oracles.
Update the dockdemo README so it documents only Demos A/B, and add a Workstation README with the standalone run URL and proof contract.
Contract Ledger
Target surface
Source of authority
Proposed behavior
Fallback
Docs
Evidence
/apps/workstation/index.html
standalone app marker trio
directly boots the flagship Workstation
fail loudly on missing app/config; no AgentOS wrapper
Workstation README
mounted whitebox E2E
Workstation.* class tree
relocated app modules
app owns viewport, workspace, panes, model, stores, and tour
none; duplicate AgentOS classes forbidden
JSDoc + README
class census + focused unit
Workstation light/dark palette
app-owned SCSS + theme files
--workstation-* tokens supply both Neo themes
no --fm-* inheritance
SCSS intent comments
computed-style + dual-theme E2E
AgentOS dockdemo boot modes
dockdemo Viewport
only Demo A default and ?demo=b; no Demo C import
unknown modes resolve to Demo A as today
dockdemo README
A/B focused tests + source census
dense living-data proof
existing Workstation stores, dock document, and tour
same 100k scale store, capped ≥10/sec feed, twenty panes, split/return, overflow, both themes
fail-closed test oracles
Workstation README
relocated unit + E2E
Decision Record impact
none — this relocates a product consumer and removes false AgentOS ownership. It does not alter the landed dock schema, ADR 0029 docking invariants, TourRunner contract, or framework APIs.
Acceptance Criteria
apps/workstation/ is a complete standalone Neo app and /apps/workstation/index.html boots it directly in development.
The standalone build/config census recognizes Workstation; its neo-config.json enables the same required runtime capabilities and both Neo light/dark themes.
The relocated implementation uses Workstation.* classes, .workstation-* selectors, and --workstation-* theme tokens. No AgentOS.*, .agentos-dockdemo-*, --fm-*, Fleet, AgentOS, Memory Core, Native Edge Graph, swarm, or harness product identity remains in the Workstation app/theme/test tree, except the unchanged core schema string neo.harness.dockZone.v1.
AgentOS dockdemo no longer imports or routes Demo C; Demo A and Demo B retain their current URLs and behavior.
There is one implementation, not copied AgentOS and Workstation variants; the old Demo C modules, tour, SCSS, and app-scoped tests are removed from their AgentOS paths.
Workstation still mounts at least eighteen dock items, exactly 100,000 scale records, one capped batched feed growing at ≥10 records/sec, real overflow, split/return choreography, and both themes.
One root state.Provider still owns the exact Store<Model> instances; pane, store, component, and relevant DOM identities remain stable across the tour.
Relocated focused unit coverage passes for the dock document, stores, and workspace ownership contracts.
Relocated whitebox E2E passes at the standalone URL with zero page/runtime errors, sequential-frame continuity, overflow geometry, 100k scroll, Canvas-worker updates, dual-theme completion, and no temporary DockFlip residue.
Focused Demo A/B coverage proves their childapp was not regressed by removing Demo C.
Cross-family review.
Out of Scope
Renaming neo.harness.dockZone.v1 or moving core docking classes · implementing #15136 tab-chrome reconciliation · changing the DockFlip work in PR #15143 · extracting Demo A/B · changing Fleet Manager or the Agent Harness · redesigning the accepted Workstation composition · new docking operations or public APIs.
Avoided Traps
Move all three demos: rejected — it preserves the accidental A/B/C grouping and fails to give the flagship its own product boundary.
Standalone wrapper importing the childapp: rejected — the URL changes while ownership, namespace, theme, and source authority remain wrong.
Copy instead of relocate: rejected — two implementations drift and recreate the exact theming concern that #15099 used to reject standalone ownership.
Keep Fleet tokens/copy after moving files: rejected — filesystem placement alone does not make an independent app.
Compatibility redirect from ?demo=c: rejected before v13.2 ships — it preserves an unrelated AgentOS route and dual discoverability with no released compatibility contract.
Escalate to a new Discussion: rejected — this is a reversible, sibling-pattern app extraction with no core API or cross-system trade-off, and the operator supplied the missing product-boundary authority directly.
Live latest-open sweep: checked the latest 20 open issues at 2026-07-14T04:54Z; no equivalent found. All-state title/content searches returned only closed #15099, whose standalone rejection is the premise this ticket supersedes. A2A all-state recency sweep: latest 30 messages checked at the same gate; no overlapping [lane-claim] or [lane-intent].
Retrieval Hint: standalone Workstation extract Demo C AgentOS childapp app boundary theme ownership fm tokens
tobiu referenced in commit b1dfd47 - "refactor(workstation): promote flagship to standalone app (#15144) (#15146)" on 9:22 AM
Context
The operator's 2026-07-14 authority delta identifies a product-boundary error in the just-landed dense-workstation showcase: the v13.2 flagship is buried behind the AgentOS dock-demo childapp even though the application does not consume Fleet Manager or the planned Agent Harness. The next ticket and PR must correct that boundary.
Closed
#15099explicitly selectedapps/agentos/childapps/dockdemoand rejected a standalone app because it treated that childapp as the release product surface. PR#15133proved the feature itself — density × living data, real docking, two themes, deterministic tour — but live source inspection falsifies the placement premise. This ticket reverses only that home decision; it preserves the shipped proof.This is directly inside the v13.2 roadmap gate: public animated docking demos and flagship applications must read as products, not as hidden modes of an unrelated AgentOS childapp.
The Problem
The flagship currently boots only at
/apps/agentos/childapps/dockdemo/index.html?demo=c.apps/agentos/childapps/dockdemo/view/Viewport.mjsimportsDemoCWorkspaceand selects it through thedemo=cquery mode.The runtime implementation itself is not an AgentOS/Fleet consumer:
DemoCWorkspace.mjscomposes generic Neo dashboard, state, grid, DockService, DockZoneModel, and TourRunner authorities.Store<Model>instances under one rootstate.Provider;The actual coupling is accidental product identity:
AgentOS.childapps.dockdemo.*/.agentos-dockdemo-*;AgentOS.view.Viewportsolely to inherit the Fleet palette;--fm-*tokens defined in AgentOS theme files;apps/agentos/tour/;A top-level flagship must be independently discoverable, bootable, buildable, themed, tested, and named. Moving only the URL while retaining AgentOS namespace/theme ownership would leave the architectural error intact.
The Architectural Reality
apps/<app>/and ownapp.mjs,index.html,neo-config.json,view/, and anymodel//store/state.apps/colorsandapps/financeare direct sibling precedents.apps/agentos/childapps/dockdemoremains the home of Demo A (dock choreography) and Demo B (perspectives/pop-out). Those technical demonstrations do not become part of the flagship.apps/workstation/withWorkstation.*classes.neo.harness.dockZone.v1remains the currently shipped generic dock-document schema used by core dashboard classes and non-AgentOS examples. Renaming that core contract is not required to correct this consumer boundary.state.Provider; data-carrying UI bindsdata.Storeofdata.Model; SCSS owns styling; no plain-array data projection and no CSS-in-JS.The Fix
One PR performs an ownership-preserving extraction, not a fork:
apps/workstation/as a complete Neo app build target withapp.mjs,index.html,neo-config.json, and aWorkstation.view.Viewportthat directly mounts the workspace without a query-mode switch.Workstation.*modules. Preserve the existing dock document, Store/Model identities, feed contract, TourRunner screenplay, and docking behavior.resources/scss/src/apps/workstation/; add light/dark Workstation theme files; replace--fm-*with app-owned--workstation-*tokens and.agentos-dockdemo-*selectors with.workstation-*.?demo=cmode from the AgentOS dockdemo viewport. Do not add a wrapper, redirect, re-export, or second source copy./apps/workstation/index.htmland update class/DOM identity oracles.Contract Ledger
/apps/workstation/index.htmlWorkstation.*class tree--workstation-*tokens supply both Neo themes--fm-*inheritance?demo=b; no Demo C importDecision Record impact
none — this relocates a product consumer and removes false AgentOS ownership. It does not alter the landed dock schema, ADR 0029 docking invariants, TourRunner contract, or framework APIs.
Acceptance Criteria
apps/workstation/is a complete standalone Neo app and/apps/workstation/index.htmlboots it directly in development.neo-config.jsonenables the same required runtime capabilities and both Neo light/dark themes.Workstation.*classes,.workstation-*selectors, and--workstation-*theme tokens. NoAgentOS.*,.agentos-dockdemo-*,--fm-*, Fleet, AgentOS, Memory Core, Native Edge Graph, swarm, or harness product identity remains in the Workstation app/theme/test tree, except the unchanged core schema stringneo.harness.dockZone.v1.state.Providerstill owns the exactStore<Model>instances; pane, store, component, and relevant DOM identities remain stable across the tour.Out of Scope
Renaming
neo.harness.dockZone.v1or moving core docking classes · implementing#15136tab-chrome reconciliation · changing the DockFlip work in PR#15143· extracting Demo A/B · changing Fleet Manager or the Agent Harness · redesigning the accepted Workstation composition · new docking operations or public APIs.Avoided Traps
#15099used to reject standalone ownership.?demo=c: rejected before v13.2 ships — it preserves an unrelated AgentOS route and dual discoverability with no released compatibility contract.Related
Parent: #13158 · follows #15099 / PR #15133 · follow-up #15136 · motion dependency PR #15143
Live latest-open sweep: checked the latest 20 open issues at 2026-07-14T04:54Z; no equivalent found. All-state title/content searches returned only closed
#15099, whose standalone rejection is the premise this ticket supersedes. A2A all-state recency sweep: latest 30 messages checked at the same gate; no overlapping[lane-claim]or[lane-intent].Retrieval Hint:
standalone Workstation extract Demo C AgentOS childapp app boundary theme ownership fm tokens