fix(pipeline): recover truncated codex runs (#126)

* fix(pipeline): recover empty truncated codex responses

* fix(providers): continue fallback after content policy errors
This commit is contained in:
Duy /zuey/ authored and GitHub committed 2026-05-31 21:07:48 +07:00
1 parent 131f29dff8
commit 94cbaa9f0f
7 files changed
+194 -17

No files matched your search

+27
View File
@@ -6,6 +6,33 @@ Significant changes, features, and fixes in reverse chronological order.
## 2026-05-31
### Provider fallback content-policy recovery
**Fixes**
- Classifies provider content-policy rejections such as DashScope `data_inspection_failed` so model fallback can continue to the next configured candidate instead of stopping on `unknown`.
- Prevents Telegram runs from aborting silently when one fallback provider rejects a long/private history but another configured fallback remains available.
**Tests**
- Added provider classifier and model fallback coverage for continuing past a content-policy fallback failure.
---
### Empty Codex OAuth truncation recovery
**Fixes**
- Detects successful LLM calls that still return `finish_reason=length` with no text/tool/image output, the observed failure mode when long Codex OAuth runs spend the remaining budget on reasoning.
- Runs emergency history compaction and retries instead of finalizing empty assistant content into repeated `"..."` replies.
- Preserves configured/model context windows so future provider context upgrades do not require code changes.
**Tests**
- Added ThinkStage coverage for empty length responses, retry compaction, usage accounting, and repeated failure handling.
---
### Agent Access git credential follow-up (issue #117)
**Fixes**