mirror of
https://github.com/TZERO78/kopi-docka.git
synced 2026-06-19 07:37:12 +00:00
1d044b2220
- KopiaCommandError: replaces bare RuntimeError in _run(), carries returncode + stderr_tail (UTF-8 safe) - is_connected(force_refresh=True): bypasses 60s cache for pre-flight check; negative result also cached - BackendUnreachableError: new exception in backends/base.py (subclass of ConnectionError) - Pre-flight backend check in backup_unit() before container teardown; containers NOT stopped on failure - BackupErrorDetail dataclass in types.py; BackupMetadata.error_details persisted in JSON (backward-compat) - Verbose failure notifications: phase, exit code, stderr tail in fenced code block (Markdown-injection-safe) - Markdown body_format for all Apprise sends; services without Markdown degrade gracefully - send_connectivity_alert() and send_missed_backup_alert() added to NotificationManager - MissedBackupChecker: time-based overdue detection using MetadataReader; per-unit threshold overrides - Post-run missed-backup check after every backup_unit(); alert suppression via missed_state.json - Doctor section 8 "Backup Freshness": age per unit, OVERDUE units highlighted - Config: notifications.verbose, notifications.preflight_check, alerting.missed_backup.* - Config templates and examples updated; migration guide in INSTALLATION.md Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>