Commit 82ac931
Document stderr regex branch unreachability and add turn.failed fixture-driven tests (#4122)
## Summary
Add a clarifying comment in `_exit_classification.py` documenting that
the stderr regex branch
(`_CODEX_CONTEXT_EXHAUSTION_PATTERN.search(result.stderr)`) is
unreachable for Codex because `turn.failed` events arrive via stdout
NDJSON, not stderr. Extend the `_turn_failed_ndjson` test helper with an
optional `error_code` kwarg and add five new test methods exercising all
`error.code` / `error.message` variants of `turn.failed` classification
plus a stderr boundary test.
## Implementation Plan
Plan file:
`/home/talon/projects/autoskillit-runs/impl-20260627-014523-646887/.autoskillit/temp/make-plan/t5_p6_a14_wp1_stderr_regex_unreachable_plan_2026-06-27_015000.md`
Closes #4050
🤖 Generated with [Claude Code](https://claude.com/claude-code) via
AutoSkillit
<!-- autoskillit:pipeline-signature
steps=prepare_pr,run_arch_lenses,compose_pr,annotate_pr_diff,review_pr
-->
## Token Usage Summary
| Step | Model | count | uncached | output | cache_read | peak_ctx |
turns | cache_write | time |
|------|-------|-------|----------|--------|------------|----------|-------|-------------|------|
| plan* | opus[1m] | 1 | 3.5k | 7.6k | 672.2k | 68.1k | 26 | 54.1k | 4m
17s |
| verify* | sonnet | 1 | 70 | 7.1k | 390.3k | 70.7k | 23 | 52.2k | 4m 9s
|
| implement* | MiniMax-M3 | 1 | 62.7k | 6.2k | 1.3M | 0 | 68 | 0 | 2m
13s |
| audit_impl* | sonnet | 1 | 1.6k | 6.3k | 159.7k | 38.4k | 14 | 27.7k |
2m 56s |
| prepare_pr* | MiniMax-M3 | 1 | 40.1k | 1.7k | 110.1k | 0 | 11 | 0 |
38s |
| compose_pr* | MiniMax-M3 | 1 | 36.5k | 1.5k | 249.1k | 0 | 14 | 0 |
55s |
| **Total** | | | 144.5k | 30.2k | 2.9M | 70.7k | | 134.0k | 15m 10s |
\* *Step used a non-Anthropic provider; caching behavior may differ.*
## Token Efficiency
| Step | LoC Changed | cache_read/LoC | cache_write/LoC | output/LoC |
|------|-------------|----------------|-----------------|------------|
| plan | 0 | — | — | — |
| verify | 0 | — | — | — |
| implement | 49 | 27125.6 | 0.0 | 126.1 |
| audit_impl | 0 | — | — | — |
| prepare_pr | 0 | — | — | — |
| compose_pr | 0 | — | — | — |
| **Total** | **49** | 59398.6 | 2735.1 | 617.3 |
## Model Usage Breakdown
| Model | steps | uncached | output | cache_read | cache_write | time |
|-------|-------|----------|--------|------------|-------------|------|
| opus[1m] | 1 | 3.5k | 7.6k | 672.2k | 54.1k | 4m 17s |
| sonnet | 2 | 1.7k | 13.4k | 550.0k | 79.9k | 7m 6s |
| MiniMax-M3 | 3 | 139.4k | 9.3k | 1.7M | 0 | 3m 46s |
---------
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent cf41f0c commit 82ac931
2 files changed
Lines changed: 49 additions & 2 deletions
File tree
- src/autoskillit/execution/session
- tests/execution
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
115 | 115 | | |
116 | 116 | | |
117 | 117 | | |
| 118 | + | |
118 | 119 | | |
119 | 120 | | |
120 | 121 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
60 | | - | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
61 | 64 | | |
62 | 65 | | |
63 | 66 | | |
| |||
412 | 415 | | |
413 | 416 | | |
414 | 417 | | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
| 445 | + | |
| 446 | + | |
| 447 | + | |
| 448 | + | |
| 449 | + | |
| 450 | + | |
| 451 | + | |
| 452 | + | |
| 453 | + | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
415 | 461 | | |
416 | 462 | | |
417 | 463 | | |
| |||
0 commit comments