docs: v0.75.0 REPORT/CONTEXT — userdata mountpoint gate + boot-ordering design note + live C6 proof
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+22
@@ -7,6 +7,28 @@
|
||||
>
|
||||
> Ask Claude Code: "Please update CONTEXT.md with what we did today"
|
||||
|
||||
Last updated: 2026-06-22 (v0.75.0 — gate userdata MkdirAll on a live mountpoint)
|
||||
|
||||
> **2026-06-22 — v0.75.0 (deployed on 9201): userdata MkdirAll gated on a live mountpoint.**
|
||||
> Both `MkdirAll`-into-`<drive>/userdata` sites — the deploy belt (`stacks.ensureUserdataMounts`) and
|
||||
> the FileBrowser sync (`web.syncFileBrowserMounts`) — now skip when an **external** drive root (under
|
||||
> `StableParentDir=/mnt/felhom-drives`, `!= sysDataPath`) is **not a live mountpoint** (`system.IsMountPoint`).
|
||||
> Closes the campaign-#2 hazard where a drive-absent window produced `mkdir …/userdata: permission denied`
|
||||
> + transient `Created` flapping AND could write app data onto the guest **rootfs** (shadowed when the
|
||||
> drive returns). The app is held by `planDriveGates` instead. System/local path is never gated. New
|
||||
> `Manager.isMountPoint` seam + pure `web.skipFileBrowserPath` helper for tests. Live-proven via a C6
|
||||
> re-run: 0 permission-denied, 0 shadow dirs on the rootfs, apps recover on reconnect.
|
||||
>
|
||||
> **Boot-ordering design note (NOT implemented — decide separately):** the *boot-time* `mkdir …
|
||||
> permission denied` is a different cause — **docker's** boot-restore auto-starts drive-backed
|
||||
> containers (`restart: unless-stopped`) before the agent mounts the drives, so docker (not the belt)
|
||||
> tries to create the bind source; `planDriveGates` recovers them after mount convergence (why a reboot
|
||||
> ends healthy). Options: (A) accept + suppress (apps self-heal; lowest risk; maybe downgrade the
|
||||
> boot-window log level) — recommended now; (B) drive-backed app containers don't docker-auto-start at
|
||||
> boot (restart policy `no`/`on-failure`) so the controller's gate is the sole starter after mounts
|
||||
> converge — cleaner but bigger (must cover crash-restart too). See
|
||||
> `felhom.eu/documentation/tests/test-campaign-2-finding1-recovery-diagnosis.md` (boot-ordering observation).
|
||||
|
||||
Last updated: 2026-06-22 (v0.74.0 — controller→agent connection-leak fix)
|
||||
|
||||
> **2026-06-22 — v0.74.0 (deployed on demo guest 9201): fixed the controller→agent connection leak.**
|
||||
|
||||
Reference in New Issue
Block a user