R-203 shipped: the app and its backup agree, and 'ok' means it — R-201 unblocked
gates / gates (push) Successful in 7s
gates / gates (push) Successful in 7s
This commit is contained in:
@@ -270,6 +270,36 @@ confirm the key exists in the credentials file; no unseal was performed on demo-
|
||||
|
||||
---
|
||||
|
||||
## 7b. UPDATE, same day — the blocker is FIXED and the drill is ready to resume
|
||||
|
||||
Controller **v0.197.0** shipped both halves of R-203:
|
||||
|
||||
- **the paths agree.** On demo-hp the live bind moved from `/mnt/sys_drive/userdata/media/books` to
|
||||
`/mnt/sys_drive/felhom-data/userdata/media/books` — the directory the capture set looks in. The
|
||||
capture log went from `0 mandatory path(s)` to **`1 mandatory path(s)`**.
|
||||
- **`ok` means it.** A run that cannot capture a MANDATORY directory now reports **`incomplete`**,
|
||||
names the app and the folders, and raises the operator digest — instead of `ok` with a warning
|
||||
beside it.
|
||||
|
||||
**And the sentinel is in the snapshot, listed by name:**
|
||||
|
||||
```
|
||||
$ restic ls -l latest --tag calibre-web
|
||||
-rw-r--r-- 1000 1000 181 2026-08-04 12:53:06 /mnt/sys_drive/felhom-data/userdata/media/books/DRILL-SENTINEL.txt
|
||||
```
|
||||
|
||||
sha256 **`643166269103a25cf41d34a26b75fd6ebba0a837bbcd7e0d2b5aba7106bcbe7c`** — byte-identical to §1,
|
||||
verified after the fix's migration moved the file to the corrected directory.
|
||||
|
||||
**One live check could NOT be reproduced, and is recorded rather than claimed.** Hiding the books
|
||||
directory to watch the `incomplete` verdict fire on hardware did not work: the running container's
|
||||
bind mount **recreated** the directory, so `os.Stat` succeeded and there was no gap. That is itself
|
||||
worth knowing — a bind-mounted directory cannot easily be "missing" while its app runs, so the
|
||||
mandatory-gap condition arises in practice when the path resolves somewhere the app never binds (the
|
||||
R-203 case), not when a live app's own directory vanishes. The verdict is proven by the run-level
|
||||
test, which drives the real `RunOffboxBackup` and asserts both `incomplete` and the operator signal.
|
||||
The fixture was restored and the sentinel re-verified at the same hash.
|
||||
|
||||
## 8. To resume the drill
|
||||
|
||||
1. **Fix or scope R-203.** Until the mandatory userdata path lands in the snapshot, no sentinel can
|
||||
|
||||
Reference in New Issue
Block a user