v2.3.0: adaptive Crof self-healing system

- Per-model success/failure tracking with dynamic item limits
- Proactive compaction when above learned limit
- Auto-retry on finish_reason=length with aggressive re-compaction
- Tested: kimi-k2.6 (27 items) and mimo-v2.5-pro both completed
- All previous fixes included: _ts crash, connection reset, timeout, orphaned fco
This commit is contained in:
Roman
2026-05-20 14:32:36 +04:00
Unverified
parent 60106955ab
commit 27b22f4fd8
5 changed files with 238 additions and 15 deletions

View File

@@ -1,5 +1,20 @@
# Changelog
## v2.3.0 (2026-05-20)
- **Adaptive Crof self-healing system**
- Tracks per-model success/failure history with item counts
- Dynamically learns max item limit per model (starts at 30, adjusts down on failures)
- Proactively compacts input when above learned limit before sending to upstream
- Auto-retry on `finish_reason=length` with aggressive re-compaction and resend
- Prevents `stream disconnected` and `incomplete` errors on long conversations
- All tracking logged to stderr: `[crof-adaptive] model=X items=N OK/FAIL -> limit=N`
- Fixed `NameError: _ts` crash in debug logging
- Fixed `ConnectionResetError` crash on client disconnect during streaming
- Added 180s upstream timeout to prevent hanging connections
- Compaction now preserves function_call/function_call_output pairs (no orphaned tool outputs)
- Fixed reasoning control: `reasoning_effort=none` always sends both params
## v2.2.1 (2026-05-20)
- **Fixed compaction orphaning function_call_output items** — root cause of Crof `incomplete` responses