P2 slice 9: put the old copies aside after an adoption
`wanderbooks books put-aside ID DATA-DIR [--vault DIR --vault-key FILE] [PATH...]` moves the old copies of adopted books (their data folder, their TIN vault and its key, their settings file, the git history around them, old exports) whole into numbered folders of their own in the root's legacy/, a list of where each came from written and synced first. Nothing is deleted. Refused unless the books hold everything the old copy does, byte for byte (journal, stored files, vault records, key; what adoption left behind and records the books sealed anew are listed and go aside too); while a wanderbooks process holds it open for writing; when its head moved since the preview; for links, paths named twice, inside the root or missing, a vault or key given as a plain path, and paths on another disk. Renames never replace anything, and a move cut short puts back what it moved. Three review rounds of data safety. The plan records the cutover's answers (Q-3: move the old copies aside; the backup repository and folder). Also: `connect`'s "the books fernhill' agent token" reads properly, and the restart tests wait for a copied program to be runnable (a child forked by another test while the copy was written made it "text file busy"). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01T3gXMVt7XJPi6ens1or9Dj
This commit is contained in:
1 parent
c53a01e163
commit
cbb7d54463
7 files changed
+1044
-7
No files matched your search
@@ -534,6 +534,24 @@ the keyring lost and saying when an agent refuses, the two lease
|
||||
intents), `one_executable.rs` (the scaffold gone, and saying so),
|
||||
`spec_kept.rs` (`isolation` is `same_user (advisory)`). Two review rounds.
|
||||
|
||||
**Slice 9, the cutover's put-aside.** `wanderbooks books put-aside ID
|
||||
DATA-DIR [--vault DIR --vault-key FILE] [PATH...]` (root INVARIANT 8)
|
||||
moves the old copies of adopted books whole into numbered folders of
|
||||
their own in `legacy/`, a list of where each came from written first.
|
||||
`ledger-store/tests/root.rs` (seven: a preview moves nothing; every byte
|
||||
moved and the list written; refused while the books lack its journal, a
|
||||
stored file, a vault record or the key, or when its head moved since the
|
||||
preview; refused while held open, for a link, a path named twice, inside
|
||||
the root or missing, and for a vault or key given as a plain path;
|
||||
what adoption left behind and records the books sealed anew go aside
|
||||
too; a registry rewritten is refused; a move cut short puts back what it
|
||||
moved), `ledger-cli/tests/open_while_held.rs` (from the command line).
|
||||
Three review rounds of data safety alone (12 findings, then 5, then 3
|
||||
minor; all fixed but one: a vault record the old journal never named, a
|
||||
crash between sealing and journaling, would be listed as the books'
|
||||
newer copy; nothing is lost, the old vault going aside whole; hardening
|
||||
for P7).
|
||||
|
||||
**Tests that mutation found, before the pause.** Pass 1 on slices 3 to 6
|
||||
(each crate's own tests, the viewer left out): `ledger-store` 385 mutants
|
||||
(44 missed), `ledger-package` 137 (38), `ledger-mcp` 497 (247),
|
||||
|
||||
Reference in new issue
Block a user