mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 20:53:06 +00:00
576fc2ff84
The 5h→terminal grace was a magic 72h. Anchor it to the agent instead: the 6h per-run brake emits enrollment_failed (→ Failed at ~6h), but the 48h absolute emergency break (AbsoluteMaxSessionHours) is SILENT to the backend — it writes a local marker, cleans up and exits with no terminal event. So a session only stays non-terminal past 48h when the agent hit that silent cap and is provably gone. Grace must therefore be >= the agent absolute cap (never mark Incomplete while the agent could still legitimately enroll) and only slightly beyond it: effectiveGrace = max(AbsoluteMaxSessionHours + 12h buffer, SessionGraceHours) = 60h default. - EnrollmentTimeoutClassifier.ResolveGraceHours (pure, tested): floors grace at agentCap + buffer; a SessionGraceHours override can only raise it. - TenantConfiguration.SessionGraceHours default 0 (= auto-derive); mirror AbsoluteMaxSessionHours so the floor follows a tenant override of the agent cap. - Sweep uses ResolveGraceHours instead of the hard-coded 72h. Follow-up noted: wire AbsoluteMaxSessionHours down into AgentConfigResponse so the agent and backend share one value. Functions.Tests: 2678 pass.