will.anderson
8392f44c45
self-review 2026-07-26: heartbeat wm_churn + wm_top0_wm; fix streak counting on empty id
...
- wm_churn: count of top-5 WM ids absent from previous beat — separates
'one stuck node' from 'whole WM frozen' without hand-correlating ISEs.
- wm_top0_wm: leader's weight; a frozen anchor reads as a constant here.
- Streak guard: before the runtime emitted id in wm_top JSON,
json_get(...,"id") was always empty and the streak incremented on
""=="" every beat — wm_top0_streak measured uptime, not fixation.
Empty id now resets the streak to 0.
2026-07-26 08:40:56 -05:00
..
2026-07-26 08:40:56 -05:00
2026-07-14 18:45:14 -05:00
2026-07-14 18:45:14 -05:00
2026-07-14 18:45:14 -05:00
2026-06-15 12:40:47 -05:00
2026-07-19 08:47:00 -05:00
2026-06-25 13:10:20 -05:00
2026-05-03 17:55:37 -05:00
2026-06-27 11:46:30 -05:00
2026-06-27 11:46:30 -05:00
2026-06-27 11:46:30 -05:00
2026-06-27 11:46:30 -05:00
2026-06-23 13:04:06 -05:00
2026-06-15 12:40:47 -05:00
2026-06-27 11:46:30 -05:00
2026-05-08 19:43:57 -05:00
2026-07-24 08:53:02 -05:00
2026-06-15 12:40:47 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-08 19:43:57 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-03 17:55:37 -05:00
2026-05-08 19:43:57 -05:00
2026-05-08 19:43:57 -05:00
2026-07-23 08:39:16 -05:00
2026-06-23 13:04:06 -05:00
2026-07-23 08:39:16 -05:00
2026-06-27 11:46:30 -05:00
2026-06-27 11:46:30 -05:00
2026-07-14 18:45:14 -05:00
2026-07-14 18:45:14 -05:00
2026-07-21 12:13:58 -05:00
2026-07-14 18:45:14 -05:00
2026-06-27 11:46:30 -05:00
2026-06-27 11:46:30 -05:00
2026-07-14 18:45:14 -05:00
2026-07-14 18:45:14 -05:00
2026-06-15 12:40:47 -05:00
2026-05-03 04:17:02 -05:00
2026-05-03 11:31:04 -05:00
2026-06-22 12:55:33 -05:00
2026-07-21 12:13:58 -05:00
2026-07-14 18:45:14 -05:00
2026-06-29 08:17:45 -05:00
2026-07-14 18:45:14 -05:00
2026-07-14 18:45:14 -05:00
2026-07-14 18:45:14 -05:00
2026-05-03 17:55:37 -05:00
2026-06-27 11:46:30 -05:00
2026-05-08 19:43:57 -05:00
2026-06-29 12:38:27 -05:00