mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-25 13:10:13 +00:00
4af0adb3ed
Delta-review 2026-07-02 findings: - M1: session_parked_without_deadline evaluated the parked predicate on the very step that produced the state, so the healthy Classic window (HelloResolved -> AwaitingDesktop, no deadline, desktop seconds away) fired a spurious Warning AND consumed the one-shot, masking a real variant-4 park later in the run. The tripwire now only arms a 10-min dwell timer; it fires (and consumes the one-shot) only if the session is still parked when the dwell elapses. Steps that clear the parked condition cancel the pending arm; parked pass-throughs do not re-base it. Processor is now IDisposable (timer), disposed by the orchestrator. - L8 (rides along): the tripwire post moved off the ingress worker onto the timer thread — a full channel can no longer self-deadlock on it. - M2: ImeUserSessionCompletedUtc was set-once, so an early defaultuser0 completion permanently failed the AdvisoryCompletion conjunction and resolved genuinely-completed sessions as Failed. New rule: first post-AccountSetup observation wins (one upgrade of a pre-anchor stamp, then frozen). Pure function of (state, signal) — replay-safe. - L5: HandleAdvisoryCompletionDeadlineFired`s esp-exit anchor is presence-only now; the old >= AccountSetupEntered comparison rejected fires whose arming exit carried a backfilled source timestamp, re-opening the dead-end. deadlineStillArmed remains the stray-fire guard. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>