feat(nano): long-running work — no bash timeout ceiling + anti-poll guidance (PR 18) - #897
Merged
Merged
Conversation
…-poll guidance, 600-turn runner default
The dominant failure class in tb21-nano-flash-max-2 (16 of 25 incorrect
tasks) is wall-clock death while still working, and the mechanism is
measurable: clawcodex bash's 2-minute default / 10-minute cap forces
every long build or training run into nohup-and-poll loops — 225
poll-pattern commands across the failed tasks, each poll a full
max-thinking model turn. compile-compcert burned 111 polls, 307 bash
calls, and died at the 300-turn adapter ceiling mid-build; caffe-cifar-10
(163 calls), train-fasttext (67), make-mips-interpreter (116) show the
same signature. pi's bash has no default timeout and pays zero turns for
a 25-minute make.
Nano now matches that contract:
* no default timeout (24h supervision deadline — the abort signal and
the task wall-clock remain the backstops; _run_supervised still polls
abort continuously) and no 10-minute cap on explicit timeouts; the
1000ms floor stays; stock behavior byte-identical (nano-gated at the
resolution site)
* Bash nano doc states the contract; one prompt guideline encodes the
general practice ('run long builds/training as ONE blocking command,
tee to a log — never nohup-and-poll')
* runner default --ak max_turns=600 (NANO_MAX_TURNS to override) so an
artificial turn ceiling cannot kill a marathon task that is working
5 new tests (nano accepts >cap timeouts, stock still rejects, defaults
both ways, floor kept); 70 nano + 125 bash regression tests pass.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
agentforce314
added a commit
that referenced
this pull request
Aug 16, 2026
…bash-no-timeout"" This reverts commit b21a6ba.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
16/25 nano-v2 failures were wall-clock kills, driven measurably by bash's 2-min default/10-min cap forcing nohup-and-poll loops (225 poll commands across failures; compile-compcert: 111 polls, died at the 300-turn ceiling mid-build). Nano now runs commands with no default timeout (abort + task wall-clock are the backstops), uncaps explicit timeouts, documents the contract, adds one anti-poll guideline, and raises the runner's turn ceiling to 600. Stock bash byte-identical. 70 nano + 125 bash tests pass.
🤖 Generated with Claude Code