Server-side alerting for Docker/container/stack health with Discord,
Slack, Teams, ntfy, Gotify, Telegram, and generic webhooks. Settings
tab, client cache, and backup/restore coverage; marked experimental.
Store theme, density, and other prefs in a versioned JSON cache file
(matching peers.json) instead of localStorage-only, with migration and
a localStorage mirror for FOUC and legacy readers.
Fleet builds a roster from configured peers so hosts stay visible when
they drop (online / reconnecting / failed / offline). Settings → Behavior
adds max reconnect tries (1–8 or unlimited, default 8) wired into
ConnectionManager, with Retry connect to redial after the budget is spent.
Lifecycle RPCs now use a 120s operation timeout, remove cleans up
stats/terminal/log streams then SIGKILLs before force-remove, and the
UI awaits the request instead of a fragile 30s wait race.
Replace exponential backoff and the 12-attempt cap with a fixed 5s
retry loop that keeps dialing after unexpected disconnects. Throttle
toasts so the UI is not spammed while the offline banner stays up.
Save configured connections to ~/.config/peardock/cache/peers.json (with localStorage migration), unwrap protomux REQUEST_ERROR causes for real messages, and quiet/dedupe background RPC failures so the notification tray is not flooded.