@@ -475,7 +443,7 @@ export default function DeviceDetailsCard({ events, latestAgentVersion, session
)}
- {/* Right Column: System, Autopilot Profile, Hardware */}
+ {/* Right Column: System, Autopilot Profile, Hardware, IME Tracker */}
{/* System */}
{(estimatedBootTime || agentStarted?.agentVersion || imeVersion || realmJoinInfo?.productVersion || aadJoinStatus?.joinType || deviceLocation?.country || deviceLocation?.Country || deviceLocation?.timezone || deviceLocation?.Timezone) && (
@@ -668,6 +636,38 @@ export default function DeviceDetailsCard({ events, latestAgentVersion, session
})}
)}
+
+ {/* IME log tracker health: queue depth + skip counters from the periodic snapshot,
+ session totals from the terminal ime_pattern_hits event. Skip counters are
+ expected to be 0 — any other value is a reason to look at the client log. */}
+ {(imeTracker || patternHits) && (
+
+ {imeTracker?.ime_files_tailed !== undefined && (
+
+ )}
+ {imeTracker?.ime_backlog_bytes !== undefined && (
+ 0 ? formatBytesCompact(Number(imeTracker.ime_backlog_bytes)) : "0 (caught up)"} />
+ )}
+ {(patternHits?.linesRead ?? imeTracker?.ime_lines_read) !== undefined && (
+
+ )}
+ {(patternHits?.entriesMatched ?? imeTracker?.ime_entries_matched) !== undefined && (
+
+ )}
+ {patternHits?.matchedPatterns !== undefined && patternHits?.patternCount !== undefined && (
+
+ )}
+ 0
+ ? `${imeSkipParts.join(", ")} — see ime_tracker_degraded`
+ : "none"}
+ />
+ {(patternHits?.unanchoredPatterns ?? imeTracker?.ime_unanchored_patterns) !== undefined && Number(patternHits?.unanchoredPatterns ?? imeTracker?.ime_unanchored_patterns) > 0 && (
+
+ )}
+
+ )}
)}