qwen-code splits retry-from-history hardening into four checkpoint reliability fixes
qqqys · ghdev · 2026-09-20
QwenLM/qwen-code issue #12287 splits the hardening work out of PR #12190 (retry-from-history), which had ballooned from 1000 to 1900 lines across six autofix rounds and started touching the runner's resume semantics, checkpoint schema, and the daemon's untrusted-workspace boundary.
Four fixes are tracked:
- Make the run checkpoint authoritative: the checkpoint write is deliberately un-awaited, but the retry gate treats it as proof another process is running; the write must be awaited and a failed write must refuse the start.
- Writer identity across pid recycling: process.kill(pid, 0) misreads recycled pids as alive; recording the process start time (Linux /proc/<pid>/stat field 22) makes the check exact.
- Resumes should not restate args: the settled snapshot can claim a run had no args when it did; the prior attempt's args projection should carry forward.
- Distinguish 'args never recorded' from 'args omitted': pre-#12159 snapshots carry neither field, and the daemon needs to decide whether to refuse retries.
A detailed engineering discussion of agent-workflow checkpoint and concurrency semantics.
More from coding & agent
- 70 hands-on cybersecurity projects with full source code — tom_doerr · 2026-09-21
- Dev compares coding models building a coop game: V4.1 outshines Astra's 'pathetic' default taste — teortaxesTex · 2026-09-21
- 'Just 3 lines of code' backfires: dev argues tools should expose complexity, not hide it — willcb · 2026-09-21
- TypeSafe's Jev returns typed decisions with probabilities, not text — here's where it fits in agent loops — prakersh · 2026-09-21
- Jev Engineering gives agents a decision brain, 193x faster and 444x cheaper in tests — agihouse_org · 2026-09-21
- Dev Argues PAW Shouldn't Hide Its Complexity, Points to DSPy as the Better Playbook — willcb · 2026-09-21