v13.9.2
snarktank/ralphv13.9.2Jul 1, 2026by thedotmack
AI Summary
This release fixes a critical bug in the OpenAI provider layer where hardcoded context limits were incorrectly truncating conversation history. The provider now sends the full conversation history to the provider layer for management.
Key Highlights
- Removed client-side context truncation logic
- Fixed silent message dropping due to hardcoded caps
- Full conversation history is now sent to the provider
Breaking Changes
- Removed OpenAICompatibleProvider.truncateHistory() method
- Removed requireNonEmptyToTruncate flag
- Removed CLAUDE_MEM_MAX_CONTEXT_MESSAGES and _MAX_TOKENS settings
- Removed truncateHistoryForOpenRouter and truncateHistoryForGemini wrappers
New Features
- Full conversation history support
Full Release Notes
## Bug Fix
**Removed client-side context truncation from the provider layer.**
The `OpenAICompatibleProvider` applied a sliding-window truncation to conversation history — a hardcoded 20-message cap and a 100k-token "safety" limit layered on top of the model's own context window. In practice it fired on message count alone, dropping conversation messages at ~12k tokens (nowhere near the token limit) and silently corrupting history, mislabeled as "runaway cost" prevention. This broke setups whose real model context window bore no relation to those hardcoded assumptions.
The full conversation history is now sent to the provider, which owns its own context window.
### Removed
- `OpenAICompatibleProvider.truncateHistory()` and the `requireNonEmptyToTruncate` flag
- `truncateHistoryForOpenRouter` / `truncateHistoryForGemini` wrappers and their message/token constants
- `CLAUDE_MEM_{GEMINI,OPENROUTER}_MAX_CONTEXT_MESSAGES` / `_MAX_TOKENS` settings, defaults, and validation
- Related tests, docs, and installer references
Merged in #3096. Verified: `tsc` clean, 2248 tests passing, build-and-sync clean.