feat: distinguish provider failures in scripted runs - #24
Merged
Merged
Conversation
Mouhand-Kaddo
changed the base branch from
main
to
feat/cli-thinking-headers
September 29, 2026 08:24
Mouhand-Kaddo
added this pull request to stack #28
September 29, 2026 08:24
This was referenced Sep 29, 2026
wowi42
force-pushed
the
worktree/rapid-valley-cbfe
branch
from
September 29, 2026 09:37
e8217aa to
ef59be5
Compare
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.
Return distinct provider-failure exits in headless, loop, and chain modes: authentication 4, provider budget/credits 5, model/resource not found 6, rate limit 7, upstream/transport 8, and malformed/failed stream 9. HTTP and SSE failures share classification and the existing retry policy; budget failures never retry.
These codes remain reserved when the next layer adds run limits. JSON output in #26 preserves the same classification. Regression coverage includes HTTP/SSE payloads, retries, malformed streams, and all three scripted modes. The headless reasoning test reuses the directory created by the shared fixture, so this layer passes independently.
Tracks LaFabrique #49.
Stack and validation
#23 → #24 → #25 → #26
Native GitHub stack #28. This PR targets PR #23. PR #22 is merged.
Merged
mainat74a5e28into 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,127 local tests pass on Linux/Python 3.14.3. All four Linux/macOS Python 3.13/3.14 CI jobs pass on
1b22ed5.