From ba9831db2d9669f900fb8b76d14d2ec1078673c9 Mon Sep 17 00:00:00 2001 From: admin Date: Tue, 19 May 2026 18:28:56 +0400 Subject: [PATCH] fix Command Code 403: add cc_version field + x-command-code-version header --- codex-launcher_2.1.1_all.deb | Bin 22216 -> 22380 bytes src/codex-launcher-gui | 14 ++++++++++++++ src/translate-proxy.py | 2 ++ 3 files changed, 16 insertions(+) diff --git a/codex-launcher_2.1.1_all.deb b/codex-launcher_2.1.1_all.deb index 143578485822ae329fb84a8966162f082849e395..3e1c353d036a0fd45ce8854249d0ae0a54adfb51 100644 GIT binary patch delta 20915 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�Z@~e6dZrx!+;w^ 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 aej%p*0V|~hfSc7jJkrIcQwk=P^8gBJ-u#{b delta 20826 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 z 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 diff --git a/src/codex-launcher-gui b/src/codex-launcher-gui index d4e8f92..8f60432 100755 --- a/src/codex-launcher-gui +++ b/src/codex-launcher-gui @@ -123,6 +123,7 @@ PROVIDER_PRESETS = { "Command Code": { "backend_type": "command-code", "base_url": "https://api.commandcode.ai", + "cc_version": "0.26.8", "models": [ "deepseek/deepseek-v4-flash", "deepseek/deepseek-v4-pro", "anthropic:claude-sonnet-4-6", "anthropic:claude-haiku-4-5-20251001", @@ -192,6 +193,8 @@ def apply_provider_preset(endpoint, preset_name): updated["provider_preset"] = preset_name updated["backend_type"] = preset["backend_type"] updated["base_url"] = normalize_base_url(preset["base_url"]) + if preset.get("cc_version") and not updated.get("cc_version"): + updated["cc_version"] = preset["cc_version"] if not updated.get("models"): updated["models"] = list(preset.get("models", [])) if not updated.get("default_model") and updated.get("models"): @@ -418,6 +421,7 @@ def _start_proxy_for(endpoint, logfn): "backend_type": endpoint["backend_type"], "target_url": normalize_base_url(endpoint["base_url"]), "api_key": endpoint["api_key"], + "cc_version": endpoint.get("cc_version", ""), "models": [{"id": m, "object": "model", "created": 1700000000, "owned_by": endpoint["name"]} for m in endpoint.get("models", [])], } @@ -1399,6 +1403,10 @@ class EditEndpointDialog(Gtk.Dialog): self._entry_key.set_visibility(False) add_row(4, "API Key:", self._entry_key) + self._entry_cc_ver = Gtk.Entry(text=self._data.get("cc_version", "")) + self._entry_cc_ver.set_placeholder_text("e.g. 0.26.8 (Command Code only)") + add_row(5, "CC Version:", self._entry_cc_ver) + # Models mlbl = Gtk.Label(label="Models:", xalign=0) area.pack_start(mlbl, False, False, 4) @@ -1492,6 +1500,9 @@ class EditEndpointDialog(Gtk.Dialog): self._entry_url.set_text(preset.get("base_url", "")) if not self._entry_key.get_text().strip(): self._entry_key.set_text("") + cc_ver = preset.get("cc_version", "") + if cc_ver and not self._entry_cc_ver.get_text().strip(): + self._entry_cc_ver.set_text(cc_ver) if preset.get("models") and len(self._model_store) == 0: for mid in preset["models"]: self._model_store.append([mid]) @@ -1594,6 +1605,9 @@ class EditEndpointDialog(Gtk.Dialog): new_ep = {"name": name, "backend_type": bt, "base_url": url, "api_key": key, "default_model": default, "models": models, "provider_preset": self._combo_preset.get_active_text() or "Custom"} + cc_ver = self._entry_cc_ver.get_text().strip() + if cc_ver: + new_ep["cc_version"] = cc_ver new_ep["base_url"] = normalize_base_url(new_ep["base_url"]) # Update or append diff --git a/src/translate-proxy.py b/src/translate-proxy.py index 66ef0f2..ed492f7 100755 --- a/src/translate-proxy.py +++ b/src/translate-proxy.py @@ -80,6 +80,7 @@ BACKEND = CONFIG["backend_type"] TARGET_URL = CONFIG["target_url"].rstrip("/") API_KEY = CONFIG["api_key"] MODELS = CONFIG["models"] +CC_VERSION = CONFIG.get("cc_version", "") # ═══════════════════════════════════════════════════════════════════ # Shared helpers @@ -745,6 +746,7 @@ class Handler(http.server.BaseHTTPRequestHandler): "Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}", "Accept": "text/event-stream, application/json", + "x-command-code-version": CC_VERSION or "0.26.8", }, browser_ua=True) print(f"[translate-proxy] POST {target} model={model} stream={stream} [command-code]", file=sys.stderr) req = urllib.request.Request(