feat(install): updates refresh systemd units; new installs run the newest release (#729)

Updates that move HEAD now install changed systemd units through a root-owned helper (/usr/local/sbin/ledmatrix-refresh-units, two literal sudo lines), with a backup restored on rollback; a refresh that fails part-way puts the old units back. Devices without the new sudo rule keep updating and are told to re-run the installer once. The one-shot installer now checks out the newest vX.Y.Z release (LEDMATRIX_CHANNEL=beta keeps main) and never moves an existing checkout backwards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Chuck
2026-10-03 13:09:53 -04:00
committed by GitHub
co-authored by Claude Opus 5.5
parent 515248b34e
commit f841fa36b6
24 changed files with 1974 additions and 29 deletions
+3
View File
@@ -603,6 +603,9 @@ class AutoUpdater:
'release': info.get('release') if new_head == info.get('upstream_head') else None,
'display_was_active': display_was_active,
'dependency_failures': list(core.get('dependency_failures') or []),
# The update installed new systemd units: a rollback puts the
# previous ones back (ledmatrix-refresh-units --restore).
'units_refreshed': (core.get('unit_refresh') or {}).get('status') == 'refreshed',
'created_at': self.clock(),
}