diff --git a/src/Agent/AutopilotMonitor.Agent.Core/Monitoring/Collectors/HelloDetector.cs b/src/Agent/AutopilotMonitor.Agent.Core/Monitoring/Collectors/HelloDetector.cs index 4a964c95..705dd629 100644 --- a/src/Agent/AutopilotMonitor.Agent.Core/Monitoring/Collectors/HelloDetector.cs +++ b/src/Agent/AutopilotMonitor.Agent.Core/Monitoring/Collectors/HelloDetector.cs @@ -376,12 +376,10 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Collectors if (!TrackedEventIds.Contains(eventId)) return; - var description = record.FormatDescription() ?? $"Event ID {eventId}"; ProcessHelloEvent( eventId, record.TimeCreated ?? DateTime.UtcNow, record.ProviderName ?? "", - description, isBackfill: false); } catch (Exception ex) @@ -390,7 +388,7 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Collectors } } - private void ProcessHelloEvent(int eventId, DateTime timestamp, string providerName, string description, bool isBackfill) + private void ProcessHelloEvent(int eventId, DateTime timestamp, string providerName, bool isBackfill) { string eventType; EventSeverity severity; @@ -448,11 +446,13 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Collectors return; } + // We only need the event ID and provider for tracking purposes. + // The full description can contain sensitive data (e.g. server responses with key IDs, UPNs, tokens). var data = new Dictionary { { "windowsEventId", eventId }, { "providerName", providerName ?? "" }, - { "description", description ?? "" } + { "description", "truncated" } }; if (isBackfill) @@ -851,7 +851,6 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Collectors DateTime latestTimestamp = DateTime.MinValue; int? latestEventId = null; string latestProvider = string.Empty; - string latestDescription = null; for (EventRecord record = reader.ReadEvent(); record != null; record = reader.ReadEvent()) { @@ -868,14 +867,13 @@ namespace AutopilotMonitor.Agent.Core.Monitoring.Collectors latestTimestamp = timestamp; latestEventId = eventId; latestProvider = record.ProviderName ?? ""; - latestDescription = record.FormatDescription() ?? $"Event ID {eventId}"; } } if (latestEventId.HasValue) { _logger.Info($"Backfill found recent Hello terminal event: EventID {latestEventId.Value} at {latestTimestamp:O}"); - ProcessHelloEvent(latestEventId.Value, latestTimestamp == DateTime.MinValue ? DateTime.UtcNow : latestTimestamp, latestProvider, latestDescription, isBackfill: true); + ProcessHelloEvent(latestEventId.Value, latestTimestamp == DateTime.MinValue ? DateTime.UtcNow : latestTimestamp, latestProvider, isBackfill: true); } else { diff --git a/src/Web/autopilot-monitor-web/app/changelog/page.tsx b/src/Web/autopilot-monitor-web/app/changelog/page.tsx index fe1844c9..cecac656 100644 --- a/src/Web/autopilot-monitor-web/app/changelog/page.tsx +++ b/src/Web/autopilot-monitor-web/app/changelog/page.tsx @@ -34,13 +34,26 @@ export default function ChangelogPage() {

+ {/* Known Issues */} +
+

Known Issues

+ +
+ {/* Entries — newest first */}
- 2026-02-26 + 2026-02-26 - 10:15 CET Architecture @@ -51,15 +64,7 @@ export default function ChangelogPage() {

The way live session events reach the dashboard timeline was fundamentally - reworked. Previously, SignalR pushed full event payloads directly into the - UI — which could cause silent gaps if a message was dropped or arrived - out of order. Events are now fetched directly from storage on each signal, - making Table Storage the single source of truth. The timeline always reflects - what is actually stored, ordering and completeness are guaranteed, and - phase grouping is computed at render time rather than at receipt time - (eliminating a race condition when session metadata wasn't yet available). - A 30-second catch-up fetch was also added as a safety net for sessions - with degraded SignalR connectivity. + reworked. This should make the timeline more reliable and accurate.

diff --git a/src/Web/autopilot-monitor-web/app/dashboard/page.tsx b/src/Web/autopilot-monitor-web/app/dashboard/page.tsx index a72081c5..8bdc0653 100644 --- a/src/Web/autopilot-monitor-web/app/dashboard/page.tsx +++ b/src/Web/autopilot-monitor-web/app/dashboard/page.tsx @@ -509,7 +509,7 @@ export default function Home() { href="/changelog" className="underline font-medium hover:text-blue-600 dark:hover:text-blue-200" > - Private Preview Changelog + Private Preview Changelog/Known Issues .{" "} Feedback or bug report?{" "}