Context
The dashboard dock-zone layout system has shipped substantial machinery across ~15+ PRs — Neo.dashboard.DockZoneModel (the dock-zone document schema), Neo.dashboard.DockLayoutAdapter (projects a model → a container of hbox/vbox/tabs + splitter affordances + edge-zones), Neo.dashboard.DockSplitter (interactive resize), plus split-tab layouts (#13107), preview state (#13087), drag-preview affordances (#13109), the resizeSplit operation (#13160), splitter drag-wiring (#13225), named-layout helpers (#13175), pin state (#13168), persistence (#13152), and the src/-relocation of the model (#13142).
But there is no standalone example. The only consumer is apps/agentos/view/DockPreview.mjs — inside the early-PoC AgentOS app (slated for replacement by the Agent Harness, #13012). So the dock system has no isolated surface to demo, exercise, or visually verify independent of that app.
The Problem
A maturing, ~15-PR subsystem with no standalone example means:
- No showcase — nothing to point a human or agent at to see the dock / split / tab / resize behavior working.
- No isolated exercise surface — the only way to drive it is through the whole AgentOS app (heavy, and being replaced).
- No canonical reference — the
model → DockLayoutAdapter.project → rendered container flow lives only in DockLayoutAdapter.spec.mjs (unit assertions) + the AgentOS view; a runnable example is the missing didactic + visual-verification surface.
The Architectural Reality
examples/dashboard/ already exists — the standalone example belongs at examples/dashboard/dock/, mirroring the sibling example structure (index.html + app.mjs + a view/viewport).
- The example drives the public API directly: build a representative
DockZoneModel document (the documented edge-zone root shape — center/right zones, split orientation + sizes, tab containers; see DockLayoutAdapter.spec.mjs), render it via DockLayoutAdapter.project(model, {resolveComponentRef}), and mount the resulting container.
- The interactive layer (
DockSplitter resize, the resizeSplit operation, named-layout switching, pin, persist) is exercised by user interaction in the running example.
The Fix
A new standalone examples/dashboard/dock/ example app that:
- Composes a representative dock-zone model (split + tabs + edge-zones over a few panels).
- Renders it through
DockLayoutAdapter into a live, mounted dashboard.
- Demonstrates the shipped interactive features: splitter drag-resize, tab/split zones, and (where wired) named-layout switching + layout persistence + pin.
Acceptance Criteria
Out of Scope
- New docking features / behavior changes in
src/dashboard/* — this is an example of the existing logic (any gap found is a separate ticket).
- The Agent Harness app itself (
apps/ — #13012); this is a focused examples/ demo.
- Auto-hide / perspectives / grouped-drag if not yet shipped — those are #13158 polish leaves; the example demonstrates what exists.
Related
- Docking epic: #13158 (QT-parity docking polish). Strategies anchor: #13030 (dock/split/tab layouts).
- Dock machinery:
src/dashboard/{DockZoneModel,DockLayoutAdapter,DockSplitter,Container,Panel}.mjs; API reference: test/playwright/unit/dashboard/DockLayoutAdapter.spec.mjs + DockSplitter.spec.mjs.
- Existing (non-standalone) consumer:
apps/agentos/view/DockPreview.mjs.
- Surfaced by @tobiu (2026-06-14): many dock PRs landed, no standalone example.
Authored by @neo-opus-vega (Claude Opus 4.8, Claude Code). Origin Session ID: 4cc428e3-cf36-4324-8646-1b96cb23fa4a.
Context
The dashboard dock-zone layout system has shipped substantial machinery across ~15+ PRs —
Neo.dashboard.DockZoneModel(the dock-zone document schema),Neo.dashboard.DockLayoutAdapter(projects a model → acontainerof hbox/vbox/tabs + splitter affordances + edge-zones),Neo.dashboard.DockSplitter(interactive resize), plus split-tab layouts (#13107), preview state (#13087), drag-preview affordances (#13109), theresizeSplitoperation (#13160), splitter drag-wiring (#13225), named-layout helpers (#13175), pin state (#13168), persistence (#13152), and thesrc/-relocation of the model (#13142).But there is no standalone example. The only consumer is
apps/agentos/view/DockPreview.mjs— inside the early-PoC AgentOS app (slated for replacement by the Agent Harness, #13012). So the dock system has no isolated surface to demo, exercise, or visually verify independent of that app.The Problem
A maturing, ~15-PR subsystem with no standalone example means:
model → DockLayoutAdapter.project → rendered containerflow lives only inDockLayoutAdapter.spec.mjs(unit assertions) + the AgentOS view; a runnable example is the missing didactic + visual-verification surface.The Architectural Reality
examples/dashboard/already exists — the standalone example belongs atexamples/dashboard/dock/, mirroring the sibling example structure (index.html+app.mjs+ a view/viewport).DockZoneModeldocument (the documented edge-zone root shape — center/right zones, split orientation + sizes, tab containers; seeDockLayoutAdapter.spec.mjs), render it viaDockLayoutAdapter.project(model, {resolveComponentRef}), and mount the resultingcontainer.DockSplitterresize, theresizeSplitoperation, named-layout switching, pin, persist) is exercised by user interaction in the running example.The Fix
A new standalone
examples/dashboard/dock/example app that:DockLayoutAdapterinto a live, mounted dashboard.Acceptance Criteria
examples/dashboard/dock/(index.html+app.mjs+ view), mirroring the existingexamples/dashboard/sibling structure + registered wherever Neo examples are indexed.DockZoneModeldocument (split + tab + edge-zone nodes over ≥3 panels) and renders it viaDockLayoutAdapter.project.resizeSplitpath).src/dashboard/— the example consumes the existing public API only (any defect surfaced is filed separately).Out of Scope
src/dashboard/*— this is an example of the existing logic (any gap found is a separate ticket).apps/— #13012); this is a focusedexamples/demo.Related
src/dashboard/{DockZoneModel,DockLayoutAdapter,DockSplitter,Container,Panel}.mjs; API reference:test/playwright/unit/dashboard/DockLayoutAdapter.spec.mjs+DockSplitter.spec.mjs.apps/agentos/view/DockPreview.mjs.Authored by @neo-opus-vega (Claude Opus 4.8, Claude Code). Origin Session ID: 4cc428e3-cf36-4324-8646-1b96cb23fa4a.