Docs: record Phase Omega's landed work in COMPLETED.md, trim it from PLAN.md

This commit is contained in:
2026-09-25 13:46:10 -04:00
parent 5151cb41dc
commit 550a0a86e4
2 changed files with 80 additions and 515 deletions
+50
View File
@@ -1661,6 +1661,56 @@ v2 blob keeps the behaviour it had rather than losing every FX state.
`TrackFX_GetFXGUID` survives a chain reorder while parked — is unverified in the DAW
(SWS issue #802 names a specific way it might not hold).
### Phase Ω — Responsiveness, and the control surface's second pass
Ω-W1's five tracks landed together, merged to `dev` as `1159d36` (2026-08-03):
- **Ω-W1-T1 `mode-switch-responsiveness`.** Narrowed the mode-switch undo mask off blanket
`UNDO_STATE_ALL`, bracketed the flag-write phase in a `PreventUIRefresh` RAII pair
(`UiRefreshHold`), and replaced the linear GUID scan with a hash map (`TrackByGuid`, an
`unordered_map`). Also shipped a deferred FX-park queue splitting the synchronous mode-switch
apply from per-FX offline/online. A follow-on split of that drain by kind, **Ω-W2-T4**
(`70bd29d`), was **reverted** (`2f96dd3`): FX-park state was left stranded across save/reopen,
so forced synchronous FX-park drains returned — and with them the mode-switch hitch — until a
re-snapshot-after-discard fix lands.
- **Ω-W1-T2 `mode-switch-persist`.** A mode switch now writes only the `view_state` ext-state
key (`saveViewStateOnly`) instead of the full multi-key session save on every switch.
- **Ω-W1-T3 `meter-rate`.** A second timer (`kMeterTimerIntervalMs = 16` ms, ~60 FPS) drains the
master meter independently of the 500 ms bank/bake poll (`kSyncTimerIntervalMs`).
- **Ω-W1-T4 `deck-reflow-focus-toggles`.** Moved Filter Mod onto the Filter Envelope deck,
centred Trigger's reserved knob-cell runs, converted the two-segment toggles (the
"Envelope"/"Filter"/"Limiter" enables and chrome "Loop") to single buttons, and made clicking
anywhere on an envelope deck focus its overlay.
- **Ω-W1-T5 `overlay-mapping`.** Unified the marker/overlay coordinate mapping with the
waveform draw chain around one `frameToX`/`OverlayArea`; Trigger now hides the loop marks and
caption outright, and Gate-with-loop-off draws them grey-disabled and still grabbable.
Two Ω-W2 tracks landed the same day. **Ω-W2-T2 `content-detect-throttle`** (`84afd1b`)
throttled the panel's new-content enumeration to `kDetectIntervalMs = 500` ms, down from the
~30 Hz timer tick it rode before. **Ω-W2-T5 `snap-radius`** (`aa87d81`) bounded
`nearestZeroCrossing`'s fan-out to `kMarkerGrabWidth` (5 px) and added Ctrl-defeats-snap on a
marker drag; `docs/product/instrument-control-surface.md` §4.1 now documents the gesture.
**Also landed alongside Ω (2026-08-03), outside the plan:**
- `4b19556` **Insert as FX** — a panel button + bindable action loading ReaSampler 9000 onto
the selected track with the focused capture.
- `098727e` **Panel polish** — a crosshair arrange-drop cue, and Re-capture / Insert Conform
moved to the "⋯" overflow menu.
- `a5febbd` **Drag-out hand-off fix** — the card drag stays internal while the pointer is over
REAPER.
**Still open, in `docs/PLAN.md`:** Ω-W2-T1 `view-topology-cache` (measurement-gated on
Ω-W1-T1's landed result; never dispatched) and Ω-W2-T3 `omega-verification-sweep` (the DAW
verification record for Ω-W1; not run).
**Superseded history.** Ω-W1-T1's deferred FX-park queue, a follow-up snapshot guard
(`bd86ede`, 2026-08-05, "refuse to park when the pre-park truth is gone"), and an undo-collapse
fix (`03f7fb5`, 2026-08-06) all landed against the synchronous FX-park approach the Aug 3
revert left in place. **All of it was superseded on 2026-08-21** by the Design View
mode-switch redesign below, which moved per-FX offline/online off the switch path a second
time — onto a background reclaimer — and collapsed the undo footprint through the new
`src/shell/undo/` module.
### Design View mode-switch redesign — FX off the switch path, one undo point
Four waves, merged to `dev` as `da84012`, that took the per-FX offline/online work