fix(codex-bridge): preserve plaintext peer tasks and fail invalid transfers without retries
This commit is contained in:
1 parent
212015e7c9
commit
1aa033a751
8 files changed
+143
-10
No files matched your search
@@ -35,7 +35,7 @@ import gecis_context
|
||||
import terminal_stream
|
||||
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
SURUM = "21" # AITURK IDE'nin bekledigi kopru surumu (codex-link-config.ts CODEX_BRIDGE_VERSION)
|
||||
SURUM = "22" # AITURK IDE'nin bekledigi kopru surumu (codex-link-config.ts CODEX_BRIDGE_VERSION)
|
||||
try:
|
||||
with open(os.path.abspath(__file__), "rb") as _f:
|
||||
KOD = hashlib.sha256(_f.read()).hexdigest()[:8]
|
||||
@@ -521,6 +521,16 @@ class H(http.server.BaseHTTPRequestHandler):
|
||||
except Exception:
|
||||
req = {}
|
||||
if external:
|
||||
# Opaque peer tasks cannot be sent to another provider. Detect
|
||||
# this permanent transfer error before committing SSE headers:
|
||||
# stock Codex retries unknown response.failed stream errors.
|
||||
# Projection validates a copy; the saved/request history stays
|
||||
# intact and no task is dropped or sent to the worker.
|
||||
try:
|
||||
gecis_context.portable_reasoning(req)
|
||||
except gecis_context.TransferError as e:
|
||||
return self._json(400, {"error": {"type": "invalid_request_error",
|
||||
"code": "aiturk_transfer_failed", "message": str(e), "retryable": False}})
|
||||
self._failure_key = terminal_stream.request_key(req or {"raw": govde.hex()}, self.headers)
|
||||
previous_failure = self.server.failure_replays.take(self._failure_key)
|
||||
if previous_failure:
|
||||
|
||||
Reference in new issue
Block a user