From c0eee2cc2af34039739501c9e5cfbc3fc6ce4a6c Mon Sep 17 00:00:00 2001 From: yilsem Date: Sun, 11 Oct 2026 05:27:54 +0300 Subject: [PATCH] fix(codex-bridge): do nothing at all for Codex's own models User, 11 Oct 2026: 'If you pick Codex and write to Codex, our bridge cannot be beside it even to help.' The last touch is gone too: traces an added model or the bridge left earlier in the chat are no longer cleaned on the way to chatgpt.com. The request goes out byte for byte. Known consequence: a chat that used an added model, or still carries a bridge-made summary, may be refused by chatgpt.com on Codex's own model; such a chat continues on the added models. Co-Authored-By: Claude Opus 5.5 --- apps/desktop/assets/codex-bridge/bridge.py | 34 ++++++------------- .../assets/codex-bridge/test_denetim_ek.py | 17 +++++++--- 2 files changed, 22 insertions(+), 29 deletions(-) diff --git a/apps/desktop/assets/codex-bridge/bridge.py b/apps/desktop/assets/codex-bridge/bridge.py index 8e790d8..0c9ed3b 100644 --- a/apps/desktop/assets/codex-bridge/bridge.py +++ b/apps/desktop/assets/codex-bridge/bridge.py @@ -1272,30 +1272,16 @@ class H(http.server.BaseHTTPRequestHandler): f"Bundan sonraki işleri {sonuc['ad']} yapacak; hangi model diye sorulursa bunu söyle.{donus}") def _ozgun(self, n, path, body, req, slug): - """Codex'in kendi (abonelik) modeli. Kullanici karari (11 Ekim 2026): "Codex kendi modelini kullanirken - kopruyle bir bagi olmamali. Codex kendi modelinden kendi modeline gectigi zaman kopruyle bir bagi olmamali. - Codex'in kendi modeline dokunulmamali." Istek chatgpt.com'a OLDUGU GIBI gider: model komutu, nokta - karsilama, bilgi notu, is hatti talimati, yarim cevap notu ve sikistirmaya karisma YOK. Sikistirmayi Codex - kendisi OpenAI'de yapar (olcum 11 Ekim 2026: kopru ozgun modelde ozeti kendi uretmeye calisip dort kez - "ozet uretilemedi" verdi, Codex "Error running remote compact task" ile takildi). - - Tek dokunus koprunun KENDI izleridir ve yalniz sohbette daha once ek model kullanildiysa olur: ek modelin - urettigi yabanci kimlikler ve koprunun urettigi duz metin ozet ogeleri. Bunlar kalirsa chatgpt.com istegi - reddeder ("Item ... not found"). Iz yoksa govde bayt bayt ayni kalir.""" - fixed = atilan = acilan = 0 - try: - fixed = fix_tool_ids(req) - atilan = drop_foreign_items(req) - if (CFG.get("ozet_kopru") or {}).get("enabled", False): - acilan = ozet_kopru.ozetleri_ac(req, yabanci_hedef=False)["acilan"] - if fixed or atilan or acilan: - body = json.dumps(req, ensure_ascii=False).encode("utf-8") - log(f"[{n} CHATGPT {slug}] kopru izleri temizlendi: {fixed} arac kimligi, {atilan} yabanci oge, " - f"{acilan} kopru ozeti") - except Exception as e: - fixed = atilan = acilan = 0 # govde degismeden gider - log(f"[{n} CHATGPT {slug}] kopru izi temizligi atlandi, istek oldugu gibi gidiyor: {type(e).__name__}: {e}") - return self._passthrough(n, path, body, tagname=f"CHATGPT {slug}", rewritten=bool(fixed or atilan or acilan)) + """Codex'in kendi (abonelik) modeli: kopru HICBIR SEY yapmaz, istek chatgpt.com'a bayt bayt oldugu gibi gider. + Kullanici karari (11 Ekim 2026): "Codex kendi modelini kullanirken kopruyle bir bagi olmamali ... Codex'in + kendi modeline dokunulmamali" ve "Codex'i secip Codex'e yaziyorsan bizim kopru yardim amacli bile yaninda + olamaz." Bu yuzden model komutu, nokta karsilama, bilgi notu, is hatti talimati, yarim cevap notu, + sikistirmaya karisma ve koprunun kendi izlerini temizleme de YOKTUR; sikistirmayi Codex kendisi yapar + (olcum 11 Ekim 2026: kopru ozgun modelde ozeti kendi uretmeye calisip Codex'i "Error running remote compact + task" ile takti). + Bilinen sonuc: ayni sohbette daha once ek model kullanildiysa ya da kopru ozeti kaldiysa chatgpt.com bu + istegi reddedebilir; o sohbet ek modellerle surer, Codex'in kendi modeli icin yeni sohbet acilir.""" + return self._passthrough(n, path, body, tagname=f"CHATGPT {slug}", rewritten=False) def _responses(self, n, path, body): try: diff --git a/apps/desktop/assets/codex-bridge/test_denetim_ek.py b/apps/desktop/assets/codex-bridge/test_denetim_ek.py index 1475633..93f892a 100644 --- a/apps/desktop/assets/codex-bridge/test_denetim_ek.py +++ b/apps/desktop/assets/codex-bridge/test_denetim_ek.py @@ -298,12 +298,19 @@ class Zincir(unittest.TestCase): self.assertFalse(kwargs["rewritten"]) self.assertEqual(self.env["YONLENDIRME"].veri, {}) - def test_only_the_bridges_own_traces_are_cleaned_for_codex_own_model(self): - self.env["fix_tool_ids"] = lambda req: 2 # ids left behind by an added model earlier in the chat - fake, body = self.send("gpt-6-astra", [user("devam")]) + def test_the_bridge_does_not_even_help_codex_own_model(self): + """'If you pick Codex and write to Codex, our bridge cannot be beside it even to help.' Traces an added + model or the bridge left earlier in the chat are not cleaned either: the body goes out byte for byte.""" + self.env["CFG"]["ozet_kopru"] = {"enabled": True, "kapsam": "hepsi"} + self.env["fix_tool_ids"] = Mock(return_value=2) + self.env["drop_foreign_items"] = Mock(return_value=3) + summary = ozet_kopru.ozet_ogesi("eski köprü özeti", "t") + fake, body = self.send("gpt-6-astra", [summary, {"type": "reasoning", "id": "rs_chatcmpl-x"}, user("devam")]) args, kwargs = fake._passthrough.call_args - self.assertTrue(kwargs["rewritten"]) - self.assertEqual(json.loads(args[2]), json.loads(body)) + self.assertEqual(args[2], body) + self.assertFalse(kwargs["rewritten"]) + self.env["fix_tool_ids"].assert_not_called() + self.env["drop_foreign_items"].assert_not_called() fake._yerel_yanit.assert_not_called() def test_voice_switch_stays_among_the_added_models(self):