Docs: reflect Phase D1 landing
Rename view_model -> view_mode_model across Design View spec docs; archive D1 to COMPLETED.md; add view_mode_model_tests to CLAUDE.md targets table and pure-core list.
This commit is contained in:
@@ -115,3 +115,29 @@ folder still resolves the bank).
|
||||
- Project identity: keyed off a **minted GUID** stored in ext state (REAPER exposes no native per-project GUID), not the raw `ReaProject*` — a recycled pointer cannot misread a project switch as a Save-As.
|
||||
- Save-As: **copy** semantics (Daniel's decision) — the `reasampler_bank/` folder is copied under the new `.rpp`; the old project's bank stays intact. Every ext-state write calls `MarkProjectDirty` so captures/GUID changes flush on the normal save.
|
||||
- Known limitation (narrow, accepted): if a user does Save-As, closes the copy *without saving*, then reopens that copy to a *different* folder while the original is also open, identities can collide. Force-saving after Save-As would close the hole but was rejected as violating non-destructive.
|
||||
|
||||
---
|
||||
|
||||
## D1 — view_mode_model (pure)
|
||||
**Goal:** REAPER-free mode registry + membership index + folder-tree-aware
|
||||
visibility derivation + parking/restore planner + JSON round-trip. The heart of the
|
||||
phase; mirror of `bank_model`. CONTEXT.md §Design View (Module architecture — pure).
|
||||
**Verify:** CTest green. N-mode model (not a boolean); Arrange + Design seeded.
|
||||
Restore-planner round-trip (snapshot → park → restore) returns every driven flag to
|
||||
its captured value. Parent-derivation correct against a supplied folder tree.
|
||||
JSON round-trip lossless across modes + membership + show-both + snapshots + active
|
||||
mode.
|
||||
|
||||
- [x] Mode registry: ordered (id, display name, ordinal); Arrange + Design seeded;
|
||||
add/query more modes (prove N-mode, not binary).
|
||||
- [x] Membership index: `GUID → { mode ids }` + per-track show-both flag;
|
||||
add / remove / retag / query; untagged = Arrange.
|
||||
- [x] Folder-tree-aware visibility derivation: given a supplied parent↔child tree +
|
||||
active mode, compute the visible set (active leaves, derived-visible parents,
|
||||
show-both leaves, master always in).
|
||||
- [x] Parking/restore planner: emit exact (track, flag, value) op-lists for park and
|
||||
restore from active mode + snapshot record.
|
||||
- [x] JSON round-trip: modes + membership + show-both + snapshots + active mode.
|
||||
- [x] Tests: N-mode add/query; parent follows tagged leaf (multi-mode parent);
|
||||
restore-round-trip returns snapshot values (never hardcoded "on"); show-both leaf
|
||||
never parked; unknown/stale GUID tolerated; JSON lossless.
|
||||
|
||||
Reference in New Issue
Block a user