Problem
watch_error fires once on first fetch failure and is then silent until recovery. If a watch stays down permanently (site gone, domain expired), the user receives one notification and then silence. There is no mechanism to re-alert after a configurable period.
Proposed approach
Add a last_error_notified_at timestamp to Watch (nullable). In check_watch:
- On fetch failure: if
health_status is already ERROR and last_error_notified_at is older than the re-notify interval, fire watch_error again and update the timestamp
- On recovery: clear
last_error_notified_at
Re-notify interval could be per-watch via schedule_config (e.g. error_renotify_interval: "24h") with a system default fallback.
Acceptance criteria
Problem
watch_errorfires once on first fetch failure and is then silent until recovery. If a watch stays down permanently (site gone, domain expired), the user receives one notification and then silence. There is no mechanism to re-alert after a configurable period.Proposed approach
Add a
last_error_notified_attimestamp toWatch(nullable). Incheck_watch:health_statusis alreadyERRORandlast_error_notified_atis older than the re-notify interval, firewatch_erroragain and update the timestamplast_error_notified_atRe-notify interval could be per-watch via
schedule_config(e.g.error_renotify_interval: "24h") with a system default fallback.Acceptance criteria