Skip to content

Codex Long Jobs v0.3.0

Choose a tag to compare

@zycdev zycdev released this 24 Aug 11:23
· 15 commits to main since this release

Highlights

  • Add cancel --name NAME with a durable request and synchronous terminal-state confirmation.
  • Stop the validated command process group with SIGTERM, then escalate to SIGKILL after a configurable grace period.
  • Persist cancelled as a distinct terminal state with request, effectiveness, signal, exit, log, and delivery evidence.
  • Keep normal completion notification and original Codex TUI wake-up for cancelled jobs.
  • Preserve the actual success or failure result when a cancellation request loses the natural-completion race.

Reliability and compatibility

  • Cancellation remains functional after supervisor-only loss, and the supervisor can finalize cancellation if the worker dies during the request.
  • Prelaunch cancellation suppresses command launch.
  • Terminal cancellation is idempotent and does not rewrite job state.
  • Nonterminal jobs created before v0.3.0 are refused because they lack the required cancellation contract.
  • Unreadable records are surfaced by unfiltered status instead of being silently omitted.
  • status --json remains the machine-readable lifecycle and result interface. No redundant result command was added.
  • Linux process-group validation now uses lightweight /proc/PID/stat checks while retaining process-group and session identity protection.

Validation

  • 64 automated tests across lifecycle, failure, delivery, cancellation, and race behavior.
  • 83.29 percent combined branch coverage, above the 80 percent gate.
  • Ten consecutive stress-suite passes.
  • GitHub Actions passed on Python 3.10 through 3.14.
  • Real tmux-hosted Codex CLI acceptance confirmed process-group cancellation, pending delivery while the TUI was busy, one-attempt completion submission, and automatic wake-up of the owning Codex session.

See CHANGELOG.md for the complete change list.