rcourtman
5e588c0be1
feat(alerts): cut the stateful family over to the reducer core
...
Phase 2 continued. evaluateCanonicalStatefulAlert (health assessments,
posture thresholds, change thresholds — ZFS pool state, backup and
snapshot age, docker update-delay states) no longer reconstructs
previous state from the pending-since maps: the reducer core owns the
transition via the shared Match predicate, with the legacy maps kept as
read-only mirrors. The family keeps its occurrence-stamping semantics
(observation time or the caller's override such as a backup timestamp)
and its refire-without-new-history behavior, now driven by the core's
refire events.
Manual clears now record a resolved occurrence in the core (Forget
takes the clear time), matching the manager's recently-resolved
behavior, so a quick re-fire after a manual clear reactivates the same
occurrence instead of duplicating history — with the ack entering its
retention window. statefulPreviousState survives only until the last
mirror deletion.
2026-08-27 00:31:27 +01:00
..
2026-08-12 06:38:25 +01:00
2026-08-27 00:21:47 +01:00
2026-08-27 00:31:27 +01:00
2026-08-27 00:15:58 +01:00
2026-07-25 00:39:15 +01:00
2026-04-11 22:46:34 +01:00
2026-08-19 16:54:39 +01:00
2026-08-27 00:15:58 +01:00
2026-07-20 20:27:39 +01:00
2026-03-18 16:06:30 +00:00
2026-08-11 11:52:01 +01:00
2026-08-27 00:15:58 +01:00
2026-07-25 00:39:15 +01:00
2026-08-26 04:33:47 +01:00
2026-05-06 14:29:06 +01:00
2026-08-26 21:15:37 +01:00
2026-07-25 00:39:15 +01:00
2026-04-11 22:46:34 +01:00
2026-08-27 00:31:27 +01:00
2026-07-25 00:39:15 +01:00
2026-08-27 00:27:01 +01:00
2026-08-06 22:04:04 +01:00
2026-07-20 16:03:29 +01:00
2026-08-27 00:31:27 +01:00
2026-07-15 17:55:26 +01:00
2025-11-30 05:19:38 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-07-23 06:44:33 +01:00
2026-08-12 06:38:25 +01:00
2026-08-24 22:45:59 +01:00
2026-03-18 16:06:30 +00:00
2026-08-24 22:45:59 +01:00
2026-08-27 00:15:58 +01:00
2026-07-02 23:27:49 +01:00
2026-08-27 00:31:27 +01:00
2026-06-26 22:42:02 +01:00
2026-07-30 15:37:53 +01:00
2026-05-13 10:44:11 +01:00
2026-07-24 20:58:09 +01:00
2026-05-13 07:13:46 +01:00
2026-05-13 07:13:46 +01:00
2026-08-14 06:26:15 +01:00
2026-08-25 20:44:11 +01:00
2026-05-06 15:00:30 +01:00
2026-08-26 21:15:37 +01:00
2026-08-26 21:15:37 +01:00
2026-07-29 20:09:23 +01:00
2026-07-29 20:09:23 +01:00
2026-03-18 16:06:30 +00:00
2026-07-24 10:26:50 +01:00
2026-07-24 10:26:50 +01:00
2026-05-13 00:28:24 +01:00
2026-07-25 06:34:48 +01:00
2026-07-13 16:54:33 +01:00
2026-07-30 10:59:27 +01:00
2026-07-24 10:26:50 +01:00
2026-07-24 10:26:50 +01:00
2026-07-30 14:54:34 +01:00
2026-08-27 00:15:58 +01:00
2026-05-06 14:10:41 +01:00
2026-08-24 08:56:07 +01:00
2026-06-27 16:36:29 +01:00
2026-08-24 08:56:07 +01:00
2026-08-27 00:15:58 +01:00
2026-07-29 14:17:19 +01:00
2026-08-21 06:30:16 +01:00
2026-08-27 00:27:01 +01:00
2026-07-07 23:15:59 +01:00
2026-07-30 19:08:28 +01:00
2026-08-18 06:47:32 +01:00
2026-07-24 12:23:29 +01:00
2026-07-25 00:21:35 +01:00
2026-07-21 06:14:26 +01:00
2026-08-27 00:29:46 +01:00
2026-08-11 11:52:01 +01:00
2026-08-06 00:48:37 +01:00
2026-08-26 21:15:37 +01:00
2026-08-27 00:15:58 +01:00
2026-05-06 15:00:30 +01:00
2026-08-27 00:27:01 +01:00
2026-07-23 21:59:46 +01:00
2026-07-19 15:10:38 +01:00
2026-08-27 00:15:58 +01:00
2026-07-19 15:10:09 +01:00
2026-08-26 21:15:37 +01:00
2026-07-17 12:03:00 +01:00
2026-07-24 00:19:40 +01:00
2026-07-19 15:11:02 +01:00
2026-07-19 15:11:02 +01:00
2026-04-01 12:40:51 +01:00
2026-07-18 19:41:53 +01:00
2026-08-22 15:52:27 +01:00
2026-08-22 15:52:27 +01:00
2026-03-18 16:06:30 +00:00
2026-01-03 18:36:17 +00:00
2026-06-10 09:49:03 +01:00
2026-08-22 06:24:04 +01:00
2026-07-24 12:23:29 +01:00
2026-06-12 19:19:16 +01:00
2026-07-25 06:34:48 +01:00
2026-07-24 15:46:56 +01:00
2026-08-26 23:24:09 +01:00
2026-08-26 23:54:12 +01:00
2026-08-26 23:04:35 +01:00
2026-08-26 23:29:40 +01:00
2026-08-26 23:13:11 +01:00
2026-08-26 23:19:04 +01:00
2026-08-27 00:21:47 +01:00
2026-07-23 21:59:46 +01:00
2026-08-11 11:52:01 +01:00
2026-08-27 00:15:58 +01:00
2026-08-27 00:31:27 +01:00
2026-05-28 14:42:43 +01:00
2026-08-16 06:27:23 +01:00
2026-05-06 14:10:41 +01:00
2026-08-19 16:54:39 +01:00
2026-08-27 00:15:58 +01:00
2026-08-26 23:00:46 +01:00
2026-04-15 12:18:57 +01:00
2026-08-27 00:21:47 +01:00
2026-08-27 00:15:58 +01:00
2026-07-18 19:44:06 +01:00
2026-06-28 01:39:12 +01:00
2026-08-27 00:15:58 +01:00
2026-08-18 06:47:32 +01:00
2026-08-27 00:15:58 +01:00
2026-08-10 09:47:06 +01:00
2026-08-10 09:47:06 +01:00
2026-08-14 06:26:15 +01:00
2026-06-04 09:33:02 +01:00