mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 20:53:06 +00:00
7e68f9d965
The 2026-07-08 timeout reclassification (Incomplete = terminal, non-failure) migrated SessionStats, FleetHealthStats and SessionStatusBuckets, but two reporting surfaces were overlooked: the live UsageMetricsService.SessionMetrics (both platform + tenant paths, feeding get_usage_metrics and the usage dashboards) and the persisted daily UsageMetricsSnapshot. Terminal Incomplete sessions were counted in Total but in no breakdown bucket, so Succeeded+Failed+InProgress no longer reconciled to Total and operators lost sight of those devices. - SessionMetrics + UsageMetricsSnapshot gain an Incomplete / SessionsIncomplete count, mirroring the migrated peers (Incomplete only, not AwaitingUser). - Snapshot column stored + mapped in TableStorageService.Metrics; legacy rows deserialize to 0 (no seed bump needed). - Success rate unchanged everywhere: denominator was already Succeeded+Failed, correctly excluding Incomplete/AwaitingUser. SLA paths verified already-correct (BuildSnapshot + breach evaluator receive terminal-filtered sessions). - Web: Incomplete card added to both usage views (slate, matches the badge). - MCP: query_raw_sessions status enum learns AwaitingUser/Incomplete so callers can filter by the new states. - Test: UsageMetricsServiceWindowTests pins the Incomplete bucket + 50% rate on the crcins 1/1/8 shape. Backend build clean, full Functions suite 2825 pass, web + MCP tsc clean. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>