Skip to content
C.W.K.
Lesson 03 of 05 · published

Seal, Adopt, Move

~16 min · cutover, migration, verification, load-testing

Level 0Loose Note
0 XP0/40 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete

Step 3: Check, Then Drill

On the Pippa machine, cutover check reported the old store ready with no blocker: 481 notes, 4 attachments, 25 MB. Then a load drill ran on a scratch copy of the real vault, never on the vault itself: 141 writes acknowledged and none missing from history; a burst of 12 concurrent writes to one note that landed 1 and refused 11 as conflicts; git fsck clean; write latency p50 0.29 s, p95 0.40 s, with one outlier at 6.5 s. The drill's job was not to be fast. It was to show that under contention the new store loses nothing and lies about nothing.

Step 4: Seal and Adopt, in Two Seconds

At 13:39:38 KST the old store was sealed, at generation 3, by Pippa on Dad's word. Sealing (track 3) refuses every write and returns only after the writes in flight have finished, so nothing could land behind it. A snapshot was taken and verified. Then the new store adopted the vault: all 481 notes and 4 attachments in one baseline commit, with both stores' manifests equal. The whole step took two seconds.

"Adopt" is a precise word here. The baseline commit carries one adopt revision per note, preserving each note's bytes exactly and inventing no earlier history. The new store does not pretend to know what happened to a note before it existed; its history starts honestly at the import.

Step 5: Prove It Before Pointing at It

The pointer still named the old store, so no ordinary reader could see the new one yet. To prove identity on the real new store before moving anyone onto it, the probed processes alone read a copy of the record saying delta. Identity loaded and validated on the canonical Mac, and, through Delta, on the workbench. The rendered bundle file was the very same file the old store rendered, pippa-bff102d2e7de.md: byte-identical identity, named by its own hash, from a completely different storage implementation. The probe passed for the harnesses that could run on each Mac.

Step 6: The Move

At 13:42:29 KST, Firelink commit 51fb9d0 moved the pointer to generation 4, backend delta. By 13:43:10, all eight managed Macs were loading identity from the Delta store, validated, with the same bundle. Writes had been refused for about three minutes in total, from the seal to the move. Reads were never sealed: a seal stops writes, not reads, so sessions kept loading identity throughout.

Steps 7 and 8: Verify, Then Probe Everything

cutover verify compared the new store with the old one note by note (identical), reported health ok and a clean git fsck. The canary ran on the new store and came back green, all ten steps at the time. Then the full probe matrix: eight Macs, 69 rows. Fifteen passed. Forty-six could not start, each with a named cause (the harness not installed or not signed in on that Mac), which is a fact about the fleet, not about the vault. The WebUI passed on a second run that included it. Grok on the Pippa machine failed once on an answer cut off after its first sentence and passed on a repeat. Cursor on the workbench was the baseline's known red; Cursor on the MacBook, never probed before, reported that its environment rejected the bootstrap command, while the client itself loaded identity on that Mac. Every one of those lines is in the log, the reds included.

Code

The cutover, compressed (times KST, 2026-11-10)·text
13:3x  step 0  code + record on all 8 managed Macs, each proven
       step 1  pointer gen 3: stores.delta.tree = vault
       step 2  14 in-process consumers restarted, one at a time, Coop last
       step 3  cutover check: 481 notes, 4 attachments, 25 MB; drill on a scratch copy
13:39:38 step 4  old store sealed; snapshot verified; adopt: 1 commit, manifests equal (2 s)
       step 5  identity validated on the new store; bundle pippa-bff102d2e7de.md (identical)
13:42:29 step 6  pointer gen 4, backend delta (Firelink 51fb9d0)
13:43:10         all 8 Macs load identity from Delta, validated
       step 7  cutover verify: note by note equal, health ok, git fsck ok, canary green
       step 8  probe matrix: 8 Macs, 69 rows: 15 pass, 46 could not start (named causes);
               the rest read by hand: a retried pass, a baseline red, a new Mac's refusal
The verbs behind the steps (shape)·bash
soul-vault cutover check        # ready? blockers? note count and size
soul-vault cutover drill        # load drill on a disposable store (never the real one)
soul-vault seal --why "pointer transition to delta" ...   # Dad's step
soul-vault cutover verify       # then: store equals source note by note, git fsck
                                # now (source retired): checks the Delta store alone
soul-vault canary               # rare paths on the live pointer
soul-vault probe --macs <all> --surfaces <all>
# (after forward-only, the completed check/snapshot/adopt commands refuse by name)

External links

Exercise

Write the cutover runbook for moving a store of yours: a readiness check, a load drill on a disposable copy with a contention burst, a seal that waits for in-flight writes, an adopt that preserves bytes and invents no history, a proof on the new store before any reader points at it, a one-field switch, a note-by-note verify, and a behaviour probe everywhere. For each step write the evidence you will record, including the failures you expect to see and will keep.
Hint
Decide in advance which reds are facts about the environment (a tool not installed) and which are facts about your change. Writing both down, with causes, is what makes the final report trustworthy.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign in — Please sign in to comment.

No comments yet — be the first.