Adds 3 fields to mail_connections so UI can distinguish between "connection alive but no new mail" vs "connection dead" vs "auth-failed": - last_connect_error — text of last IMAP error (auth-fail, connect-fail) - last_connect_error_at — timestamp of error - last_idle_heartbeat_at — updated every 2min by NOOP-success in daemon Daemon (backend/imap-idle/index.mjs): - updateConnectionError() / clearConnectionError() / updateIdleHeartbeat() SQL helpers - logError now uses err.responseText (shows "AUTHENTICATIONFAILED" instead of generic "Command failed") - clearError on connect() success - updateError on connect() catch - updateHeartbeat in NOOP-success-path (every 2min) API (status.get.ts): returns the 3 new fields per account. Migration: ALTER TABLE rebreak.mail_connections ADD COLUMN ... (idempotent). UI-side (in flight, separate task): MailAccountCard renders auth-error banner when lastConnectError != null + heartbeat-based "live" indicator. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Description
Self-hosted mirror of rebreak monorepo
Languages
TypeScript
68%
Vue
7.9%
Swift
7.7%
Shell
4.2%
JavaScript
3.1%
Other
8.9%