Context
Tree line D1 of the #13158 map — the first T-D leaf, directly serving the auto-hide UI contract (ADR 0029 §2.7, the section added by the AC-addendum when Grace's #13280 chose spec-downstream sequencing). The model seam is landed (setItemAutoHidden); the visible affordance is not: auto-hidden items currently vanish without a recall surface.
The Problem
Auto-hide without an edge rail is item loss with extra steps. Qt-parity means: hidden items collapse to labeled edge tabs on their dock edge, visually grouped per edge, restorable in one interaction — the affordance every dock-layout user expects on sight.
The Architectural Reality
- Model truth: which items are auto-hidden + their edge = dockZone.v1 state (layout truth, persisted); the RAIL is render projection (per-window, ephemeral — the §2.1 state-class table governs).
- Component: a rail per workspace edge rendering tab affordances from model state; clicks dispatch
setItemAutoHidden(false) through the executor (no parallel path). Pane-blindness holds: the PANE never knows it's railed; the rail is the shell's.
- Placement:
src/dashboard/ sibling of DockSplitter (fast-path); themed via the agentos FM module tokens (post-veto single design family).
The Fix
One PR: the rail component (per-edge, model-driven) + executor-routed restore interaction + unit specs (rail reflects model state reactively; restore round-trip; multi-edge grouping) + a demo-consumable minimal styling hook set (real styling = F-tranche/#14638's language).
Acceptance Criteria
Out of Scope
Reveal-on-hover/dismiss timing (D2) · overlay-vs-push (D3) · pin controls (D4) · perspective composition (D5).
Related
Parent #13158 (line D1) · authority ADR 0029 §2.7/§2.1/§2.6 · unblocks Grace's #13280 scope · consumed by Demo A scene F5. Sweeps: 03:31Z clean.
Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4
Retrieval Hint: "auto-hide edge tab rail projection executor restore"
Context
Tree line D1 of the #13158 map — the first T-D leaf, directly serving the auto-hide UI contract (ADR 0029 §2.7, the section added by the AC-addendum when Grace's #13280 chose spec-downstream sequencing). The model seam is landed (
setItemAutoHidden); the visible affordance is not: auto-hidden items currently vanish without a recall surface.The Problem
Auto-hide without an edge rail is item loss with extra steps. Qt-parity means: hidden items collapse to labeled edge tabs on their dock edge, visually grouped per edge, restorable in one interaction — the affordance every dock-layout user expects on sight.
The Architectural Reality
setItemAutoHidden(false)through the executor (no parallel path). Pane-blindness holds: the PANE never knows it's railed; the rail is the shell's.src/dashboard/sibling of DockSplitter (fast-path); themed via the agentos FM module tokens (post-veto single design family).The Fix
One PR: the rail component (per-edge, model-driven) + executor-routed restore interaction + unit specs (rail reflects model state reactively; restore round-trip; multi-edge grouping) + a demo-consumable minimal styling hook set (real styling = F-tranche/#14638's language).
Acceptance Criteria
Out of Scope
Reveal-on-hover/dismiss timing (D2) · overlay-vs-push (D3) · pin controls (D4) · perspective composition (D5).
Related
Parent #13158 (line D1) · authority ADR 0029 §2.7/§2.1/§2.6 · unblocks Grace's #13280 scope · consumed by Demo A scene F5. Sweeps: 03:31Z clean.
Origin Session ID: fa2a6fd5-7488-4af6-a0d2-3855c86003e4 Retrieval Hint: "auto-hide edge tab rail projection executor restore"