LastEventAt is the maximum AGENT-supplied event timestamp and therefore lives in the device clock frame. The silence sweep compared it against a server-derived cutoff, mixing two frames. Measured over 11,068 sessions: 26 carry a genuine CMTrace timezone skew on their IME-derived events, from -17 h to +1 h (a further 27 carry plain device-clock offsets). At -17 h a live agent looks silent the moment it starts and is marked Stalled with a customer-visible "Agent silent for 1020min"; at +1 h the sweep is blind for an hour. Adds SessionSummary.LastIngestAt, stamped from the server clock in IncrementSessionEventCountAsync — reaching that method IS contact from the agent, so it is written unconditionally rather than gated on latestEventTimestamp. The sweep's server-side filter now spans both frames (LastIngestAt lt X or LastEventAt lt X): filtering on LastIngestAt alone would silently drop every row written before the field existed, because Table Storage does not match a filter against a missing property. The authoritative decision moves into ServerFrameLastContact() (LastIngestAt ?? LastEventAt ?? StartedAt) and is applied in both stages — before the Stalled marker and in the stage-2 alive guard. Deliberately not mirrored into SessionsIndex: the sweep reads Sessions, and the index manifest is pinned bidirectionally by tests. shared-manifests.json + .generated.ts regenerated — SharedManifestParityTests is the drift brake and correctly went red on the new field. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
AutopilotMonitor
Advanced monitoring and troubleshooting solution for Windows Autopilot deployments. Gain full visibility into every enrollment session with a detailed event timeline, fleet health dashboards, and session reporting. Define custom analysis rules to automatically detect issues and gather rules to collect targeted evidence. Retrieve diagnostics packages on demand, configure agent settings like auto-reboot behavior and automatic timezone adjustment — all managed centrally from the web dashboard.
Availability
Autopilot Monitor is publicly available — the Community plan is free. Sign in with your work account at autopilotmonitor.com; new organizations complete a short activation step after first sign-in.
Overview
Autopilot Monitor provides real-time tracking, intelligent diagnostics, and automated troubleshooting for Windows Autopilot enrollment processes. It consists of:
- Bootstrap Script — PowerShell script deployed via Intune that starts monitoring early in the enrollment process
- Monitoring Agent — Lightweight .NET application that collects telemetry and evidence during enrollment
- Backend API — Azure Functions-based ingestion and processing pipeline
- Web Dashboard — Next.js application for real-time monitoring and fleet analytics
Architecture
For detailed information about the system architecture, components, and data flow, see Architecture Documentation.
Documentation
Full admin documentation is available at docs.autopilotmonitor.com
License
This project uses a split licensing model:
- MIT License — Agent (
src/Agent/) and Shared library (src/Shared/) — unrestricted use on end-user devices - AGPL-3.0 — Backend (
src/Backend/), Web Dashboard (src/Web/), and MCP Server (src/McpServer/) — server-side components remain open source
See LICENSE for full details.



