daniel
82a8d51004
Narrow the mode switch's persist to the one key it changes
...
A switch wrote all seven ext-state keys to record that view_state moved,
re-serializing the bank book and the tracking ledger for nothing. Both entry
surfaces now take saveViewStateOnly; every other caller keeps the full save.
2026-08-03 12:39:28 -04:00
daniel
f8dde16a7e
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.
2026-08-02 17:19:30 -04:00
daniel
a927dad2f4
import: a .rsbank lands as a new bank, whole or not at all
...
Four collisions answered explicitly: ids reminted, names never overwritten,
content deduped before the write, bank name auto-suffixed. Degraded ledger
refuses before the picker.
2026-08-02 17:19:30 -04:00
daniel
1c8709e82d
Take the read-back back out of the persist; a write verdict belongs only where evidence crosses the plugin boundary
...
Its false gated six undo points, so an unverified byte-equality assumption could have silently removed Ctrl-Z for a bank mutation that landed.
2026-08-02 13:42:51 -04:00
daniel
25390d5253
Prove every ext-state write by reading the key back, so no guard is constant-true
...
SetProjExtState's return describes the whole extname. The persist and the instrument's publish now re-read their key; both refusals can finally fire.
2026-08-02 13:14:49 -04:00
daniel
39c2d1cdb4
Ξ-W2-T1 remediation: print master gain into the bake, derive the window from the dialed sound, reset play mode to Trigger
2026-08-01 17:05:28 -04:00
daniel
60308a3655
Ξ-W2-T1: the resample bake chain — instrument renders, extension banks, one click re-points and resets
2026-08-01 16:26:28 -04:00
daniel
45b87dc2ff
tracking: read the ledger's version, not just write it; clear owned on any block; channel-correct prune recovery
2026-07-30 20:11:05 -04:00
daniel
7f70d94228
tracking: one ledger, one authority — prune protection and replace-vs-add answered from the same records, fail-safe on unreadable state
2026-07-30 19:44:11 -04:00
daniel
8dac5b4a54
Cut core/wire and shell/persist comment bloat ~46% (comments only, zero code change)
2026-07-29 20:49:28 -04:00
daniel
0c39a716a5
docs: scope deletion-authority wording to bank folder + guard growing-read NUL terminator
2026-07-29 13:06:38 -04:00
daniel
75aa93f913
Q-W5: persist → session/ext_state_io/prune_fs (deletion authority concentrated); one GetProjExtState grow-loop in bridge_marshal (T2-04, ×3 rewired); bank_book JSON codec → bank_book_json via private static nameKey; persist.h stays umbrella. 61/61 green.
2026-07-29 13:06:38 -04:00