From f33ef9af371807c3b52115423055f2830ca2a134 Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Sun, 2 Aug 2026 16:31:17 -0400 Subject: [PATCH] docs: give Phase E's DAW obligations a home in VERIFICATION.md --- docs/VERIFICATION.md | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/docs/VERIFICATION.md b/docs/VERIFICATION.md index 02cdf28..7b59278 100644 --- a/docs/VERIFICATION.md +++ b/docs/VERIFICATION.md @@ -1,6 +1,6 @@ # DAW verification — post-1.0 work on `dev` -Checks for Θ, Ξ, and Ψ work that no unit test can close. Build **Release**, install into +Checks for Θ, Ξ, Ψ, and Ε work that no unit test can close. Build **Release**, install into `UserPlugins/`, restart REAPER. Panel tail toggle = **None**, project rate 48000, unless a check says otherwise. ## Precision invariants @@ -59,6 +59,44 @@ Checks for Θ, Ξ, and Ψ work that no unit test can close. Build **Release**, i - [ ] Drag-out to an external app twenty-plus times in a row — audio arrives every time; this is a soak, a single pass is not a gate (`docs/COMPLETED.md:109`) - [ ] Drop a capture onto an FX container — the instrument loads with that capture (`docs/COMPLETED.md:110`) +## Bank packages + +- [ ] **Run in full.** `docs/verify-package-transfer.md` — the whole cross-machine + export/import round trip: writes-one-file, the transfer itself, re-importing the + same file never overwrites, the round trip back to the source, the too-new / + truncated / mid-payload-corruption refusals (each an exact string), the + unsaved-project refusals, and drag-and-drop (`docs/COMPLETED.md:1068`, `PLAN.md:2578`) +- [ ] Force a degraded tracking ledger and confirm the import refuses **before the + file picker opens**: save a project with a bank, close REAPER, edit the saved + `.rpp`'s `owned_files` ext-state value inside its `` block — corrupt + the JSON for the `Unreadable` case, or bump `"v":2` to `"v":3` for the + `FutureVersion` case — reopen the project, then run *ReaSampler: import bank + package (.rsbank)*. Read off: the console prints the ledger-refusal block and no + file dialog ever appears (`src/core/tracking/origin_ledger.h:95,101`, + `src/shell/actions/package_import_action.cpp:161-167`) +- [ ] Export dialog: type a destination name with no extension, then again over a + name that already carries a different one (e.g. `mybank.bak`) — read off whether + `GetUserFileName` appended `.rsbank` itself or ReaSampler's own re-append produced + the double-extension result (`mybank.bak.rsbank`) the code expects + (`src/shell/package/CLAUDE.md:112-122`) +- [ ] Both the export and the import file dialogs open in front of REAPER's main + window, not behind it — `GetUserFileName` takes no owner window + (`src/shell/package/CLAUDE.md:110-112`) +- [ ] With a ReaSampler 9000 instance's editor open on the destination project + (Browse view visible), import a `.rsbank` from the docked panel — the browser + reflects the new bank without closing or reopening the editor (the bank-generation + bump, `src/shell/persist/session.h:114-121`, polled by the instrument at + `src/shell/instrument/processor_reload.cpp:444-475`) +- [ ] Drag two or more `.rsbank` files onto the docked panel in one drop — each lands + as its OWN new bank, never merged into one, and if the tracking ledger is degraded + the refusal prints ONCE for the whole drop rather than once per file + (`src/shell/panel/panel_window.cpp:63-94`) +- [ ] Kill REAPER (or the process) partway through an import so a partial bank file + is stranded under its real name in the bank folder, then re-run the same import + into the same project — read off what happens. Whether the import verb should + pre-clean that stale debris is an open question, not yet decided + (`src/shell/package/CLAUDE.md:102-108`) + ## The resample bake - [ ] Bake a dialed sound — the banked file sounds like what the editor was playing (`docs/COMPLETED.md:737`)