mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 12:42:38 +00:00
aa747d4a35
Completes the composition split: EspAndHelloTracker is now a thin coordinator
(~290 LOC) that forwards events between four focused sub-trackers:
- HelloTracker (820 LOC, previously extracted)
- ModernDeploymentTracker (480 LOC, previously extracted)
- ShellCoreTracker (325 LOC, NEW)
- ProvisioningStatusTracker (650 LOC, NEW)
ShellCoreTracker owns Shell-Core 62404/62407 handling, ESP-exit + WhiteGlove
fire-once guards, failure classification + backfill. Cross-notifies HelloTracker
on Hello wizard start and ESP exit. Core processing extracted to ProcessEvent
with primitive inputs so tests drive it without EventLogWatcher.
ProvisioningStatusTracker owns registry polling (RegNotifyChangeKeyValue),
category/subcategory parsing for both flat + nested JSON formats, subcategory
transition detection with noise filtering, categorySucceeded resolution,
DeviceSetup fallback timer (5s recheck after 30s for Win 25H2/26200 builds
that never set the boolean), and the public snapshot APIs.
Coordinator's public API (events, properties, methods) preserved byte-for-byte
for CollectorCoordinator + EnrollmentTracker — no integration changes required.
Adds 50 xUnit tests:
- ShellCoreTrackerTests (20): Hello wizard start notification, WhiteGlove
fire-once, all 6 failure keywords, ESP exit flow, WhiteGlove-vs-Exiting
regex precedence, backfill dedup semantics.
- ProvisioningStatusTrackerTests (30): first-seen / resolved / failure paths,
flat + nested subcategory formats, state inference, snapshot APIs,
noise-filtering of notStarted→in_progress transitions, progression to
succeeded as a transition event, JSON helper edge cases.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>