c212099738
Independent Proxmox-host backstop to the in-app dream budget: a systemd timer runs every ~2 min and stops lyra-brain if the MI50 is busy >=1hr continuously OR junction >=97C for ~6 min, then pings Brian via ntfy. Trips on duration only after a full hour so a legit ~40-min manual workload runs untouched. GPU temp/use read from host rocm-smi; stop via 'pct exec 202 -- docker stop'. Parsing + duration/temp decision logic dry-run-verified locally against real rocm-smi output format (4 scenarios). NOT yet installed/live-verified — card is off and Brian's away; install + trip-test per deploy/mi50-watchdog/README.md when it's back. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_015yrEb5qpPGv2FjyxrB7LLk
Deploy
Dream cycle (lyra-dream.service)
Lyra's unattended inner loop. Runs lyra-dream --loop 1800 so she consolidates
memory and reflects every 30 min between conversations. Installed as a
systemd user service on lyra-cortex (10.0.0.41), running as serversdown
— no root needed to manage it.
Install / update
cp deploy/lyra-dream.service ~/.config/systemd/user/lyra-dream.service
systemctl --user daemon-reload
systemctl --user enable --now lyra-dream.service
Persist across reboot / logout (one-time, needs sudo)
A user service stops when the user logs out and doesn't start at boot until login — unless lingering is enabled:
sudo loginctl enable-linger serversdown
Operate
systemctl --user status lyra-dream.service # is she ticking?
journalctl --user -u lyra-dream.service -f # watch her think (logbus -> stderr)
systemctl --user restart lyra-dream.service # after a code change
systemctl --user stop lyra-dream.service # quiet her down
Tunables live in lyra/dream.py (drive thresholds, curiosity gains) and the
--loop interval in the unit's ExecStart. The consolidation backend follows
SUMMARY_BACKEND in .env (cloud gpt-4o-mini for bulk; the MI50 is too slow
for the summarization backfill).