Checkpoint-run: resume long shell jobs after your connection drops Checkpoint-run, a new developer utility for resuming long shell jobs after connection drops, was released on 2026-08-18 and hardened through three rounds, adding step timeouts, retry with exponential backoff, and checksum-verified completion. The tool targets rural NZ broadband users, where connectivity issues are documented, and allows jobs to resume from the last completed step instead of restarting. It includes 60 tests and a GitHub Actions CI workflow. Checkpoint-and-resume runner for long multi-step jobs on flaky connections. New market 2026-08-18 round : not an AI wrapper, not a prompt pack, not a narration pack. Replacement product after the critical audit marked nz-swms-builder NO-GO false legal premise — see ../AUDIT-REPORT.md . This product makes no legal, safety, or regulatory claims : it is a purely functional developer utility. Hardened 2026-08-19, round 2 : step timeouts --timeout / --step-timeout , --continue-on-error , checksum-verified step completion --step-artifact , --dry-run preview, and a shell-execution safety banner. Hardened again 2026-08-19, round 3 : per-attempt retry with exponential backoff --retry N / --backoff , a failure cap for --continue-on-error --max-failures , per-step output capture --step-log / --logs-dir , and a GitHub Actions CI workflow .github/workflows/ci.yml . See the flags below. Rural NZ broadband is a documented crisis Federated Farmers: "rural connectivity crisis demands urgent action" — scoop.co.nz https://www.scoop.co.nz/stories/print.html?path=AK2509/S00830/rural-connectivity-crisis-demands-urgent-action.htm ; "Northland farmers losing time and money to poor internet" — ruralnewsgroup https://www.ruralnewsgroup.co.nz/rural-news/rural-general-news/northland-farmers-losing-money-poor-internet . On a dropped hotspot connection, long jobs LLM batch, video render, big download die mid-run and restart from zero. This machine's own AGENTS.md notes: "drops kill long API runs." Buyer: NZ rural/dev users running long jobs; any developer with flaky local networking. Value: split a long job into named steps id:command ; completed steps are persisted to a local JSON state file; re-run resumes where the job died instead of starting over. | Path | Purpose | |---|---| checkpoint runner/runner.py | Core: state file atomic writes , merge/resume logic, injectable shell runner, timeout watchdog, artifact checksums, retry/backoff loop, per-step log capture | checkpoint runner/cli.py | CLI entry point checkpoint-run | tests/test runner.py | 60 tests: completion, resume-skips-completed, failure handling, reset, force, determinism, CLI end-to-end, timeouts, continue-on-error, artifact checksums, dry-run, retry/backoff, max-failures, step logs | sample output/ | Example state files + run logs round 1 demo, round 2 hardening demo, round 3 retry/logs demo | cd checkpoint-run Run a 3-step job; if the hotspot drops mid-run, just re-run the same command. uv run python -m checkpoint runner.cli \ --job render-batch \ --state-dir . \ --step download:"curl -L -o model.bin https://example.com/model.bin" \ --step convert:"ffmpeg -i in.mov out.mp4" \ --step upload:"rsync -P out.mp4 backup:render/" Inspect progress / clear state uv run python -m checkpoint runner.cli --job render-batch --state-dir . --status uv run python -m checkpoint runner.cli --job render-batch --state-dir . --reset Preview what would run WITHOUT executing anything shell-safety check uv run python -m checkpoint runner.cli --job render-batch --state-dir . \ --step download:"curl -L -o model.bin URL" --step render:"ffmpeg -i in.mov out.mp4" --dry-run Per-step time budget a step exceeding it is recorded 'timeout' and stops the run uv run python -m checkpoint runner.cli --job render-batch --state-dir . \ --step download:"curl -L -o model.bin URL" --step render:"ffmpeg -i in.mov out.mp4" \ --timeout 3600 --step-timeout download:600 Keep running later steps even if one fails uv run python -m checkpoint runner.cli --job render-batch --state-dir . \ --step a:"cmd" --step b:"cmd2" --continue-on-error Checksum-verified completion: re-runs a 'done' step if its output is missing/changed uv run python -m checkpoint runner.cli --job render-batch --state-dir . \ --step render:"ffmpeg -i in.mov out.mp4" --step-artifact render:out.mp4 Retry a flaky step up to 2 extra times with exponential backoff uv run python -m checkpoint runner.cli --job render-batch --state-dir . \ --step download:"curl -L -o model.bin URL" --retry 2 --backoff 1.0 Stop after 2 recorded failures even with --continue-on-error uv run python -m checkpoint runner.cli --job render-batch --state-dir . \ --step a:"cmd" --step b:"cmd2" --continue-on-error --max-failures 2 Capture every step's stdout+stderr to logs/