Oliver Kieselbach 017c7ca1cd v2 single-rail 11: first-session-fixes PR 3 — phase tagging + Finalizing stage (Fixes 2+6)
Fix 6 — Finalizing pseudo-stage with ~5 s grace. New non-terminal
SessionStage.Finalizing between "both prerequisites resolved" and Completed
+ DeadlineNames.FinalizingGrace. HandleHelloResolvedV1 / HandleDesktopArrivedV1
/ HandleHelloSafetyDeadlineFired (desktop-already-arrived branch) now route
through a shared TransitionToFinalizing helper instead of jumping straight to
Completed — the helper arms the 5 s deadline and emits a phase_transition
declaration effect (Phase=FinalizingSetup). HandleFinalizingGraceDeadlineFired
transitions Finalizing → Completed + enrollment_complete. IsTerminal()
deliberately unchanged so DecisionStepProcessor.OnDecisionTerminalStage (and
therefore EnrollmentTerminationHandler) fires only on the real terminal, not
on Finalizing — giving the reducer-emitted phase_transition +
enrollment_complete headroom to reach the backend before spool drain.

Fix 2 — Sub-phase declarations AppsDevice / AppsUser. ImeLogTrackerAdapter
emits a phase_transition InformationalEvent on the first app activity in a
given ESP phase (DeviceSetup → AppsDevice, AccountSetup → AppsUser). Fire-once
per ESP phase, ImmediateUpload=true, respects feedback_phase_strategy (only
phase_transition / esp_phase_changed / agent_started may carry Phase != Unknown).
FinalizingSetup + unmapped ESP phases short-circuit — the reducer owns the
FinalizingSetup declaration (see Fix 6) and adapter mustn't duplicate.

Test harness race-safety. PostFixture in the integration fixture had a latent
race where ApproximateQueueLength==0 + "stepIndex > stepIndexBefore" could be
met while the actually-posted signal was still executing ApplyStep. Replaced
with authoritative LastAppliedSignalOrdinal >= signalLog.LastOrdinal watermark.
ReplayHarness + ClassifierAwareReplayHarness + PostFixture all auto-fire a
synthetic DeadlineFired:finalizing_grace at end-of-stream when the reducer is
parked in Finalizing — fixtures stay unchanged.

Tests: +12 new (6 DecisionCore FinalizingStageTests, 6 ImeLogTrackerAdapter
SubPhaseDeclarationTests). DecisionCore 139, Agent.V2.Core 612, Functions 727,
Web vitest 168 — all green. Web typecheck clean. Solution build 0/0.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 01:58:57 +02:00
2026-04-22 19:36:19 +02:00
2026-03-17 18:24:01 +01:00
2026-03-26 07:02:33 +01:00
2026-04-04 19:17:01 +02:00

Autopilot Monitor

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.

Private Preview

Autopilot Monitor is currently running as a Private Preview. Visit autopilotmonitor.com to request access and learn more.

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 documentation is available at autopilotmonitor.com/docs

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.

S
Description
Windows Autopilot & Intune enrollment monitoring: live session timelines, fleet health, diagnostics, and an MCP server for AI-assisted troubleshooting.
Readme AGPL-3.0 60 MiB
Languages
C# 72.7%
TypeScript 25.7%
PowerShell 1%
JavaScript 0.5%