chore: run live-sync heartbeat hourly

Operator decision at review: 15 min is aggressive for config churn; hourly
keeps the stale-window acceptable (<=1 h) with a fifth of the wakeups.
Timer unit, tier law, and failure-table wording aligned.
This commit is contained in:
Frank
2026-10-18 16:28:50 -07:00
parent e52aa6a4a3
commit 54f5555470
3 changed files with 4 additions and 5 deletions
+1 -1
View File
@@ -74,7 +74,7 @@ desktop GUIs. "Dirty tree" is judged by the writer:
| Machine live | `agent/memories/`, `agent/managed-skills/`, `agent/config.yml`, `agent/models.yml` | `scripts/live-sync.sh` heartbeat |
| Desktop live | `dotfiles/` | same heartbeat |
The heartbeat (systemd user timer, ~15 min) stages ONLY allowlisted tiers,
The heartbeat (systemd user timer, hourly) stages ONLY allowlisted tiers,
commits with hooks armed — the secret gate included — merges `origin/main`,
pushes, and reaps `wt/*` worktrees older than 7 days. Non-allowlist dirt is
never committed, only surfaced. Conflicts abort and alert (ntfy); it never
@@ -1,9 +1,9 @@
[Unit]
Description=command-center live-sync heartbeat every 15 minutes
Description=command-center live-sync heartbeat every hour
[Timer]
OnBootSec=5min
OnUnitActiveSec=15min
OnUnitActiveSec=1h
RandomizedDelaySec=3min
Persistent=true
+1 -2
View File
@@ -70,7 +70,6 @@ journalctl --user -u live-sync.service -n 20 # observe
| Event | Result |
|-------|--------|
| Harness mid-write | commits a valid snapshot; remainder lands next heartbeat |
| Gitea down | commit safe locally; push retries next tick (≤15 min stale window) |
| Same file edited on two boxes | real merge conflict → ntfy → human resolves (visible, not silent) |
| Gitea down | commit safe locally; push retries next tick (≤1 h stale window) |
| Feature branch checked out in main checkout | refuses + alerts; protects the never-end-off-main rule |
| Secret shape in machine-written content | hook blocks, changes stay staged, alert |