- Fix Linux GUI Re-OAuth: load_oauth_secrets() was undefined, now loads inline
- Fix GLib.idle_add lambda returning truthy tuple (repeated callbacks)
- Proxy: production cloudcode-pa.googleapis.com tried first, sandbox as fallback
- Proxy: 403 SERVICE_DISABLED falls through to next endpoint
- Project discovery validates against production endpoint, not staging
- Antigravity preset base_url changed to production
- Windows GUI project discovery also uses production endpoint
Roman | RyzenAdvanced
·
2026-05-25 21:57:30 +04:00
- Full reasoning round-trip: capture reasoning_content + tool_calls from
stream, store by tool_call_id, reinsert before next codebuff POST
- Primary path no longer disables thinking (codebuff doesn't forward the flag)
- Fallback retry uses DeepSeek native {thinking:{type:'disabled'}} format
- Replaced broken _fb_retry_no_reasoning + _fb_retry_stripped with
single _fb_retry_thinking_disabled
- New _ds_store_assistant(), _ds_rebuild_tool_history() functions
- oa_stream_to_sse() now captures tool_calls in reasoning_out dict
- Multi-turn Codex CLI sessions with function calls now complete successfully
- Root cause: _handle_codebuff streaming loop collected events but never
wrote them to self.wfile (stream_buffered_events was not called)
- Fix: Replaced manual loop with stream_buffered_events() + on_event callback
- Confirmed working: raw API streaming, non-stream, and stream through proxy
- Updated CHANGELOG.md, README.md, version labels to 3.8.3
- Usage Dashboard: visual cards with success rate bars, token stats, latency
- Per-model breakdown and error tracking per provider
- Proxy records usage-stats.json after every request
- Google OAuth: browse for client_secret.json instead of fixed path
- Auto-copies selected file to ~/.cache/codex-proxy/
- Exponential backoff retry (2s/4s/8s) for rate limits and transient errors
- BGP routes retry before failing over to next route
- Socket SO_REUSEADDR prevents 'Address already in use' crashes
- Connection reset/broken pipe also retried
- BGP route count shown at proxy startup
- New AI BGP pool manager (create/edit/delete pools)
- Each pool has ordered routes from any configured endpoint
- Failover: tries primary, falls back to next route on error
- Pools appear in endpoint dropdown with shuffle icon
- Pool editor with route add/remove/reorder
- Fixed TOML breakage from multi-line paste
- Added OpenAdapter preset with 0G models
- Two presets: API Key and OAuth modes
- OAuth Login button: full Google OAuth2 flow with auto-refresh
- Auto-refreshes expired access tokens using refresh_token
- Gemini OpenAI-compatible endpoint works with existing proxy
- Models: gemini-2.5-flash, gemini-2.5-pro, gemini-2.0-flash, etc.
- 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