v3.0.3 — dbrain login actually works, calmer alerts
A small maintenance release fixing a misleading recovery command and overnight alert spam. Upgrade: dbrain upgrade (or pull + upgrade.sh). No config changes, no breaking changes.
🐛 Fixes
dbrain login now actually restores a logged-out brain
When the interactive session lost auth, the bot told the admin to run dbrain login — but the command only ran claude setup-token and stopped. Auth is read only when the tmux session starts, so the live logged-out brain kept its stale auth and stayed logged out; dbrain restart didn't help either (KillMode=process deliberately keeps the brain alive across a bot restart). The command now also recreates both sessions (main + cron) so the bot rebuilds them with the fresh token on the next message/job, and pins CLAUDE_CONFIG_DIR to the brain's ($HOME/.claude) so the token lands where the session reads it.
Watchdog backs off persistent-fault alerts instead of hourly spam
A logged-out (or other persistent) fault re-alerted at a fixed 1-hour cooldown, so an overnight outage produced ~9 identical messages. The re-alert interval now doubles per repeat (1h → 2h → 4h … capped at 12h): an 8-hour outage sends 4 escalating reminders, not 9. Returning to a healthy state resets the back-off so the next incident alerts promptly.
Plugin manifest no longer advertises Todoist
v3.0 removed the Todoist integration; vault/.claude-plugin/plugin.json still listed it under integrations + keywords. Replaced with the built-in cron engine.
⚙️ Notes
- Full suite: 240 passing, ruff clean, no-
claude -pCI guard green. - The root cause behind both the login and (earlier) model/MCP gotchas is the same:
claudereads config and auth only at session creation, andKillMode=processsurvives a bot restart — so any login/restart without an explicittmux kill-sessionis a no-op for the live brain.dbrain loginnow does the kill for you.
Full changelog: v3.0.2...v3.0.3