From 6e668df5c1df4468070aa6cf90e8613c8b4ca59f Mon Sep 17 00:00:00 2001 From: Krzysztof kuhy Rudnicki Date: Sun, 30 Aug 2026 16:53:27 +0200 Subject: [PATCH] Note that uninstall.sh is load-bearing for install install.sh calls it as its last step, so renaming or deleting uninstall.sh breaks installing, not just removing. Easy to miss from either file. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_01PcdngP688mW6rJye3LRkSN --- AGENTS.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/AGENTS.md b/AGENTS.md index 2581b89..476abb7 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -184,6 +184,12 @@ place, and with the alarm cache gone it falls through to `sudo rtcwake … ; exec systemctl hibernate` — so `shutdown now` would silently stop being a poweroff, every day, forever. +`install.sh` calls `uninstall.sh --retired-only` as its last step, so +**`uninstall.sh` is load-bearing for installing**, not just for removing — +renaming or deleting it breaks a fresh install. That call is non-fatal and +gated on `sudo -n`: the cleanup needs root, and a hard failure there would +abort an install that had already placed the package and enabled the timer. + **`/etc/sudoers.d/wake-alarm` is deliberately left in place** even by a full uninstall: screen-locker's own `_wake_alarm.py:_schedule_rtcwake` still shells out to `sudo rtcwake`, and removing the entry here breaks a live feature in