Repository navigation
Codex Long Jobs v0.3.0
Highlights
- Add
cancel --name NAMEwith a durable request and synchronous terminal-state confirmation. - Stop the validated command process group with
SIGTERM, then escalate toSIGKILLafter a configurable grace period. - Persist
cancelledas 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
statusinstead of being silently omitted. status --jsonremains the machine-readable lifecycle and result interface. No redundantresultcommand was added.- Linux process-group validation now uses lightweight
/proc/PID/statchecks 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.