mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 12:42:38 +00:00
419d93a2d8
Addresses four review rounds on the enrollment-status reclassification (timeout != failure; new AwaitingUser/Incomplete states). Backend correctness: - UpdateSessionStatusAsync ETag force-fallback now mirrors the normal path: uses IsTerminalTransitionAllowed + admin-marked guard, stamps CompletedAt for Incomplete, and persists FailureReason/FailureSnapshotJson for Incomplete/AwaitingUser (not just Failed) so a contended write cannot regress a terminal or drop the classification reason/snapshot. - StoreSessionAsync CAS loop re-reads the terminal tuple in the fresh-read window and preserves a just-landed terminal (Succeeded/Failed/Incomplete) verbatim, so re-registration can no longer revert it via the Replace. - SessionGraceHours + AbsoluteMaxSessionHours now roundtrip through the tenant-config Store/Map pair (overrides were silently lost). - ResolveGraceHours clamps the assumed agent cap to >= the real runtime default (48h) until the agent honors the override, so a low override can never terminalize a still-running session early. - Incomplete now funnels through the terminal counter-reconcile seam, and the maintenance sweep re-reconciles after the synthetic session_timeout event (also fixes the pre-existing off-by-one on the Failed path). Web: - SessionInfoCard delegates its status pill to the shared SessionStatusBadge (removes a divergent local map; picks up AwaitingUser/Incomplete). - SessionTable search color map + status filter chips learn the new states. - useSessionEvents uses isTerminalStatus() instead of a hard-coded Succeeded/Failed check (no needless refetch on Incomplete). - DataManagementSection copy no longer says "Failed - Timed Out". Docs/comments: - Plan doc + TenantConfiguration comments corrected (+3h/51h buffer, and the timeout now reclassifies to AwaitingUser/Incomplete, not "Failed"). Tests: +ResolveGraceHours clamp case, +grace/abs-cap config roundtrip + legacy-row defaults. Full backend suite green (2712), web tsc green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>