v3.10.6 — Freebuff integration, Codebuff OAuth fix, cobra91 PR #3 (CROF gate, data consolidation, sticky port)
This commit is contained in:
25
CHANGELOG.md
25
CHANGELOG.md
@@ -1,5 +1,30 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## v3.10.6 (2026-05-25)
|
||||||
|
|
||||||
|
**Freebuff Integration + Codebuff OAuth Fix + Windows Consolidation**
|
||||||
|
|
||||||
|
### Freebuff (Free DeepSeek/Kimi)
|
||||||
|
- **Freebuff integration**: Free DeepSeek/Kimi models via codebuff.com API
|
||||||
|
- Fixed User-Agent to match official SDK: `ai-sdk/openai-compatible/1.0.25/codebuff`
|
||||||
|
- Fixed metadata fields: `freebuff_instance_id` + `client_id` (base36 random) + `cost_mode: "free"`
|
||||||
|
- Fixed session endpoint: POST empty `{}` body (not `{"model": model}`)
|
||||||
|
- GUI preset aliases: "Freebuff (Free DeepSeek/Kimi)", "FreeBuff", "Codebuff (Free DeepSeek/Kimi)" all map to same backend
|
||||||
|
|
||||||
|
### Codebuff Fix
|
||||||
|
- Fixed Codebuff OAuth: use `www.codebuff.com` (bare `codebuff.com` returns 307 redirect)
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
- Windows GUI files consolidated into `src/` (merged by cobra91 via PR #1 and PR #2)
|
||||||
|
|
||||||
|
### Proxy & GUI Improvements (cobra91 PR #3)
|
||||||
|
- CROF adaptive logic gated to `crof.ai` only — no more log pollution for other providers
|
||||||
|
- Data directory consolidation: all data now in `codex-proxy/` (was split across `codex-desktop/`, `codex-launcher/`, `codex-proxy/`)
|
||||||
|
- Sticky proxy port: persists in `.last-proxy-port`, reused on restart so Codex Desktop keeps connection
|
||||||
|
- Adaptive compact budget raised from 60% to 80% — avoids premature compaction on large-context models (DeepSeek v4 Pro 1M)
|
||||||
|
- Config cleanup fix: stale `proxy-*.json` cleanup moved after `_init_runtime()` to avoid deleting active config
|
||||||
|
- Windows GUI: added Clear Log, Restart Proxy, View Log buttons
|
||||||
|
|
||||||
## v3.10.5 (2026-05-25)
|
## v3.10.5 (2026-05-25)
|
||||||
|
|
||||||
**Windows GUI + Context Compaction for Antigravity/Gemini OAuth**
|
**Windows GUI + Context Compaction for Antigravity/Gemini OAuth**
|
||||||
|
|||||||
10
README.md
10
README.md
@@ -23,7 +23,7 @@ If you want fork it, use the Github copy, here it is:
|
|||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
<strong>Run OpenAI Codex CLI & Desktop with <em>any</em> AI provider.</strong><br/>
|
<strong>Run OpenAI Codex CLI & Desktop with <em>any</em> AI provider.</strong><br/>
|
||||||
Google Antigravity • Gemini CLI • OpenCode • Z.AI • Anthropic • Command Code • Codebuff • OpenRouter • Crof.ai • NVIDIA NIM • OpenAdapter • Kilo.ai • DeepSeek • and more
|
Google Antigravity • Gemini CLI • OpenCode • Z.AI • Anthropic • Command Code • Freebuff • OpenRouter • Crof.ai • NVIDIA NIM • OpenAdapter • Kilo.ai • DeepSeek • and more
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
<p align="center">
|
<p align="center">
|
||||||
@@ -630,7 +630,7 @@ curl http://127.0.0.1:PORT/v1/accounts
|
|||||||
| OpenCode Zen | OpenAI-compat | `https://opencode.ai/zen/v1` |
|
| OpenCode Zen | OpenAI-compat | `https://opencode.ai/zen/v1` |
|
||||||
| OpenCode Go | OpenAI-compat | `https://opencode.ai/zen/go/v1` |
|
| OpenCode Go | OpenAI-compat | `https://opencode.ai/zen/go/v1` |
|
||||||
| Command Code | Command Code | `https://api.commandcode.ai` |
|
| Command Code | Command Code | `https://api.commandcode.ai` |
|
||||||
| **Codebuff** | **Codebuff** | `https://codebuff.com` *(free DeepSeek/Kimi — OAuth login built-in)* |
|
| **Codebuff / Freebuff** | **Codebuff** | `https://www.codebuff.com` *(free DeepSeek/Kimi — OAuth login built-in)* |
|
||||||
| Crof.ai | OpenAI-compat | `https://crof.ai/v1` |
|
| Crof.ai | OpenAI-compat | `https://crof.ai/v1` |
|
||||||
| OpenAdapter | OpenAI-compat | `https://api.openadapter.in/v1` |
|
| OpenAdapter | OpenAI-compat | `https://api.openadapter.in/v1` |
|
||||||
| Z.ai Coding | OpenAI-compat | `https://api.z.ai/api/coding/paas/v4` |
|
| Z.ai Coding | OpenAI-compat | `https://api.z.ai/api/coding/paas/v4` |
|
||||||
@@ -643,14 +643,14 @@ curl http://127.0.0.1:PORT/v1/accounts
|
|||||||
| Google Antigravity (OAuth) | Antigravity OAuth | `daily-cloudcode-pa.sandbox.googleapis.com` |
|
| Google Antigravity (OAuth) | Antigravity OAuth | `daily-cloudcode-pa.sandbox.googleapis.com` |
|
||||||
| Custom | Any | User-defined |
|
| Custom | Any | User-defined |
|
||||||
|
|
||||||
### Free Models (via Codebuff)
|
### Free Models (via Codebuff/Freebuff)
|
||||||
Codebuff provides free access to these models — no API key needed:
|
Codebuff/Freebuff provides free access to these models — no API key needed:
|
||||||
- **DeepSeek V4 Pro** — Smartest model
|
- **DeepSeek V4 Pro** — Smartest model
|
||||||
- **DeepSeek V4 Flash** — Most efficient
|
- **DeepSeek V4 Flash** — Most efficient
|
||||||
- **Kimi K2.6** — Balanced
|
- **Kimi K2.6** — Balanced
|
||||||
- **MiniMax M2.7** — Fastest
|
- **MiniMax M2.7** — Fastest
|
||||||
|
|
||||||
*Requires: `codebuff login` via GUI OAuth button, or `npm install -g codebuff && codebuff login` (GitHub OAuth)*
|
*Requires: `freebuff login` via GUI OAuth button, or `npm install -g freebuff && freebuff login` (GitHub OAuth)*
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
BIN
codex-launcher_3.10.6_all.deb
Normal file
BIN
codex-launcher_3.10.6_all.deb
Normal file
Binary file not shown.
@@ -3,11 +3,11 @@ set -e
|
|||||||
|
|
||||||
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
|
||||||
|
|
||||||
if [ -f "$SCRIPT_DIR/codex-launcher_3.10.5_all.deb" ]; then
|
if [ -f "$SCRIPT_DIR/codex-launcher_3.10.6_all.deb" ]; then
|
||||||
echo "Installing codex-launcher_3.10.5_all.deb ..."
|
echo "Installing codex-launcher_3.10.6_all.deb ..."
|
||||||
sudo dpkg -i "$SCRIPT_DIR/codex-launcher_3.10.5_all.deb"
|
sudo dpkg -i "$SCRIPT_DIR/codex-launcher_3.10.6_all.deb"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Installed v3.10.5 via .deb package."
|
echo "Installed v3.10.6 via .deb package."
|
||||||
echo " translate-proxy.py -> /usr/bin/translate-proxy.py"
|
echo " translate-proxy.py -> /usr/bin/translate-proxy.py"
|
||||||
echo " codex-launcher-gui -> /usr/bin/codex-launcher-gui"
|
echo " codex-launcher-gui -> /usr/bin/codex-launcher-gui"
|
||||||
echo " cleanup-codex-stale -> /usr/bin/cleanup-codex-stale.sh"
|
echo " cleanup-codex-stale -> /usr/bin/cleanup-codex-stale.sh"
|
||||||
|
|||||||
@@ -1798,7 +1798,7 @@ class LauncherWin(Gtk.Window):
|
|||||||
# header row
|
# header row
|
||||||
hdr = Gtk.Box(spacing=8)
|
hdr = Gtk.Box(spacing=8)
|
||||||
vbox.pack_start(hdr, False, False, 0)
|
vbox.pack_start(hdr, False, False, 0)
|
||||||
lbl = Gtk.Label(label="<b>Codex Launcher v3.10.5</b>")
|
lbl = Gtk.Label(label="<b>Codex Launcher v3.10.6</b>")
|
||||||
lbl.set_use_markup(True)
|
lbl.set_use_markup(True)
|
||||||
hdr.pack_start(lbl, False, False, 0)
|
hdr.pack_start(lbl, False, False, 0)
|
||||||
changelog_btn = Gtk.Button(label="Changelog")
|
changelog_btn = Gtk.Button(label="Changelog")
|
||||||
@@ -3706,7 +3706,7 @@ class EditEndpointDialog(Gtk.Dialog):
|
|||||||
auth_url = "https://www.codebuff.com/api/auth/cli/code"
|
auth_url = "https://www.codebuff.com/api/auth/cli/code"
|
||||||
body = json.dumps({"fingerprintId": fingerprint_id}).encode()
|
body = json.dumps({"fingerprintId": fingerprint_id}).encode()
|
||||||
req = urllib.request.Request(auth_url, data=body,
|
req = urllib.request.Request(auth_url, data=body,
|
||||||
headers={"Content-Type": "application/json", "User-Agent": "codex-launcher/3.10.5"})
|
headers={"Content-Type": "application/json", "User-Agent": "codex-launcher/3.10.6"})
|
||||||
resp = urllib.request.urlopen(req, timeout=30)
|
resp = urllib.request.urlopen(req, timeout=30)
|
||||||
data = json.loads(resp.read())
|
data = json.loads(resp.read())
|
||||||
login_url = data.get("loginUrl", "") or data.get("login_url", "")
|
login_url = data.get("loginUrl", "") or data.get("login_url", "")
|
||||||
@@ -3731,7 +3731,7 @@ class EditEndpointDialog(Gtk.Dialog):
|
|||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
try:
|
try:
|
||||||
poll_req = urllib.request.Request(poll_url,
|
poll_req = urllib.request.Request(poll_url,
|
||||||
headers={"User-Agent": "codex-launcher/3.10.5"})
|
headers={"User-Agent": "codex-launcher/3.10.6"})
|
||||||
poll_resp = urllib.request.urlopen(poll_req, timeout=10)
|
poll_resp = urllib.request.urlopen(poll_req, timeout=10)
|
||||||
poll_data = json.loads(poll_resp.read())
|
poll_data = json.loads(poll_resp.read())
|
||||||
user = poll_data.get("user")
|
user = poll_data.get("user")
|
||||||
|
|||||||
@@ -83,6 +83,20 @@ model_catalog_json = ""
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
CHANGELOG = [
|
CHANGELOG = [
|
||||||
|
("3.10.6", "2026-05-25", [
|
||||||
|
"Freebuff integration: free DeepSeek/Kimi via codebuff.com API",
|
||||||
|
"Fixed Freebuff User-Agent to match official SDK (ai-sdk/openai-compatible/1.0.25/codebuff)",
|
||||||
|
"Fixed Freebuff metadata: freebuff_instance_id + client_id (base36) + cost_mode: free",
|
||||||
|
"Fixed Codebuff OAuth: use www.codebuff.com (307 redirect on bare domain)",
|
||||||
|
"GUI preset aliases: Freebuff, FreeBuff, Codebuff all map to same backend",
|
||||||
|
"Windows GUI consolidated into src/ (merged by cobra91)",
|
||||||
|
"CROF adaptive logic gated to crof.ai only — no log pollution for other providers",
|
||||||
|
"Data dir consolidation: all data in codex-proxy/",
|
||||||
|
"Sticky proxy port: persists in .last-proxy-port for restart persistence",
|
||||||
|
"Adaptive compact budget raised 60% to 80% for large-context models",
|
||||||
|
"Config cleanup fix: stale proxy-*.json moved after _init_runtime()",
|
||||||
|
"Windows GUI: Clear Log, Restart Proxy, View Log buttons (cobra91 PR #3)",
|
||||||
|
]),
|
||||||
("3.10.5", "2026-05-25", [
|
("3.10.5", "2026-05-25", [
|
||||||
"Context compaction for Antigravity/Gemini OAuth — prevents token limit errors",
|
"Context compaction for Antigravity/Gemini OAuth — prevents token limit errors",
|
||||||
"Aggressive compaction policies at 60% of model context limit",
|
"Aggressive compaction policies at 60% of model context limit",
|
||||||
|
|||||||
Reference in New Issue
Block a user