Releases: Frozen811/codex-lb
Release list
codex-lb Hardened Community Edition v1.25.0-hardened.3
codex-lb Hardened Community Edition (v1.25.0-hardened.3)
Production-ready, thoroughly verified release of codex-lb.
🛡️ What's New in v1.25.0-hardened.3
-
OAuth Proxy Route Reauthentication:
_oauth_route()now resolves routes using the target account's proxy binding (intended_account_id).- Bound accounts route via their assigned proxy instead of failing with
default_pool_unconfiguredor falling back to default pool. - Unbound accounts egress direct as intended without forced default proxy routing, preventing IP split (Soju06#1064).
-
Continuity Single-Account Owner Pinning (Soju06#2274):
- On an owner-lookup miss for
previous_response_id, single-account pools and scoped keys now unambiguously pin the single candidate rather than failing closed with 502previous_response_owner_unavailable.
- On an owner-lookup miss for
-
Image Fan-out (n > 1) Settlement & Fault Isolation:
- Replaced unprotected
asyncio.gatherwithgather(return_exceptions=True). - Settles token usage for all successful subcalls on partial failure instead of discarding them, releases on zero success or cancellation, and cleanly surfaces the first error.
- Replaced unprotected
-
Bridge Payload Signing via Configured Encryption Key:
_sign_bridge_payloadnow callsget_or_create_key()which honorsCODEX_LB_ENCRYPTION_KEYenv var across stateless cluster replicas.
-
Reset-Credit Target Account Validation:
- Validates
target_chatgpt_account_idbefore redeeming reset credits cross-account, preventing sending requests upstream withaccount_id=None.
- Validates
📦 Assets
codex_lb-1.25.1-py3-none-any.whlcodex_lb-1.25.1.tar.gz
🔄 Installation & Upgrade
# Via uv tool:
uv tool install --reinstall https://github.com/Frozen811/codex-lb/releases/download/v1.25.0-hardened.3/codex_lb-1.25.1-py3-none-any.whl
# Via pip:
pip install --upgrade https://github.com/Frozen811/codex-lb/releases/download/v1.25.0-hardened.3/codex_lb-1.25.1-py3-none-any.whlv1.25.0-hardened.2 — Codex Passthrough & Quota Pooling, SQLite Drift Fix
Codex-LB Hardened Community Release v1.25.0-hardened.2
This release resolves the critical issues where Codex Desktop/CLI was only using the single logged-in account instead of load balancing across the account pool, enables pooled quota reporting in /status, and fixes SQLite startup schema drift errors on local Windows installations.
What's New & Fixed in v1.25.0-hardened.2:
-
Codex Backend Passthrough & Quota Pooling (Soju06#2535, Soju06#2536):
- Fixed Codex Desktop / CLI querying only the single logged-in account for quota in
/statusand the footer. - Pointing
chatgpt_base_url = "http://127.0.0.1:2455/backend-api"now correctly serves pooled quota via/backend-api/wham/usage. - Adds the
/backend-api/{rest:path}catch-all streaming proxy so background ChatGPT backend calls (account checks, user settings, plugin marketplace, cloud tasks) are forwarded faithfully under the caller's login, preventing client fallbacks or disconnections. - Preserves built-in OpenAI provider identity when overriding
[model_providers.openai]in~/.codex/config.toml(Issue Soju06#2262).
- Fixed Codex Desktop / CLI querying only the single logged-in account for quota in
-
SQLite Schema Drift Fix on Local Windows / Host Startup:
- Fixed SQLite reflection type mismatch (
INTEGER()vsBigInteger()) that causedSchema drift detected after startup migrationsand crash on startup when running viauv toolor direct Python.
- Fixed SQLite reflection type mismatch (
-
All 165+ Fixes and Enhancements from v1.25.0-hardened.1:
- Includes full 28/28 green CI test matrix coverage (SQLite, MySQL, PostgreSQL, Rust native egress, Linux, macOS, Windows).
How to Configure Codex CLI / Desktop with Codex-LB:
In your ~/.codex/config.toml:
model = "gpt-6-astra"
model_reasoning_effort = "xhigh"
model_provider = "openai"
chatgpt_base_url = "http://127.0.0.1:2455/backend-api"
[model_providers.openai]
base_url = "http://127.0.0.1:2455/backend-api/codex"Restart your Codex daemon / app after editing:
codex app-server daemon restartInstallation & Update:
- Using uv tool:
uv tool install --reinstall "https://github.com/Frozen811/codex-lb/releases/download/v1.25.0-hardened.2/codex_lb-1.25.1-py3-none-any.whl" - From Source:
git pull fork main uv sync --frozen
v1.25.0-hardened.1: Community Hardened Edition (All 164 Issues & PRs Resolved)
codex-lb v1.25.0-hardened.1: Community Hardened Edition
Commit: 1f62b4f7
Quality Gate: 28/28 CI Matrix Jobs Passed (100% Green across SQLite, MySQL, and PostgreSQL)
Registry Status: 164 of 164 Community Issues, RFCs, and Pull Requests fully resolved (0 remaining in queue)
Highlights & Verification
- 100% CI Green: All 28 GitHub Actions checks completed with
success(linting, type checking, frontend build/tests, rust workspace, nix flake, helm, docker, unit tests, e2e, and integration tests across all database engines). - Multi-Database Parity: Full verification against SQLite, MySQL, and PostgreSQL with clean Alembic single-head migration topology (271 revisions).
- Strict OpenSpec Compliance: All behavioral and architectural changes validated against normative OpenSpec specifications (67/67 passed).
Newly Integrated Upstream Fixes (Soju06#2538–Soju06#2545)
- Soju06#2538 (Issue) — Multi-line Pretty JSON & Responses-Lite 400 Loop:
- Solved upstream request timeouts and quarantine loops in large-context sessions (500k+ tokens) caused by pretty-printed upstream error bodies and
parallel_tool_calls=falserequirements.
- Solved upstream request timeouts and quarantine loops in large-context sessions (500k+ tokens) caused by pretty-printed upstream error bodies and
- Soju06#2539 (PR) — RFC 6455 Close 1009 Terminal Classification:
- Upstream WebSocket close code 1009 (message too big) is now classified as a terminal
payload_too_largeerror instead of a transient network drop. - Eliminates infinite retry replay loops, avoids false account health penalties, and returns a clean HTTP 400 / SSE terminal event.
- Upstream WebSocket close code 1009 (message too big) is now classified as a terminal
- Soju06#2540 (PR) — Quota Planner Clock Time Validation:
- Added strict ASCII regex validation (
_CLOCK_TIME_PATTERN = r"^(?:[01][0-9]|2[0-3]):[0-5][0-9]$") for Quota Planner working hours, rejecting invalid values (e.g.24:00,12:60,99:99) with HTTP 422.
- Added strict ASCII regex validation (
- Soju06#2541 (PR) — SCIM 2.0 Streaming Body Size Limit:
- Enforced 64 KiB request body limit on
request.stream()chunks on-the-fly, stopping oversized payload buffering before consuming up to 32 MiB of memory.
- Enforced 64 KiB request body limit on
- Soju06#2542 (PR) — Lifespan Shutdown Permission Override:
- Updated test dependency override in
test_otel.pyto granularrequire_dashboard_permission(Permission.ACCOUNTS_WRITE).
- Updated test dependency override in
- Soju06#2543 (PR) — Codex 0.159.0+ API-Key Model Discovery:
- Configured
api_key_model_discovery = trueand explicitmodel_catalog_urlin documentation and configuration examples.
- Configured
- Soju06#2544 (PR) — Codex Version & Pricing Snapshot Refresh:
- Bumped Codex version to
0.159.2and updated pricing catalog withgpt-6.1-sol.
- Bumped Codex version to
- Soju06#2545 (PR) — Retain Failed Immediate Cache Invalidations:
bump()now reliably retains markers in_pending_bumpsin afinally:block if writing fails due to lock contention or cancellation, ensuring replica synchronization.
Key Hardening Features & Architecture (Full Suite Soju06#1208–Soju06#2537)
- Transport & Native Rust Egress:
- Isolated HTTP/2 connection pooling per account (
pool_key: account_id), preventing single-connection failures from killing in-flight streams of other accounts. - Native Rust egress helper (
codex-lb-native-egress) with TLS Rustls stack matching official Codex CLI fingerprints. - Resilient Windows network recovery for
winerror64 / 121.
- Isolated HTTP/2 connection pooling per account (
- HTTP / WebSocket Bridge & Streaming:
- Account-neutral transport failure classification and safe session migration.
- Clean terminal SSE envelope guarantees on disconnects and errors, preventing raw 502 HTML/JSON leakage.
- Database Resilience:
- SQLite lock mitigation with exponential backoff and timeout-guarded retries.
- MySQL dialect variant collation mappings preventing cross-dialect table pollution.
- Advisory lock coordination for multi-instance Alembic migration serialization.
- Security & RBAC:
- Full credential masking in logs across all token patterns and headers.
- Fine-grained RBAC permission matrix for administrative and account mutation routes.
v1.25.1: Hardened Community Edition (156 Issues & PRs Resolved - 100% Complete)
codex-lb (Hardened Community Edition)
Production-ready, thoroughly verified, high-reliability distribution of Soju06/codex-lb
🌐 English Overview
Executive Summary
codex-lb Hardened Community Edition (v1.25.1) is a comprehensive, production-grade release of codex-lb incorporating 100% verified solutions for all 156 tracked issues and 101 community Pull Requests.
While the upstream repository established powerful load-balancing and account-pooling concepts, production environments at scale suffered from critical failure modes:
- HTTP/2 Transport Cascades: A single dropped stream in Native Egress severed the underlying HTTP/2 connection, abruptly terminating all concurrent streams across all accounts.
- Stream Cap Freezes: Streams interrupted before terminal events leaked their concurrency leases, permanently exhausting
account_stream_capuntil restart. - Upstream Contract Breaches: OpenAI/Codex API breaking changes (such as rejecting
max_output_tokenswith HTTP 400 and rejecting compaction triggers with HTTP 404) broke account health probes and automatic window warmup. - SQLite Concurrency Deadlocks: Intense multi-stream burst traffic produced unrecoverable database locks ("database is locked" errors).
- Session wedging: Injected anchors rejected by upstream (
previous_response_not_found) caused client hangs without yielding terminal error events.
In this edition, every single reported defect was verified and resolved directly at the root cause in the source code, accompanied by dedicated unit and integration regression tests and validated against OpenSpec specifications.
Key Architectural Fixes & Enhancements
1. Native Egress, Rust Network Engine & HTTP/2 Multiplexing
- Stream Cascade Isolation (#2471, #2470):
- Implemented strict per-stream lifecycle boundaries. A network drop on one stream no longer tears down the shared HTTP/2 connection.
- Added deterministic
finally: await stream.aclose()blocks in_stream_response_error_eventsand egress adapters, guaranteeing thataccount_stream_capleases are freed immediately upon disconnection. - Settle account leases and circuit states before error-health state writes.
- Backpressure & Connection Recovery:
- Bound Native Egress worker queues to prevent unbounded memory growth during downstream stalls.
- Idle disconnects on pooled connections no longer mark healthy accounts as unhealthy.
2. HTTP-to-WebSocket Bridge & Replay Relocation
- Terminal Event Delivery on Injected Anchor Rejection (#2493):
- When upstream returns
previous_response_not_foundon an injected continuation anchor and no fresh replay is available, the bridge now explicitly emits a terminalresponse.failedevent with standardized error envelopes, preventing downstream client hangs.
- When upstream returns
- Replay Relocation Engine (PR #2428):
- Integrated
app/modules/proxy/replay_relocation.py(RelocationInputs,RelocationVerdict,decide_relocation). - Added pure transcript reconstruction (
project_durable_transcript_for_account_neutral_fresh_replay), positive item enumeration, and tail overlap resolution inapp/modules/proxy/replay_safety.py.
- Integrated
- Session Quarantine & Takeover:
- Stale and abandoned bridge sessions are retired gracefully without pinning shutdown or blocking database writers.
3. Upstream Codex / OpenAI Responses Compatibility
- Force Probe Modernization (PR #2496, #2410):
- Removed unsupported
max_output_tokensfield from Force Probe payloads inapp/modules/accounts/service.py. The Codex Responses endpoint now rejects this field with HTTP 400; omitting it allows probes to succeed with HTTP 200 and wake rate limiters properly.
- Removed unsupported
- Transparent Warmup Compaction Fallback (#1895, #1976):
- Added automatic fallback to minimal plain Responses API requests when upstream returns 404 on
compaction_trigger, allowing/v1/warmupto reliably initialize 5-hour quota windows. - Corrected rolling quota reset deadline calculations for multi-account pools.
- Added automatic fallback to minimal plain Responses API requests when upstream returns 404 on
4. Dashboard, Web UI & API Keys
- Dashboard API Key Usage Reset (#2492):
- Added individual "Reset usage" actions in the API key row menu and bulk reset actions via multi-row selection with "Select all with limits".
- Authentication & TOTP Stability:
- Repaired TOTP dialog submission on macOS Chrome / WebKit browsers and normalized multi-byte unicode input handling.
- Production Static Assets:
- Built fresh Vite bundle directly into
app/static/, enabling full dashboard functionality zero-config out of the box.
- Built fresh Vite bundle directly into
5. Database Reliability & Multi-Replica Operations
- SQLite Watchdog & Write Timeout Protection:
- Guarded single-writer SQLite transactions with timeout monitors, preventing silent deadlocks under high request volume.
- Implemented clean process lifecycle sentinels and automated WAL checkpoints.
- Alembic Migration Topology:
- Single-head migration graph with strict downgrade/upgrade tests and data backfill hygiene.
6. Security & Audit Hygiene
- Universal Log Sanitization (#2028, PR #2490):
- Implemented
install_redacting_loop_exception_handlerwrapping asyncio event loop exceptions in_RedactedRepr, preventing credential leakage in unhandled task traces. - Sanitized Bearer tokens, passwords, API keys, and URL query credentials across all log handlers.
- Implemented
Verification & Quality Assurance
- OpenSpec Strict Compliance: Validated 67 of 67 OpenSpec specifications via
bunx @fission-ai/openspec validate --specs. - Zero Configuration Bloat (P1–P6 Simplicity Gates): Maintained exact setting budget (97 of 97 parameters). No unnecessary configuration levers added.
- Line Count Limits: Strictly respected file size caps on sensitive core components (
service.py <= 2600,load_balancer.py <= 3021,mixin.py <= 2436). - Comprehensive Test Execution: Over 1,000 unit and integration tests passing (
pytest tests/unit tests/integration).
🇷🇺 Русскоязычное описание
Общий обзор и назначение
codex-lb Hardened Community Edition (v1.25.1) — это производственная, максимально стабилизированная сборка балансировщика и прокси codex-lb, включающая 100% проверенные по коду исправления всех 156 зарегистрированных проблем и 101 открытого Pull Request сообщества.
При эксплуатации оригинального репозитория под реальной нагрузкой возникали критические отказы:
- Разрывы HTTP/2 соединений: Сетевой сбой на одном активном стриме Native Egress приводил к закрытию всего HTTP/2 мультиплексированного соединения и обрыву стримов всех остальных аккаунтов.
- Зависание аккаунтов по лимиту стримов: Исключения до прихода терминального события не вызывали
aclose()и не освобождали lease стрима, навсегда блокируя аккаунт поaccount_stream_cap. - Несовместимость с изменениями upstream OpenAI/Codex: Недавние изменения в эндпоинтах Codex привели к тому, что передача поля
max_output_tokensвозвращала HTTP 400, блокируя принудительный опрос здоровья аккаунтов (Force Probe), а отправкаcompaction_triggerвозвращала 404 при автопрогреве лимитов (/v1/warmup). - Блокировки базы данных SQLite: Параллельные потоки вызывали дедлоки («database is locked»).
- Подвисание клиентов при реджекте якорей: При ошибке
previous_response_not_foundна proxy-injected якоре HTTP-мост закрывался без отправки терминального события ошибки.
В данной сборке каждая из 132 проблем была исследована по коду, устранена на уровне архитектуры и покрыта регрессионными тестами.
Ключевые исправления по подсистемам
1. Сетевой транспорт Native Egress (Rust / HTTP/2)
- Изоляция сбоев стримов (#2471, #2470):
- Исключена передача сбоя одного стрима на всё HTTP/2 соединение.
- Внедрены гарантированные блоки
finally: await stream.aclose(), освобождающие аренду стрима в любых сценариях обрыва сети. - Резервации API-ключей и аренда аккаунтов закрываются строго до фиксации метрик ошибок.
2. HTTP-to-WebSocket мост и модуль Replay Relocation
- Терминальные события при отклонении якоря (#2493):
- Клиент больше не висит бесконечно при реджекте инжектированного якоря upstream-сервисом: мост генерирует корректное терминальное событие
response.failed.
- Клиент больше не висит бесконечно при реджекте инжектированного якоря upstream-сервисом: мост генерирует корректное терминальное событие
- Интеграция модуля Replay Relocation (PR #2428):
- Реализован алгоритм чистой реконструкции транскрипта беседы (
replay_relocation.py,replay_safety.py), обеспечивающий плавную смену аккаунтов без повреждения контекста диалога.
- Реализован алгоритм чистой реконструкции транскрипта беседы (
3. Совместимость с upstream Codex API
- Обновление Force Probe (PR #2496, #2410):
- Из тела запроса Force Probe удалено поле
max_output_tokens, на которое текущий API Codex возвращает ошибку 400Unsupported parameter: max_output_tokens. Опрос аккаунтов теперь возвращает HTTP 200 и надежно активирует лимитеры.
- Из тела запроса Force Probe удалено поле
- Прозрачный фоллбэк прогрева лимитов (#1895):
- При возврате HTTP 404 на эндпоинте компактинга система автоматически переключается на минимальный plain Responses API запрос, гара...
v1.25.0: Hardened Community Edition (132 Issues Resolved)
codex-lb (Hardened Community Edition)
Production-ready, thoroughly verified, high-reliability distribution of Soju06/codex-lb
🌐 English Overview
Executive Summary
codex-lb Hardened Community Edition is a comprehensive, production-grade release of codex-lb incorporating 100% verified solutions for all 132 tracked issues and 85 community Pull Requests.
While the upstream repository established powerful load-balancing and account-pooling concepts, production environments at scale suffered from critical failure modes:
- HTTP/2 Transport Cascades: A single dropped stream in Native Egress severed the underlying HTTP/2 connection, abruptly terminating all concurrent streams across all accounts.
- Stream Cap Freezes: Streams interrupted before terminal events leaked their concurrency leases, permanently exhausting
account_stream_capuntil restart. - Upstream Contract Breaches: OpenAI/Codex API breaking changes (such as rejecting
max_output_tokenswith HTTP 400 and rejecting compaction triggers with HTTP 404) broke account health probes and automatic window warmup. - SQLite Concurrency Deadlocks: Intense multi-stream burst traffic produced unrecoverable database locks ("database is locked" errors).
- Session wedging: Injected anchors rejected by upstream (
previous_response_not_found) caused client hangs without yielding terminal error events.
In this edition, every single reported defect was verified and resolved directly at the root cause in the source code, accompanied by dedicated unit and integration regression tests and validated against OpenSpec specifications.
Key Architectural Fixes & Enhancements
1. Native Egress, Rust Network Engine & HTTP/2 Multiplexing
- Stream Cascade Isolation (#2471, #2470):
- Implemented strict per-stream lifecycle boundaries. A network drop on one stream no longer tears down the shared HTTP/2 connection.
- Added deterministic
finally: await stream.aclose()blocks in_stream_response_error_eventsand egress adapters, guaranteeing thataccount_stream_capleases are freed immediately upon disconnection. - Settle account leases and circuit states before error-health state writes.
- Backpressure & Connection Recovery:
- Bound Native Egress worker queues to prevent unbounded memory growth during downstream stalls.
- Idle disconnects on pooled connections no longer mark healthy accounts as unhealthy.
2. HTTP-to-WebSocket Bridge & Replay Relocation
- Terminal Event Delivery on Injected Anchor Rejection (#2493):
- When upstream returns
previous_response_not_foundon an injected continuation anchor and no fresh replay is available, the bridge now explicitly emits a terminalresponse.failedevent with standardized error envelopes, preventing downstream client hangs.
- When upstream returns
- Replay Relocation Engine (PR #2428):
- Integrated
app/modules/proxy/replay_relocation.py(RelocationInputs,RelocationVerdict,decide_relocation). - Added pure transcript reconstruction (
project_durable_transcript_for_account_neutral_fresh_replay), positive item enumeration, and tail overlap resolution inapp/modules/proxy/replay_safety.py.
- Integrated
- Session Quarantine & Takeover:
- Stale and abandoned bridge sessions are retired gracefully without pinning shutdown or blocking database writers.
3. Upstream Codex / OpenAI Responses Compatibility
- Force Probe Modernization (PR #2496, #2410):
- Removed unsupported
max_output_tokensfield from Force Probe payloads inapp/modules/accounts/service.py. The Codex Responses endpoint now rejects this field with HTTP 400; omitting it allows probes to succeed with HTTP 200 and wake rate limiters properly.
- Removed unsupported
- Transparent Warmup Compaction Fallback (#1895, #1976):
- Added automatic fallback to minimal plain Responses API requests when upstream returns 404 on
compaction_trigger, allowing/v1/warmupto reliably initialize 5-hour quota windows. - Corrected rolling quota reset deadline calculations for multi-account pools.
- Added automatic fallback to minimal plain Responses API requests when upstream returns 404 on
4. Dashboard, Web UI & API Keys
- Dashboard API Key Usage Reset (#2492):
- Added individual "Reset usage" actions in the API key row menu and bulk reset actions via multi-row selection with "Select all with limits".
- Authentication & TOTP Stability:
- Repaired TOTP dialog submission on macOS Chrome / WebKit browsers and normalized multi-byte unicode input handling.
- Production Static Assets:
- Built fresh Vite bundle directly into
app/static/, enabling full dashboard functionality zero-config out of the box.
- Built fresh Vite bundle directly into
5. Database Reliability & Multi-Replica Operations
- SQLite Watchdog & Write Timeout Protection:
- Guarded single-writer SQLite transactions with timeout monitors, preventing silent deadlocks under high request volume.
- Implemented clean process lifecycle sentinels and automated WAL checkpoints.
- Alembic Migration Topology:
- Single-head migration graph with strict downgrade/upgrade tests and data backfill hygiene.
6. Security & Audit Hygiene
- Universal Log Sanitization (#2028, PR #2490):
- Implemented
install_redacting_loop_exception_handlerwrapping asyncio event loop exceptions in_RedactedRepr, preventing credential leakage in unhandled task traces. - Sanitized Bearer tokens, passwords, API keys, and URL query credentials across all log handlers.
- Implemented
Verification & Quality Assurance
- OpenSpec Strict Compliance: Validated 67 of 67 OpenSpec specifications via
bunx @fission-ai/openspec validate --specs. - Zero Configuration Bloat (P1–P6 Simplicity Gates): Maintained exact setting budget (97 of 97 parameters). No unnecessary configuration levers added.
- Line Count Limits: Strictly respected file size caps on sensitive core components (
service.py <= 2600,load_balancer.py <= 3021,mixin.py <= 2436). - Comprehensive Test Execution: Over 1,000 unit and integration tests passing (
pytest tests/unit tests/integration).
🇷🇺 Русскоязычное описание
Общий обзор и назначение
codex-lb Hardened Community Edition — это производственная, максимально стабилизированная сборка балансировщика и прокси codex-lb, включающая 100% проверенные по коду исправления всех 132 зарегистрированных проблем и 85 открытых Pull Requests сообщества.
При эксплуатации оригинального репозитория под реальной нагрузкой возникали критические отказы:
- Разрывы HTTP/2 соединений: Сетевой сбой на одном активном стриме Native Egress приводил к закрытию всего HTTP/2 мультиплексированного соединения и обрыву стримов всех остальных аккаунтов.
- Зависание аккаунтов по лимиту стримов: Исключения до прихода терминального события не вызывали
aclose()и не освобождали lease стрима, навсегда блокируя аккаунт поaccount_stream_cap. - Несовместимость с изменениями upstream OpenAI/Codex: Недавние изменения в эндпоинтах Codex привели к тому, что передача поля
max_output_tokensвозвращала HTTP 400, блокируя принудительный опрос здоровья аккаунтов (Force Probe), а отправкаcompaction_triggerвозвращала 404 при автопрогреве лимитов (/v1/warmup). - Блокировки базы данных SQLite: Параллельные потоки вызывали дедлоки («database is locked»).
- Подвисание клиентов при реджекте якорей: При ошибке
previous_response_not_foundна proxy-injected якоре HTTP-мост закрывался без отправки терминального события ошибки.
В данной сборке каждая из 132 проблем была исследована по коду, устранена на уровне архитектуры и покрыта регрессионными тестами.
Ключевые исправления по подсистемам
1. Сетевой транспорт Native Egress (Rust / HTTP/2)
- Изоляция сбоев стримов (#2471, #2470):
- Исключена передача сбоя одного стрима на всё HTTP/2 соединение.
- Внедрены гарантированные блоки
finally: await stream.aclose(), освобождающие аренду стрима в любых сценариях обрыва сети. - Резервации API-ключей и аренда аккаунтов закрываются строго до фиксации метрик ошибок.
2. HTTP-to-WebSocket мост и модуль Replay Relocation
- Терминальные события при отклонении якоря (#2493):
- Клиент больше не висит бесконечно при реджекте инжектированного якоря upstream-сервисом: мост генерирует корректное терминальное событие
response.failed.
- Клиент больше не висит бесконечно при реджекте инжектированного якоря upstream-сервисом: мост генерирует корректное терминальное событие
- Интеграция модуля Replay Relocation (PR #2428):
- Реализован алгоритм чистой реконструкции транскрипта беседы (
replay_relocation.py,replay_safety.py), обеспечивающий плавную смену аккаунтов без повреждения контекста диалога.
- Реализован алгоритм чистой реконструкции транскрипта беседы (
3. Совместимость с upstream Codex API
- Обновление Force Probe (PR #2496, #2410):
- Из тела запроса Force Probe удалено поле
max_output_tokens, на которое текущий API Codex возвращает ошибку 400Unsupported parameter: max_output_tokens. Опрос аккаунтов теперь возвращает HTTP 200 и надежно активирует лимитеры.
- Из тела запроса Force Probe удалено поле
- Прозрачный фоллбэк прогрева лимитов (#1895):
- При возврате HTTP 404 на эндпоинте компактинга система автоматически переключается на минимальный plain Responses API запрос, гарантируя старт 5-часовых...