towerops/config
Graham McIntire fd3c9691f2 feat(insights): auto-resolve stale insights after 7 days
If a rule keeps re-firing the underlying condition, the dedup query
suppresses duplicate inserts but `inserted_at` of the live row stays
old — so a real 6-month-old issue and a one-off blip both linger
forever. Auto-resolving any active insight older than 7 days clears
the dashboard. Still-real issues will be re-created by the next rule
pass (dedup only checks `status: "active"`), so the operator sees
fresh evidence rather than stale text.

- Towerops.Workers.InsightExpiryWorker (queue: :maintenance) flips
  `status` to "resolved" on rows where `inserted_at < now - 7d`.
- Window is configurable via `:max_age_days` for ops who want a
  different cadence per env.
- Oban cron: 04:00 UTC nightly, after the 02:00 rule pass and 03:00
  LLM enrichment.
2026-05-10 13:06:35 -05:00
..
config.exs feat(metrics): expose Prometheus /metrics via PromEx on :9568 2026-05-08 10:25:25 -05:00
dev.exs feat: add /coverage RF prediction feature scaffold 2026-05-06 13:44:14 -05:00
prod.exs feat(coverage): write rasters to NFS-backed dir, serve via dedicated static plug 2026-05-07 07:38:05 -05:00
runtime.exs feat(insights): auto-resolve stale insights after 7 days 2026-05-10 13:06:35 -05:00
test.exs test: in-process Redis fake instead of skipping Redis-backed tests 2026-05-10 11:32:50 -05:00