import: remediate review findings — ledger gate, docs, message split
Delegates the refuse-gate to ledgerDegraded(), lifts its console message into a pure testable fold, fixes stale doc line citations and an inaccurate outcome-enum comment, and splits the rename counter into collision-vs-sanitize.
This commit is contained in:
+9
-6
@@ -2366,7 +2366,7 @@ These bind every track in this phase, in addition to the plan-wide set above.
|
||||
touching it must **cite, not restate**.
|
||||
- **Export is read-only against the project.** No ext-state write, no `bumpBankGeneration()`,
|
||||
no undo point. Import does the opposite: it bumps the generation
|
||||
(`src/shell/persist/session.h:108`) so live ReaSampler 9000 instances reload, and batches
|
||||
(`src/shell/persist/session.h:114`) so live ReaSampler 9000 instances reload, and batches
|
||||
its index mutation into one Ctrl-Z through `persistBankOp`.
|
||||
- **All-or-nothing on both sides.** No partial export, no partial import. A truncated
|
||||
`.rsbank` must never exist on disk (temp file + atomic rename, the Ψ-W2-T2 precedent); a
|
||||
@@ -2396,10 +2396,13 @@ new directories** (`src/core/package/`, `src/shell/package/`) that no other phas
|
||||
not read here. The only pre-existing files any Ε track edits are named per track below —
|
||||
`core/tracking/origin_ledger` (W1-T3, exclusively), the root `CMakeLists.txt`
|
||||
`add_subdirectory` list (W1-T1 and W1-T2, one line each), `src/app/main.cpp` and the panel's
|
||||
bank menu (W2-T1 and W2-T2, one registration line and one menu row each), and
|
||||
bank menu (W2-T1 and W2-T2, one registration line and one menu row each),
|
||||
`core/model/bank_book.{h,cpp}` (W2-T2 only — **one additive public `const` member**, required
|
||||
by the Ε-F2 auto-suffix rule so the name fold keeps its single home). **No Ε track
|
||||
touches `core/instrument/`, `shell/instrument/`, or any capture backend.**
|
||||
by the Ε-F2 auto-suffix rule so the name fold keeps its single home), and
|
||||
`shell/persist/session.h` (W2-T2 only — one additive public accessor, `ledgerStatus()`, so the
|
||||
import gate can key on `LedgerStatus` alone without going through `pruneDryRun()`'s
|
||||
enumeration+scan). **No Ε track touches `core/instrument/`, `shell/instrument/`, or any
|
||||
capture backend.**
|
||||
|
||||
---
|
||||
|
||||
@@ -2764,7 +2767,7 @@ fold, it does not add a second one), `origin_ledger` (Ε-W1-T3's).
|
||||
`"Drums 3"` — a bare trailing integer is indistinguishable from `"Kit 808"`); the probe
|
||||
**fills gaps** (first-free, not highest-plus-one, so it is a pure function of the current
|
||||
name set); the probe **terminates** by pigeonhole within `B + 1` candidates for `B` banks,
|
||||
so **no arbitrary cap**; and the fold is `BankBook`'s own (`bank_book.h:252-258`), reached
|
||||
so **no arbitrary cap**; and the fold is `BankBook`'s own (`bank_book.h:263-269`), reached
|
||||
through the new public member, never re-implemented in `import_plan`. Sample display names
|
||||
are **not** suffixed, and `slot_map` positions are untouched.
|
||||
- **Always a new bank; never a merge (Ε-F2, ruled).** The import creates a bank — it never
|
||||
@@ -2787,7 +2790,7 @@ fold, it does not add a second one), `origin_ledger` (Ε-W1-T3's).
|
||||
remain as orphans until a prune reclaims them — the same designed window a non-empty bank
|
||||
delete already produces (`core/model/CLAUDE.md`'s sample-removal section). The user-facing
|
||||
summary says so.
|
||||
- **`bumpBankGeneration()` on success** (`session.h:108`), so live instances reload.
|
||||
- **`bumpBankGeneration()` on success** (`session.h:114`), so live instances reload.
|
||||
- **No timeline item is placed. Ever.**
|
||||
- **A new FOREVER-STABLE command id**, minted the same way T1's is.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user