Files
AutopilotMonitor/src/Shared
Oliver Kieselbach 4af0adb3ed fix(decision-core): parked-tripwire dwell, IME evidence upgrade rule, advisory anchor fix (M1, M2, L5, L8)
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>
2026-07-03 10:45:22 +02:00
..
2026-03-26 07:02:33 +01:00