From b353fa90753044b79bd6cf7b8c8abc3fbb6d9a35 Mon Sep 17 00:00:00 2001 From: Frank Date: Sun, 18 Oct 2026 17:23:58 -0700 Subject: [PATCH] revert(live-sync): drop path-activation unit Frank veto: DirectoryNotEmpty re-fires on every file event (GUI writes, wallpaper shuffle) un-debounced -> hundreds of heartbeat spawns/day. The sweep is cheap (57 ms CPU) but the trigger design was event spam. Exposure-window fix is an open design question; timer unchanged. --- .../.config/systemd/user/live-sync.path | 13 ------------- omp-docs/tools/live-sync.md | 8 -------- 2 files changed, 21 deletions(-) delete mode 100644 dotfiles/systemd-user/.config/systemd/user/live-sync.path diff --git a/dotfiles/systemd-user/.config/systemd/user/live-sync.path b/dotfiles/systemd-user/.config/systemd/user/live-sync.path deleted file mode 100644 index e1172bd..0000000 --- a/dotfiles/systemd-user/.config/systemd/user/live-sync.path +++ /dev/null @@ -1,13 +0,0 @@ -[Unit] -Description=Fire the live-sync heartbeat within seconds of a dotfiles-tier write - -[Path] -# GUI writes (noctalia settings.toml, niri cfg) land in the repo via the -# dotfiles symlinks; this directory watch makes "GUI edit -> durable commit" -# sub-second instead of up to one heartbeat interval. DirectoryNotEmpty fires -# while the dir holds any file, so the unit re-triggers on every modification -# (the empty-dir edge case is irrelevant here — dotfiles is never empty). -DirectoryNotEmpty=%h/.omp/dotfiles - -[Install] -WantedBy=paths.target diff --git a/omp-docs/tools/live-sync.md b/omp-docs/tools/live-sync.md index c3129ab..5d66bb3 100644 --- a/omp-docs/tools/live-sync.md +++ b/omp-docs/tools/live-sync.md @@ -26,13 +26,6 @@ because the dirty tree collided with incoming work. machine's own writes on a schedule. Tier law (which paths it may touch) lives in [AGENTS.md](../../AGENTS.md) § Live-sync tiers. -`live-sync.path` (`DirectoryNotEmpty` on `dotfiles/`) activates the same -service within seconds of any GUI dotfiles write; `live-sync.timer` remains -the hourly catch-all for the machine tiers the path unit does not watch. -The trigger gap between a GUI edit and its commit is what let a 2026-10-18 -trunk-sync stash destroy a month of uncommitted bar layout — a timer-only -heartbeat leaves up to 59 minutes of exposure. - ## Contract (black-box) Run = one pass: flock → branch guard (`main` only) → stage allowlisted dirty @@ -68,7 +61,6 @@ with the usual dotfiles chain: ```bash systemctl --user enable --now live-sync.timer # after the unit is linked -systemctl --user enable --now live-sync.path # sub-second dotfiles trigger systemctl --user start live-sync.service # one manual heartbeat journalctl --user -u live-sync.service -n 20 # observe ```