- Add Reasoning On/Off toggle and Effort selector in endpoint editor
- Proxy sends enable_thinking=false when reasoning is OFF
- Proxy sends reasoning_effort level when reasoning is ON
- Strip reasoning_content from output, force max_tokens=64000 minimum
- Fixes Crof mimo-v2.5-pro and similar reasoning model token exhaustion
- Strip reasoning_content from proxy output (Codex doesn't use it)
- Force max_tokens=64000 minimum for openai-compat providers
- Prevents models that emit large reasoning from running out of tokens
Instead of just truncating old items, the proxy now auto-compacts
them into a structured summary preserving key context:
- User requests, assistant responses, tool calls made, files touched
- Keeps original query + system messages + last 10 recent items
- 38 items -> 14 items in testing, with summary of dropped turns
- Similar to Claude Code's auto-compact and Codex CLI's /compact
- No extra API calls needed, instant, zero cost
Crof models (mimo, deepseek-v4-pro) return status=incomplete when
tool results contain too much text (e.g. full HTML pages at 8500+ tokens).
Auto-truncate tool outputs exceeding 8000 chars with truncation notice.
Combined with the 30-item conversation trim from previous commit.
Root cause: Codex sends function_call items with id=None, causing
tool_call_id mismatch between tool calls and tool results. Proxy now
resolves IDs by call_id + positional fallback.
Auto-trim: conversations exceeding 30 items are trimmed automatically,
keeping system messages, original user query, and most recent items.
This prevents context overflow on providers with smaller context
windows (Crof mimo-v2.5-pro stops responding at ~40 items).
- Fix None tool IDs in oa_input_to_messages with positional matching
- Auto-trim input to 30 items max (keeps head + tail)
- Add request/response logging to ~/.cache/codex-proxy/requests.log
- Proxy stderr visible in launcher terminal for debugging
- v2.1.2
Codex Desktop uses previous_response_id to chain conversation turns.
Without storing and resolving these, the proxy sent only the new
function_call_output to upstream providers, missing the original user
message and assistant tool call. This caused Crof.ai (and any provider
using tool calls) to stop after the first response.
- Add in-memory response store (50 entry LRU) keyed by response ID
- resolve_previous_response() reconstructs full input chain on multi-turn
- Fix orphan message output item when response has only tool calls
- Applies to all backends: openai-compat, anthropic, command-code
- v2.1.2
- Detects codex CLI (via 'which codex' + --version) and Desktop (via /opt/codex-desktop/start.sh)
- Shows green ✔ or yellow ✘ status bar on main page
- 'Install' button opens guide dialog with install commands
- Desktop/CLI launch buttons disabled when corresponding tool is missing
- Dependency status logged on startup
- _set_busy respects missing-state (won't re-enable disabled buttons)
- Rebuilt .deb as v2.0.1
- Added CHANGELOG constant to launcher with version history
- Added 'Changelog' button to header bar (opens formatted dialog)
- Title bar now shows version number (v2.0.0)
- Added CHANGELOG.md to repo root
- Rebuilt .deb with latest sources