📬 KrĂŒmel Pull-Watcher — opuskatzes Briefkasten

Damit ein Handoff bei opuskatze (crumbdesktop) ankommt, ohne dass jemand die TĂŒr aufmacht.
Prinzip: pull-only. Der Habitat ist zugemauert (kein SSH, Dienste auf 127.0.0.1) — also
holt sich der Wald die Post, statt dass jemand reindrĂŒckt. Nichts wird je gepusht.

Was es tut

Ein systemd-user-Timer lĂ€uft alle 10 min → crew_pull_watcher.sh:
1. git pull --ff-only (zerstört nie lokale, ungepushte Arbeit — bei Konflikt: ĂŒbersprungen).
2. Findet seit dem letzten Lauf neue an opuskatze adressierte Dateien:
- Dateiname enthÀlt opuskatze (z. B. HANDOFF_SNAKE_opuskatze.md), oder
- liegt unter crew_inbox/opuskatze/
.
3. HĂ€ngt Titel + Pfad an den Briefkasten ~/.crumb/opuskatze-inbox.md (+ Desktop-Ping, falls
notify-send/terminal-notifier da ist).

opuskatzes SessionStart-Hook zeigt den Briefkasten beim Start → sie sieht neue Post sofort.

Einmalig aktivieren (auf crumbdesktop, als sysop)

REPO=~/Dokumente/repo/mondgeschichten            # <- wo das Repo hier liegt
chmod +x "$REPO/crew/crew_pull_watcher.sh"

mkdir -p ~/.config/systemd/user
cp "$REPO/crew/crew-pull-watcher.service" ~/.config/systemd/user/
cp "$REPO/crew/crew-pull-watcher.timer"   ~/.config/systemd/user/
# Falls das Repo NICHT unter ~/Dokumente/repo/mondgeschichten liegt:
#   ExecStart-Pfad in ~/.config/systemd/user/crew-pull-watcher.service anpassen.

systemctl --user daemon-reload
systemctl --user enable --now crew-pull-watcher.timer
systemctl --user list-timers | grep crew-pull-watcher

# Timer auch ohne aktive Login-Session (einmal sudo):
#   sudo loginctl enable-linger sysop

Erster Lauf setzt nur die Baseline (keine Alt-Post-Flut). Ab dann kommt jede neue an.

opuskatzes SessionStart-Hook (crumbdesktop, ~/.claude/settings.json)

{
  "hooks": {
    "SessionStart": [
      { "hooks": [ { "type": "command", "command": "cat ~/.crumb/opuskatze-inbox.md 2>/dev/null" } ] }
    ]
  }
}

Nach Erledigung leeren: : > ~/.crumb/opuskatze-inbox.md

Selbst-aktualisierend

Skript + Units liegen im Repo. Sobald der Watcher einmal lÀuft, zieht er auch seine eigenen
Updates per Pull — Änderungen an den Units erfordern nur systemctl --user daemon-reload.

FĂŒr eine andere Katze

CREW_WATCH_WHO=<name> setzen (Env im Service). Gleiches Muster, eigener Briefkasten
~/.crumb/<name>-inbox.md.