chahinebrini
efca157969
fix(backend): device-mgmt cleanup + stats rejected fallback + realtime refresh
- devices: cleanupStaleDevices() purges phantoms >14d not bound; called from
GET /api/devices + register limit-check. Deterministic sort
(lastSeenAt, createdAt, id) so iPad+iPhone see identical order.
Merge-cutoff tightened 30d -> 7d.
- stats: rejected aggregates from notifications(type='domain_rejected')
via Math.max — admin reject cascade-deletes submission row.
- blocker.tsx: useDomainSubmissionRealtime triggers blockerStats.refresh()
directly (not stale-check only) so info-sheet shows fresh rejected count.
2026-06-01 02:23:27 +02:00
..
2026-05-25 07:11:47 +02:00
2026-05-18 06:23:08 +02:00
2026-05-19 18:04:14 +02:00
2026-05-06 07:13:43 +02:00
2026-06-01 02:23:27 +02:00
2026-05-30 11:18:32 +02:00
2026-05-31 01:37:11 +02:00
2026-05-30 01:09:47 +02:00
2026-05-26 00:46:44 +02:00
2026-05-17 23:48:25 +02:00
2026-05-30 01:06:06 +02:00
2026-05-30 01:06:06 +02:00
2026-05-11 16:23:02 +02:00
2026-06-01 02:23:27 +02:00
2026-05-06 07:13:43 +02:00
2026-05-06 07:13:43 +02:00
2026-05-06 07:13:43 +02:00
2026-05-06 07:13:43 +02:00
2026-05-06 07:13:43 +02:00
2026-05-28 16:07:05 +02:00
2026-05-28 15:13:21 +02:00
2026-05-18 07:16:18 +02:00
2026-05-06 07:13:43 +02:00
2026-05-17 15:52:53 +02:00
2026-05-22 18:40:28 +02:00
2026-05-18 07:16:18 +02:00
2026-05-17 20:09:53 +02:00
2026-05-26 00:46:44 +02:00
2026-05-06 07:13:43 +02:00
2026-05-06 07:13:43 +02:00
2026-05-18 03:45:17 +02:00
2026-05-06 07:13:43 +02:00
2026-05-06 07:13:43 +02:00
2026-05-17 20:51:11 +02:00
2026-05-06 07:13:43 +02:00
2026-05-11 16:23:02 +02:00
2026-05-14 22:05:35 +02:00
2026-05-30 08:16:45 +02:00