docs(phase-q): record Q-W0 close + Q-W1 landing — points moved to COMPLETED.md; skipped riders and bank_book nameKey residual preserved
This commit is contained in:
@@ -2883,3 +2883,75 @@ now covered by the same mechanism.
|
||||
- [x] `reasampler_processor`: `reloadInstrument` decodes from `SampleRefs_` (bank-free); `SampleRefs` table added to `ComponentState` v10; heal timer + poll-to-play removed; preview summing removed; `PreviewCard` member removed.
|
||||
- [x] `sample_map`: `SampleRefs` type + `SampleRefEntry` struct; `refreshRefsFromBank`, `retainRefs`, `resolvePerformanceFromRefs` (decodes directly from refs, no bank blob required); `kComponentStateVersion` bumped to 10; pre-v10 lift to empty refs.
|
||||
- [x] `ComponentState` v10 serialization round-trip: new `sampleRefs` field; pre-v10 blobs migrate on load.
|
||||
|
||||
---
|
||||
|
||||
## Q-W0 fix-now remediations — closes Q-W0 (2026-07-28)
|
||||
|
||||
> **Merged to `phase-q` 2026-07-28 (commit `546927e`).** Closes the Q-W0 sub-gate — Q-W0
|
||||
> (pre-restructure functional + DSP quality audit) is now fully closed. Part of the phase-q
|
||||
> integration that later reached 60/60 green with Q-W1.
|
||||
|
||||
**Goal:** Land the six Daniel-approved fix-now remediations from the Q-W0 audit triage, plus
|
||||
seven review riders surfaced during their review, before any structural Q-wave begins.
|
||||
**Verify:** Each remediation lands with its module's CTest target green; the audible DSP fixes
|
||||
carry a stated before/after listening check.
|
||||
|
||||
- [x] **T1-01** — linked-lag stereo SOLA + follower self-heal fallback.
|
||||
- [x] **T1-03** — playable-span prime bound.
|
||||
- [x] **T1-09** — declick dead-state removal.
|
||||
- [x] **T2-01a** — provenance wire-cursor hardening backport.
|
||||
- [x] **T3-01** — rate-derived gain ramp.
|
||||
- [x] **T3-03** — rate-derived fade ceiling.
|
||||
- [x] Seven additional review riders landed in the same merge (not individually itemized in
|
||||
this entry).
|
||||
|
||||
**Notes/decisions:**
|
||||
- Landing these six fix-nows (plus the review riders) closes Q-W0 entirely — audit, triage,
|
||||
sign-off, and remediation are all complete — and opens Q-W1.
|
||||
|
||||
---
|
||||
|
||||
## Q-W1 — safe opener: `core/json` extraction + directory/namespace layout (2026-07-29)
|
||||
|
||||
> **Merged to `phase-q` 2026-07-29. Integrated suite 60/60 green.** First structural wave of
|
||||
> Phase Q; unblocked by the Q-W0 fix-now remediations closing 2026-07-28.
|
||||
|
||||
**Goal:** The zero-god-module-risk opener. Extract a pure `core/json` module (parser +
|
||||
serializer) and delete the five hand-rolled JSON decoders — the four `Parser`s in `bank_model`
|
||||
/ `bank_book` / `view_mode_model` / `owned_manifest` plus `tail_control`'s fifth decoder; impose
|
||||
the settled `core/`/`shell/`/`app/` directory layout + sub-namespaces on the clean pure libs,
|
||||
clean shells, and clean VST pure libs — pure relocation, no logic change.
|
||||
**Verify:** CTest green at every commit (60/60). The five duplicate JSON decoders are gone,
|
||||
replaced by one `core/json` consumed by all five former consumers; round-trip serialization is
|
||||
byte-identical to before. Every relocated clean module compiles and its test executable passes
|
||||
unmoved. No REAPER type crosses into any `core/` file.
|
||||
|
||||
- [x] `core/json` extracted (`json::Reader`/`json::Writer`); `bank_model`, `bank_book`,
|
||||
`view_mode_model`, `owned_manifest`, and `tail_control` rewired onto it; the five hand-rolled
|
||||
JSON decoders deleted.
|
||||
- [x] Wire-`Cursor` family collapsed into `core/wire` — one hardened survivor codec.
|
||||
- [x] Shared `readFileBytes` pure helper added; linked by both artifacts.
|
||||
- [x] `slot_map` extracted from `bank_book`, with its own `slot_map_tests`.
|
||||
- [x] ~50 clean modules relocated into `core/{model,view,capture,audio,ui,reclaim,version,json,
|
||||
util,wire}/`, `core/instrument/{engine,map,ui}/`, `shell/{capture,panel,view,persist,actions,
|
||||
instrument}/`; `main.cpp` moved to `app/`. Sub-namespaces applied to every relocated clean
|
||||
module.
|
||||
- [x] Rect unification: one concrete `ui::Rect` + `contains()` + per-role aliases — the
|
||||
XYWH-vs-LTRB fork retired, `footer_bar.h`'s "NAME NOTE" collision workaround gone.
|
||||
- [x] `clamp01` deduplicated.
|
||||
- [x] Naming riders: survivor JSON parser minted as `json::Reader`/`json::Writer`; `BankIndex`
|
||||
renamed to `BankModel` (verified by `bank_model_tests`).
|
||||
- [x] `reasampler_uid.h` relocated to `core/wire/`.
|
||||
- [x] Interim `core/namespaces.h` shim added for the six not-yet-split god TUs; each downstream
|
||||
split wave (Q-W2 onward) retires its own includes of it as that module splits.
|
||||
|
||||
**Notes/decisions:**
|
||||
- **Riders explicitly skipped/deferred:** T4-22 (`hitIndex` hit-test template) — not trivial,
|
||||
deferred as an opportunistic follow-on once the rect unification is in use downstream; T4-06
|
||||
(`view_mode_model` planner split) — optional, deferred; T4-09 (`view_lanes` split) —
|
||||
deferred (in scope only if a later wave touches `view.cpp` anyway).
|
||||
- **Open residual — `bank_book.cpp` still 737 LOC.** The serialize/deserialize seam is
|
||||
identified but blocked on a `nameKey` linkage design decision, escalated to Daniel and
|
||||
**pending** as of 2026-07-29. Downstream waves touching `bank_book` should check this
|
||||
residual before assuming the split is finished.
|
||||
|
||||
Reference in New Issue
Block a user