From 88e660768cd7a36a71eb14f2b55775dd445e0884 Mon Sep 17 00:00:00 2001 From: yilsem Date: Fri, 9 Oct 2026 19:27:22 +0300 Subject: [PATCH] feat(codex-bridge): keep the gateway's short "9R" mark in Codex model names Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01HRDGW1LiKcDUZYUdKBoWYW --- apps/desktop/assets/codex-bridge/ide_catalog.py | 16 +++++++++++++--- .../assets/codex-bridge/test_ide_catalog.py | 1 + 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/desktop/assets/codex-bridge/ide_catalog.py b/apps/desktop/assets/codex-bridge/ide_catalog.py index 052682c..b7261d2 100644 --- a/apps/desktop/assets/codex-bridge/ide_catalog.py +++ b/apps/desktop/assets/codex-bridge/ide_catalog.py @@ -85,23 +85,33 @@ def ide_yapilandirma(agent=AGENT): return base.rstrip("/"), varsayilan, adlar +DOKUZ_ISARET = "9R · " + + +def _isaret(ad): + """Gecidin dogrudan 9Router'dan gelen tekil modele koydugu kisa isaret korunur (kullanici karari, + 9 Ekim 2026: "9Router" yazisi uzun, hic yazmamak da sorun; "9R" olarak kisa gorunsun).""" + return DOKUZ_ISARET if (ad or "").startswith(DOKUZ_ISARET) else "" + + def kisa_ad(ad): """Codex secicisinde gorunecek ad: yalniz kullanicinin ekledigi saglayici + model adi (kullanici istegi, 9 Ekim 2026). "OmniRoute · " / "9Router · " gibi gecit onekleri ve aradaki saglayici halkalari gosterilmez: "nano/qwen/qwen3.8-27b" -> "nano/qwen3.8-27b", "OmniRoute · ag/gemini-3.8-flash" -> "ag/gemini-3.8-flash", combo adi oldugu gibi kalir.""" + on = _isaret(ad) ad = (ad or "").split(" · ")[-1].strip() parcalar = [p for p in ad.split("/") if p] if len(parcalar) <= 2: - return "/".join(parcalar) or ad - return parcalar[0] + "/" + parcalar[-1] + return on + ("/".join(parcalar) or ad) + return on + parcalar[0] + "/" + parcalar[-1] def adlandir(girdiler, dolu=()): """[(kimlik, tam_ad)] -> {kimlik: gorunen_ad}. Kisa adlar cakisirsa aradaki halkalar geri konur; yine cakisirsa kimligin sonu eklenir. `dolu`: baska kaynaktan gelen, zaten kullanilan adlar.""" kisa = {k: kisa_ad(a) for k, a in girdiler} - tam = {k: (a or "").split(" · ")[-1].strip() for k, a in girdiler} + tam = {k: _isaret(a) + (a or "").split(" · ")[-1].strip() for k, a in girdiler} sayac = {} for v in list(kisa.values()) + list(dolu): sayac[v.lower()] = sayac.get(v.lower(), 0) + 1 diff --git a/apps/desktop/assets/codex-bridge/test_ide_catalog.py b/apps/desktop/assets/codex-bridge/test_ide_catalog.py index 07dafaf..ec172c0 100644 --- a/apps/desktop/assets/codex-bridge/test_ide_catalog.py +++ b/apps/desktop/assets/codex-bridge/test_ide_catalog.py @@ -85,6 +85,7 @@ class Secim(unittest.TestCase): ("nano/qwen/qwen3.8-27b-obliterated:thinking", "nano/qwen3.8-27b-obliterated:thinking"), ("9Router · Nous-Research/inclusionai/ling-3.1-flash", "Nous-Research/ling-3.1-flash"), ("cf/@cf/qwen/qwq-32b", "cf/qwq-32b"), + ("9R · nano/qwen/qwen3.8-27b", "9R · nano/qwen3.8-27b"), ("9R · ag/gemini", "9R · ag/gemini"), ("OmniRoute · Ajan-Arac", "Ajan-Arac"), ("cc/claude-opus-5-5", "cc/claude-opus-5-5")]: self.assertEqual(c.kisa_ad(tam), beklenen, tam)