rcourtman
53faa4e46a
fix(unifiedresources): stop fabricating sightings and online stamps for never-seen resources
...
Ingest stamped every resource's SourceStatus "online" and replaced a zero
LastSeen with time.Now(), so a source that never delivered a resource
(synthesized offline PVE placeholders, never-polled instances) reported a
fresh sighting and a healthy source forever: markStaleLocked skips zero
LastSeen entries, so the stamp was permanently exempt from stale-marking.
That fabricated freshness fed monitor previous-state reads (the
resurrection loop mitigated in 8372a22c5 ), the frontend lastSeen display,
the monitored-systems ledger, and AI/agent context.
- ingest/mergeInto/IngestResources/presentation coalesce: stamp per-source
delivery status from the actual sighting ("unknown" when the source has
never delivered, "online" otherwise) and preserve zero LastSeen instead
of substituting ingest time.
- replaceRegistry: run MarkStale over the fully assembled registry. The
IngestSnapshot stale pass ran before record sources (TrueNAS, VMware)
were ingested, leaving them stamped "online" at any age.
- monitorLastSeenUnix: report 0 for never-seen instead of time.Now(), so
the frontend renders a dash rather than "just now".
- connected infrastructure: clamp zero LastSeen to 0 ms instead of the
negative UnixMilli of the zero time.
preserveOrExpireNodes keeps requiring a real online sighting for grace;
the registry no longer manufactures the timestamps that made that guard
necessary, so the 8372a22c5 failure mode is impossible by construction.
2026-06-11 10:23:49 +01:00
..
2026-03-18 16:06:30 +00:00
2026-05-25 21:38:43 +01:00
2026-05-25 21:38:43 +01:00
2025-11-26 23:44:36 +00:00
2025-10-20 15:13:37 +00:00
2026-02-07 22:05:55 +00:00
2026-03-18 16:06:30 +00:00
2026-06-10 11:37:39 +01:00
2026-06-02 14:52:47 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-18 14:54:53 +01:00
2026-06-11 10:23:49 +01:00
2025-12-01 17:33:36 +00:00
2026-03-18 16:06:30 +00:00
2025-12-12 17:51:43 +00:00
2025-12-12 18:13:17 +00:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-18 10:45:25 +01:00
2026-04-18 10:45:25 +01:00
2026-05-19 12:04:51 +01:00
2026-06-02 23:54:48 +01:00
2026-06-04 10:35:35 +01:00
2026-06-04 10:35:35 +01:00
2026-04-01 13:02:14 +01:00
2026-01-01 22:29:15 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2025-10-14 16:13:53 +00:00
2025-11-12 09:47:02 +00:00
2026-04-01 18:38:42 +01:00
2026-05-05 14:59:29 +01:00
2026-06-04 14:07:14 +01:00
2026-05-19 22:37:55 +01:00
2026-01-28 16:52:35 +00:00
2026-05-05 14:59:29 +01:00
2026-05-05 14:59:29 +01:00
2026-04-22 09:22:46 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-05-05 14:59:29 +01:00
2026-05-29 11:44:29 +01:00
2026-04-01 19:14:12 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 18:38:42 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-01-01 22:29:15 +00:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2025-11-26 23:44:36 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-05-25 09:25:03 +01:00
2026-05-25 09:25:03 +01:00
2026-04-11 22:46:34 +01:00
2026-02-04 19:49:52 +00:00
2026-02-04 19:49:52 +00:00
2026-04-12 09:41:29 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:00:48 +01:00
2026-06-09 21:42:21 +01:00
2026-06-04 09:54:23 +01:00
2025-12-01 21:18:33 +00:00
2025-11-27 09:16:53 +00:00
2026-02-04 19:35:19 +00:00
2026-05-15 21:27:39 +01:00
2026-05-15 21:27:39 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-03 12:29:37 +01:00
2026-06-10 21:25:02 +01:00
2026-06-10 21:25:02 +01:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-01-22 13:39:06 +00:00
2026-06-04 09:11:07 +01:00
2026-06-02 23:54:48 +01:00
2026-06-01 14:16:57 +01:00
2026-05-28 18:23:14 +01:00
2026-06-01 14:16:57 +01:00
2026-05-05 14:19:50 +01:00
2026-06-03 11:43:20 +01:00
2026-06-04 09:00:30 +01:00
2026-05-05 16:25:00 +01:00
2026-04-19 11:42:53 +01:00
2026-04-19 11:42:53 +01:00
2026-05-01 20:28:12 +01:00
2026-06-04 09:11:07 +01:00
2025-11-18 22:57:20 +00:00
2026-06-11 10:23:49 +01:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-05-13 22:18:47 +01:00
2025-10-20 15:13:38 +00:00
2026-05-28 14:42:43 +01:00
2026-06-10 21:25:02 +01:00
2026-06-09 21:42:21 +01:00
2026-04-01 15:29:11 +01:00
2026-04-01 10:04:30 +01:00
2026-05-01 20:28:12 +01:00
2026-04-11 14:51:10 +01:00
2026-06-09 21:42:21 +01:00
2026-06-09 21:42:21 +01:00
2026-05-25 20:35:58 +01:00
2026-05-13 17:05:03 +01:00
2026-01-04 10:29:40 +00:00
2026-05-13 17:05:03 +01:00
2026-05-08 19:53:03 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:36:30 +01:00
2026-04-01 11:51:19 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 10:27:59 +01:00
2026-06-10 16:19:24 +01:00
2026-06-10 09:19:51 +01:00
2026-04-01 19:31:50 +01:00
2026-05-13 19:00:02 +01:00
2026-04-01 19:14:12 +01:00
2026-04-01 11:51:19 +01:00
2026-06-10 16:20:35 +01:00
2026-06-10 16:20:35 +01:00
2026-05-05 14:59:29 +01:00
2026-04-01 20:41:56 +01:00
2026-04-21 14:46:23 +01:00
2026-04-21 14:46:23 +01:00
2026-06-04 14:07:14 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-06-04 14:07:14 +01:00
2026-06-11 09:47:42 +01:00
2026-06-11 10:23:49 +01:00
2026-01-04 10:29:40 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 09:00:30 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-06-04 10:27:59 +01:00
2026-05-17 18:45:24 +01:00
2026-01-05 23:34:33 +00:00
2026-03-18 16:06:30 +00:00
2026-06-09 21:42:21 +01:00
2026-03-18 16:06:30 +00:00
2026-06-11 10:23:49 +01:00
2026-05-05 12:59:59 +01:00
2026-04-11 22:46:34 +01:00
2026-06-10 11:37:39 +01:00
2026-04-01 10:04:30 +01:00
2026-06-04 14:07:14 +01:00
2026-03-18 16:06:30 +00:00
2026-04-11 22:46:34 +01:00
2026-02-07 22:05:55 +00:00
2026-01-14 12:26:18 +00:00
2026-04-23 20:38:33 +01:00
2026-04-23 20:38:33 +01:00
2026-06-10 09:19:51 +01:00
2026-06-10 09:19:51 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-04-01 23:33:43 +01:00
2026-03-18 16:06:30 +00:00
2026-03-26 22:58:27 +00:00
2026-03-31 15:42:16 +01:00
2026-05-28 11:39:30 +01:00
2026-05-28 11:39:30 +01:00
2025-12-02 17:21:48 +00:00
2026-05-06 10:35:34 +01:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-03-18 16:06:30 +00:00
2026-01-06 17:44:52 +00:00
2026-01-06 17:44:52 +00:00
2026-02-04 19:33:29 +00:00
2025-12-02 12:02:13 +00:00
2026-03-18 16:06:30 +00:00
2026-05-27 15:27:25 +01:00
2026-05-27 15:27:25 +01:00
2026-06-10 09:19:51 +01:00
2026-06-10 09:19:51 +01:00
2026-05-22 20:26:56 +01:00
2026-06-10 09:19:51 +01:00