6.7 KiB
Codex sesli entegrasyon incelemesi — 12 Ekim 2026
Uygulanan değişiklik ve doğrulama
Çözülmüş hedef tam Sesli-Hizli-Zeki ise nihai metin Jev'e gönderilmez. Büyük/küçük harf, boşluk, ide/ öneki veya sonek normalizasyonu yapılmaz. ide/ kullanıcı slug'ı önce mevcut mapping ile hedefe çözülür. Taşıma hatası, boş yanıt ve kopan akışın katman kurtarması korunur; yedek katmana geçince muafiyet taşınmaz. Araç/commentary hazırlık bypass'ı korunur. İstisna yanıt tamponlamasını değiştirmez.
test_jev_denetim.py exact hedefi, benzer isimleri ve fallback katmanının tekrar denetlenmesini çalıştırır. test_denetim_ek.py gerçek _responses metodu üzerinden başarılı yanıt, bağlantı kopması ve HTTP 400 yollarında çözülmüş hedef aktarımını, instructions ve developer mesajının korunmasını doğrular. Bunlar mevcut handler test düzeneğini kullanır; canlı sağlayıcı testi değildir.
Paket README'sindeki komutla py -3 -m unittest discover: 185 test, 25.305 saniye, OK. Mevcut testlerde ResourceWarning ve beklenen yerel bağlantı reddi çıktısı vardı. İlk yeni test eski imzada hata verdi. Ayrıca muafiyet fonksiyonu geçici mock ile False yapıldığında yeni test gerçek davranış farkıyla başarısız oldu: özgün cevap yerine Katman-1 cevabı geldi (MUTATION_DETECTED=True).
Gerçek Codex ses yolu
İncelenen istemci: WindowsApps OpenAI.Codex_26.1007.2314.0_x64__2p2nqsd0c76g0, app/resources/app.asar, salt okunur. CLI: codex-cli 0.155.1. codex app-server generate-ts --experimental --out <geçici-dizin> ile yerel binary protokolü üretildi.
Protokolün ClientRequest.ts dosyasında gerçek yöntemler:
thread/realtime/appendText:{threadId, text, role}; role = user/developer/assistant. Girdi ekler; tek başına ses üretimini garanti ettiği iddia edilmez.thread/realtime/appendSpeech:{threadId, text}; açıklaması “append speakable text to thread realtime”.thread/realtime/start: thread kapsamlı oturum; websocket, webrtc veya existingCall taşıması.clientManagedHandoffsvarsayılan false; automatic Codex response handoff seçenekleri var. Başka oturumun existingCall bağlantısı kullanılmadı.turn/start,turn/steer,thread/queue/add,thread/queue/startvar.turn/steeraktifexpectedTurnIdister; bitmiş tura uygulanacak genel uyandırma yolu değildir.codex queue --thread ... --message ...mevcut CLI yüzeyidir; kuyruğa koymanın ses çıkışıyla aynı şey olduğu doğrulanmadı.
İstemcinin webview/assets/app-initial-b8e1c8014bb4.js dosyasında cra ve lra, sırasıyla appendText/appendSpeech RPC'sini manager.sendRequest ile çağırıyor. Realtime runtime aynı yöntemleri dışarı sunuyor; durdurulmuş durumda no-op. Somut arka plan tüketicisi: kullanım limiti yaklaşma bildirimi geldiğinde istemci appendSpeech çağırıp uyarıyı sesli söylüyor ([Composer] failed to speak realtime usage warning hata kolu). Bu, kullanıcı yeni mesaj yazmadan konuşma istemenin mevcut istemci mekanizması olduğunu kanıtlar. Bekçi düzeltmesinin canlı ses çıkışı test edilmiş değildir.
CompilerIntrinsics-87ea46a69911.js içinde WebRTC data channel üzerinden conversation.item.create gönderimi de var. Aynı aramada response.created olay işleyicisi görüldü; bunu response.create gönderim kanıtı saymıyoruz. Ham Realtime protokolü icat etmek yerine mevcut thread realtime RPC'si entegrasyon adayıdır.
Köprüdeki somut eksik
bridge.py:H._isle yalnız /responses ve model listesini alt köprüye yollar; diğer yollar, /realtime/calls dahil, doğrudan ChatGPT'ye gider. WebSocket upgrade 426 ile reddedilir. Dolayısıyla kopru.py:H._passthrough içindeki isteğe bağlı voice_prep.baslat(Location, headers, ...) kancası standart ayırıcı topolojisinde çağrı oluşturmayı göremez.
voice_prep.py ve ses_tuneli.py kaynak worktree ve kurulu AITURK resources/codex-bridge içinde yok. Yerel aramada Temp/oldb/voice_prep.py yedek kopyası bulundu ve yalnız okundu: Hazirlayici aynı call'a wss://api.openai.com/v1/live/ sideband açıyor; session.context.append ile bağlam ekliyor. Bu eski dosyada response.create/conversation.item.create gönderimi bulunmadı. Yedek dosya kurulu/aktif bileşen kanıtı değildir; çalıştırılmadı veya kopyalanmadı. ses_tuneli bulunamadı.
Bekçi entegrasyonunda kalanlar
Diğer ajanın auth + session + cursor notices SSE sözleşmesi henüz bu çalışmaya ulaşmadı. Sözleşme sonrası bildirimin doğrulanmış session kimliğini doğru Codex host/thread ve canlı realtime ömrüne bağlamak gerekiyor. SSE yeniden bağlanma/cursor tekrarlarında aynı düzeltmeyi iki kez seslendirmeme, bitmiş ses oturumuna göndermeme ve yeni kullanıcı konuşmasıyla çakışmayı ele alma davranışları kabul testine dahil edilmeli. Bunlar uygulanmış sözleşme değildir.
Yalnız bize ait deney oturumunda, ilk ses cevabı bittikten sonra bir notice üretilip mevcut app-server yetkili bağlantısından thread/realtime/appendSpeech ile düzeltme konuşmasının başlaması; başka thread'in etkilenmemesi; yeni kullanıcı mesajı gerekmemesi gözlenmeli. Bu canlı test yapılmadan “entegrasyon tamamlandı” denemez. Hermes masaüstü TTS/voice hook'ları bu Codex kanalının yerine kullanılmadı. İmzalı istemciye API eklenmedi.
Kokla / Codex alt ajan yolu
Mevcut yerel C:/Users/maste/.codex/skills/codex-kokla-ajan/SKILL.md açıkça ide/GPT-6-Astra CLI slug'ını, GPT-6-Astra OmniRoute combo kimliğini belirtiyor. gpt-6-astra tek modelini combo yerine kullanmayı yasaklıyor. Burada katalog yeniden sorgulanmadı; bilgi skill'in kaydıdır.
Mevcut CLI yolu: codex exec --model 'ide/GPT-6-Astra' --color never -C '<ayrı-worktree>' -o '<sonuç>' '<görev>'. --json süreç olaylarını, exec resume düzeltme devamını destekliyor. Skill ana ajana süreç kimliği, hedef, kalanlar, sonuç dosyası kaydı; çıktı takibi; bağımsız diff/test kontrolü; sıkıştırma sonrası kayıt ve kanıt okuma sorumluluğu veriyor. Bu görevde yeni bir CLI alt ajanı başlatılmadı. Runtime'ın sunulan spawn_agent aracı çağrısı unsupported call: spawn_agent döndü; bu nedenle kullanılabilir canlı alt ajan oluşturduğu iddia edilmez.
C:/Users/maste/.codex/hooks/codex_continuity.py save işlemi session/cwd kapsamlı; PreCompact yedekliyor, SessionStart/UserPromptSubmit geri yüklüyor, Stop aktif kayıtta devam uyarısı veriyor. Tamamlanma için kalan iş olmaması ve kanıt dosyası şartı var. Bu kayıt bağımsız test yerine geçmez. Runtime plugin CLI add/list/remove sağlar; istemcinin özel JS fonksiyonlarına genel plugin erişimi kanıtlanmadı. AITURK IDE devri yapılmadı.