diff --git a/HANDOFF.md b/HANDOFF.md index 5c08c15..5ab3e18 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -1,26 +1,26 @@ -# HANDOFF — 2026-10-30 (design conversion complete; spacing is a layout pass, not a sweep) +# HANDOFF — 2026-10-30 (audio dock shipped; needs an eyes/hands pass) ## State -- Branch `main`, worktree clean. **~20 commits, unpushed** (push at your checkpoint). -- **The design conversion is done**: `DESIGN.md` is the contract, `Themes/Tokens.xaml` implements - it, and every surface consumes it — UI chrome, all dialogs (typeface included), the VM's state - colours via `Helpers/ThemeBrush`, and the on-stream graphics via `Services/Compositor/OutputPalette` - (which mirrors the tokens and is checked against them, because the pump thread cannot read app - resources). Blue `#38bdf8` is the only interactive accent; red `#ff5451` is live/record; - `#e94560` is gone from the product. -- Four guards hold it: `DesignTokensTests` (doc ↔ brushes; converted files may not regress to a - literal), `ThemeResourceTests` (no dangling `StaticResource` — the class of crash that killed the - app on a slider), `OutputPaletteTests` (on-stream ↔ theme), `SocialsPreviewTests` (a real - MainWindow, real preview elements) and `DialogTypographyTests` (dialogs inherit Inter). +- Branch `main`, worktree clean. Ten dock units landed on top of the design conversion; nothing + pushed since `1724922` — this batch is local. +- **The sound bars exist**: `Controls/AudioDock` — master strip on top (nearest the preview), four + bays below (MIC / GAME / TRAX / LIP-SYNC), 148px, auto-collapsing to 36px below a 900px window + height. The dock is now the ONLY audio surface; the preview's mic row, game chip, TRAX button and + sync slider are deleted. +- Faders speak dB (`Helpers/GainDb`, 0 dB = unity). Ladders are measured (`SegmentMeter` + + `MeterScale`), never decorative. The duck badge prints the gain the mixer applied. +- **MONO output** (creator ruling): folds the finished mix to both channels, persisted as + `Audio.MonoOutput`, one click in the master strip. Exists because single-sided audio is inaudible + with profound right-side deafness, not merely unbalanced. +- Deliberately absent: L/R ladders (one ladder + an imbalance flag instead), TRAX scrub/prev-next + (OBS territory), CPU/GPU/NVENC readouts, acrylic. ## Next action -Nothing queued for the design. The **one** item deliberately not swept: the spacing scale. Margins -and paddings are per-side `Thickness`, not the single values `DESIGN.md` defines, so converting -them mechanically would change layout without a rationale — that is a layout pass (a designer's -job), not a colour-style sweep. Radii are tokenised where a token was honest; component geometry -(pill halves, 2.5px hairlines) stays literal on purpose. +Nothing queued. **Needs the creator's hands**: launch and judge the dock at the real window size — +bay proportions at 148px, the master strip's ladder/label density, and whether the MONO fold sounds +right through their own ears/headphones (the one thing no test can answer). ## Landmines