Consolidate the four nightly *-update timers into one host-maintenance orchestrator #40
Labels
No labels
burndown-2026-06
coherence-core
consult
headless
interactive
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
coilyco-flight-deck/infrastructure#40
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally filed by @coilysiren on 2026-05-21T02:22:19Z - https://github.com/coilysiren/infrastructure/issues/214
Problem
kai-server runs four separate systemd timers for nightly host maintenance, hand-staggered 15 minutes apart so they do not collide on Homebrew's global update lock:
coilysiren-pull-all.timer- 02:45 - git pull sweep across~/projects/coilysiren/*coily-update.timer- 03:00 -brew update+brew upgraderepo-recall-update.timer- 03:15personal-dashboard-update.timer- 03:30The manual staggering is design debt. The spacing is bookkeeping that exists only because the units would otherwise fight over the brew lock, and it silently breaks if any single step runs long enough to overrun into the next slot.
Proposal
Replace the four timers with one
host-maintenance.timerdriving a single orchestrator script that runs the steps in sequence:coilysiren-pull-all.sh)brew updateoncebrew upgradeOne timer, no lock contention, no spacing bookkeeping. Steps run strictly in sequence so a slow step delays the rest instead of overlapping them. Per-step failures should be non-fatal to the sweep where that is already the behavior (pull-all skips dirty repos rather than aborting).
Out of scope
Changing what each step does. This is consolidation of the scheduling surface, not a behavior change.
Origin: surfaced while adding
brew upgradetocoily-update.sh(#213).Backlog burndown 2026-06-17: closing low-priority (P3/P4) to bring the open count to a manageable level. Nothing lost — reopen if this resurfaces. Batch tag:
burndown-2026-06.