mirror of
https://github.com/okieselbach/AutopilotMonitor.git
synced 2026-10-24 12:42:38 +00:00
00f4cb1f26
A platform script that ran 10 s was shown as "1h 00m" (session 4377911b): its start line was self-anchored (+120 min) while its result line, re-read after an overwrite rewind and therefore never fresh, fell back to the agent's cached zone (+60 min), was rejected as ahead of the clock, and the duration was taken from the raw pair. The same shape fired script_timeout_suspected daily in one tenant on 2-9 s scripts read as 17 h. Fleet 2026-09-20..23: about 1 % of script durations, 28 of 28 inflated ones carrying derivedTimestamp. Agent: ScriptExecutionState binds the provenance of its start, result and exit lines (CmTraceLineProvenance, persisted); EmitScriptCompleted judges the pair - verified (both measured, or both assumed with the same offset from the same file), unverified, or suppressed with durationSuppressedReason (rejected-endpoint | offset-grid, CmTraceOffsetCalibrator.IsOnOffsetGrid) - and always emits durationProvenance plus startSourceOffset*. A held completion's sourceOffset* tags now describe its own result line; script_timeout_suspected only judges a measurable duration; the emitted-run marker is capped at the clock so a future-shifted result no longer swallows the next run's start. Web: the reducer applies the same rule to stored events from older agents, pairing a final with the latest script_started of its policy, and the panel shows "n/a" with the explanation where the run time would be. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>