Skip to content

v0.15.0 - Pipeline reliability and failure evidence

Choose a tag to compare

@ulmentflam ulmentflam released this 26 Sep 03:55
· 4 commits to main since this release
v0.15.0
6d3bcd1

Autosentry 0.15.0 makes unattended pipelines recoverable and leaves the evidence needed to explain a failure in your existing Codex or Claude conversation.

Pipeline control

  • Independent stage deadlines. The controller runs separately from each monitor, so a blocked monitor or healer cannot disable the deadline. Timeout returns exit 124, cancels owned work, records cleanup failures, and skips later stages.
  • Checked resume. autosentry run --resume starts at the first incomplete stage. --from-stage NAME reruns a named stage and its successors. Completed stages are skipped only when their recorded configuration matches; every invocation preserves its own history.
  • Launch preflight. autosentry run --check and autosentry doctor check executables, working directories, and declared environment and script dependencies using the child's effective PATH.
  • Restart limits. Persistent rolling rate limits complement the consecutive identical-failure guard. Verified fixes do not clear the rolling window.

Evidence for your agent

Each run archives stage logs, an event timeline, launch requirements, state snapshots, recovery attempts, and incident reports under .autosentry/runs/<run-id>/.

autosentry explain -o .autosentry/failure.md
autosentry explain --run-id <run-id> --json

Open the exported bundle in Codex or Claude and ask why the pipeline stopped. It cites source paths and timestamps, distinguishes observed stop reasons from root-cause hypotheses, and marks omitted evidence. Autosentry makes no LLM provider calls for this export. Redaction is best-effort; inspect exported logs before sharing outside your trusted tools.

Fixes

  • Fast replacement children with identical exit codes each trigger detection.
  • Incidents created in the same second keep distinct evidence folders.
  • Operator and recovery aborts return nonzero and prevent pipeline advancement.
  • Final process output is retained even when the detector queue fills.
  • iCloud checkouts keep their development virtualenv outside the synced tree.

Upgrade notes

  • Stage deadlines and rolling rate caps are opt-in. Configure process.max_stage_seconds, restart_policy.max_restarts_in_window, and restart_policy.restart_window_seconds; see the README's unattended-pipeline example.
  • max_identical_failures defaults to 5; set it to 0 to disable that guard.
  • Resume requires configuration fingerprints from this version. Older runs must start fresh. Resume does not verify output files or source-code identity.
  • Pipeline logs now live in per-run stage directories. autosentry watch follows them, and autosentry status shows the run ID and stop reason.
  • Docker and SLURM launch checks inspect the controller host, not remote images or compute nodes. Attached processes remain externally owned.

Validated with all 380 local tests, formatting, lint, type checks, and distribution checks.

Full changelog: v0.14.0...v0.15.0