Kopru: hata donduren katman atlanir, Jev devre kesicisi kalkti, ek model siniri 300

Katman-2 Codex isteginde hata olayi donduruyor, kopru bunu cevap diye
gonderiyor ve Codex ayni adimi bastan deneyip turu cevapsiz birakiyordu.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
yilsemandClaude Opus 5.5 committed 2026-10-11 09:40:44 +03:00
1 parent 11bbaddcc7
commit 77504b9aa4
4 files changed
+26 -29

No files matched your search

+10 -1
View File
@@ -876,7 +876,7 @@ class H(http.server.BaseHTTPRequestHandler):
Gecerse oldugu gibi verilir; gecmezse atilir ve ayni adimi siradaki katman yapar (ac(ad): (resp, rewriter,
tag)). Son katmanin cevabi sorulmadan akar. Beklerken SSE yorum satiri gider ki Codex akisi kopmus saymasin."""
self._akis_basligi(resp, resp.status)
kalan, son_yazi = list(sira), time.time()
kalan, son_yazi, katmanda = list(sira), time.time(), False
def w(b):
if b:
@@ -908,6 +908,14 @@ class H(http.server.BaseHTTPRequestHandler):
gecmedi = jev_denetim.karar(puan)
log(f"{tag} katman denetimi: ret={puan['ret']:.2f} sart={puan['sart']:.2f} -> "
f"{'GECMEDI' if gecmedi else 'gecti'} ({time.time() - t0:.1f} sn, {len(metin)} karakter)")
elif katmanda:
# Katman cevap yerine hata dondurduyse (or. arac cagrisi desteklemeyen model "upstream 400")
# acilamamis sayilir; hata cevap diye verilirse Codex ayni adimi bastan dener ve tur cevapsiz kalir.
govde = b"".join(parcalar)
if (b"event: error" in govde or b'"type":"error"' in govde or b'"type": "error"' in govde
or b"response.failed" in govde):
gecmedi = True
log(f"{tag} katman denetimi: katman hata dondurdu, siradakine geciliyor: {govde[-200:]!r}")
yeni = None
while gecmedi and kalan and yeni is None:
ad = kalan.pop(0)
@@ -918,6 +926,7 @@ class H(http.server.BaseHTTPRequestHandler):
if yeni is None:
break
resp, rewriter, tag = yeni
katmanda = True
log(f"{tag} katman denetimi: adim bu katmana verildi")
if not kalan:
return self._stream(resp, resp.status, tag, rewriter, izle, basliksiz=True)