Skip to content

feat: add cost and timeout limits to headless runs - #25

Merged
wowi42 merged 16 commits into
mainfrom
feat/headless-run-limits
Sep 29, 2026
Merged

wowi42 merged 16 commits into
mainfrom
feat/headless-run-limits

Conversation

@Mouhand-Kaddo

@Mouhand-Kaddo Mouhand-Kaddo commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Add --max-cost and --timeout to single-prompt headless runs. Keep max turns at exit 3 and reserve provider codes 4–9; context overflow now exits 10, local cost limit or unknown spend exits 11, and execution timeout exits 12.

All model calls share cost admission, including workers, subagents, compaction, learning, reviews, and retries. Unknown prices or spend close admission. Already admitted calls can exceed the threshold. The timeout covers MCP connection and active execution; synchronous startup and cleanup remain outside its deadline. Remove the unused on_overflow setting and retain partial responses on limits.

Regression coverage includes concurrent accounting, unknown prices, cancellation, distinct exits, and cleanup. The following JSON layer preserves limit stop reasons and known partial usage.

Tracks LaFabrique #46.

The foreground-shell timeout regression allows two seconds for startup on slow runners while retaining its timeout exit, shell-start, and terminated-process assertions.

Stack and validation

#23 → #24 → #25 → #26

Native GitHub stack #28. This PR targets PR #24. PR #22 is merged.

Merged main at 74a5e28 into the stack, retaining merged PR #22’s memory improvements and PR #27’s removal of automatic Exa/Context7 servers. Each updated branch retains its previous remote head and preceding stack layer through additive merges. Configured MCP servers remain supported.

Repaired the session-name mock at its lazy import location, used schema version 2 in non-persistence fixtures, and removed obsolete MCP flag assignments from the memory regression harness. All existing behavioral assertions are retained. Provider codes remain 4–9; context overflow, local cost limit/unknown spend, and execution timeout remain 10/11/12. The existing memory and usage-accounting implementation is unchanged.

Ruff lint and formatting pass; all 2,192 local tests pass on Linux/Python 3.14.3. All four Linux/macOS Python 3.13/3.14 CI jobs pass on 48ca007.

Base automatically changed from worktree/rapid-valley-cbfe to main September 29, 2026 10:56
@wowi42
wowi42 merged commit 0f6bc2f into main Sep 29, 2026
4 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants