77e42716603bea1128b6d297347f988253716585
Root cause of the R.12.22 mkdir going unnoticed was never pinned down -- kernel-level inotifywait on the exact same directory caught the same mkdir instantly, ruling out mount/fs issues, but watchdog's own internal bookkeeping missed it with zero log line. Rather than keep chasing a specific inotify failure mode, make the daemon resilient regardless of cause: a reconcile() sweep walks the whole /data and /vault tree every 3 minutes (plus once at startup) and calls the same idempotent handle_data_created/handle_vault_created used for live events. Both are check-target-state-first by construction, so this is a no-op on an already-synced tree and only acts on genuine misses. Does not attempt rename reconstruction -- a missed rename looks identical to a delete+create after the fact, which is genuinely ambiguous. Live on_moved handling remains the only rename path; reconcile's job is strictly to guarantee creates are never lost.
Description
vault CLI + Librarian tooling for Ryans R/J/F/I Obsidian vault
262 KiB
Languages
Python
96.4%
Nix
2.3%
Shell
1.3%