Skip to content

Release v1.25.0-beta.2

Pre-release
Pre-release

Choose a tag to compare

@Soju06 Soju06 released this 07 Sep 10:37
6bba5ce

What's Changed

  • fix(proxy): quarantine the bridge key when the retry circuit opens on a poisoned anchor by @dpearson2699 in #1891
  • fix(db): skip SQLite scan after verified clean shutdown by @JustYannicc in #1907
  • fix(proxy): preserve stale-anchor error shape presence by @JustYannicc in #1955
  • fix(proxy): preserve recovery spool fence during local rebind by @JustYannicc in #1956
  • fix(images): release API-key reservation when cancelled before first SSE frame by @mastertyko in #1970
  • fix(security): bind firewall to raw peer by @mastertyko in #1987
  • fix(middleware): bound zstd decoded output by @mastertyko in #1983
  • fix(helm): default global backpressure off by @mastertyko in #1984
  • fix(oauth): fence stale dashboard poll generations by @mastertyko in #1985
  • fix(api-keys): enforce generated key format by @mastertyko in #1980
  • fix(api-keys): serve unslashed collection routes by @mastertyko in #1982
  • chore(openspec): archive the shared-future/defer-cancellation change chain by @Soju06 in #1993
  • refactor(core): consolidate defer-cancellation waits into one canonical helper by @Soju06 in #1992
  • fix(proxy): recover Codex edge-challenge WebSocket failures by @Soju06 in #1994
  • fix(auth): keep reauth-required accounts routable by @mustafa0x in #1877
  • feat(dashboard): weekly runway model + per-key burn attribution by @Soju06 in #1797
  • feat(nix): add flake.nix by @aaravrav in #1948
  • feat(dashboard): redesign weekly pace card as runway timeline by @Soju06 in #1798
  • feat(ui): persisted dashboard refresh cadence and smooth quota percent by @Soju06 in #1996
  • feat(proxy): add native Codex traffic parity by @Soju06 in #1995
  • chore(deps): bump the python-minor-patch group with 6 updates by @dependabot[bot] in #2008
  • fix(transcribe): make subscription transcription reservation release cancellation-safe by @mastertyko in #1966
  • fix(proxy): defer Live cancellation through lease release by @mastertyko in #1986
  • fix(proxy): type required HTTP-bridge reconnect owner provenance by @mastertyko in #1988
  • fix(auth): reject duplicate trusted identity fields by @mastertyko in #2010
  • fix(oauth): stop callback query secrets from reaching logs by @mastertyko in #2011
  • fix(api): preserve OpenAI root error envelopes by @mastertyko in #2013
  • fix(proxy): release reset-credit claims on cancellation by @mastertyko in #2015
  • fix(proxy): preserve warmup usage on cancellation by @mastertyko in #2016
  • fix(request-logs): keep rolling windows current by @mastertyko in #2019
  • fix(metrics): aggregate latency histogram buckets by @mastertyko in #2020
  • fix(config): reject invalid operator values by @mastertyko in #2023
  • test(native-egress): synchronize websocket lifecycle events by @mastertyko in #2026
  • chore(docker): bump pgautoupgrade/pgautoupgrade from 18-alpine to 18-alpine by @dependabot[bot] in #2004
  • chore(docker): bump astral-sh/uv from 0.12.5 to 0.12.8 by @dependabot[bot] in #2005
  • chore(ci): bump github/codeql-action/upload-sarif from 4.37.8 to 4.37.9 by @dependabot[bot] in #2007
  • fix(proxy): cancel uvicorn keep-alive timer on every connection_lost and lower --timeout-keep-alive default by @Soju06 in #2042
  • fix(proxy): release the aiohttp ClientResponse when a routed SSE stream stops before EOF by @Soju06 in #2045
  • perf(proxy): share one process-wide SSLContext across per-call Codex sessions by @Soju06 in #2039
  • perf(proxy-responses): stamp the account installation id once per request via identity memo and client_metadata splice by @Soju06 in #2044
  • perf(proxy): replace the last BaseHTTPMiddleware (image route started_at) with a pure ASGI middleware by @Soju06 in #2046
  • perf(proxy-responses): compute to_payload once per bridge prepare and early-exit the 8 KiB usage estimate by @Soju06 in #2043
  • perf(dashboard): bound projection history to the EWMA tail plus a 3h floor and cheapen per-row hydration/signature by @Soju06 in #2050
  • perf(proxy-responses): parse each bridge SSE event once and relay unchanged upstream JSON text without re-dump by @Soju06 in #2049
  • perf(proxy-responses): reuse the reader wakeup task and use fast_acquire locks in the HTTP-bridge relay loop by @Soju06 in #2047
  • perf(proxy): clone selection-cache Account/UsageHistory rows via new_instance + instance_dict instead of the ORM constructor by @Soju06 in #2040
  • perf(proxy): stop deep-validating and re-dumping passthrough JSON fields (input/tools/messages) in request models by @Soju06 in #2051
  • fix(proxy): keep proxy credentials out of aiohttp ConnectionKey and redact URL userinfo in rendered logs by @Soju06 in #2053
  • fix(logging): redact secrets in asyncio loop exception-handler context and harden proxy username validation by @Soju06 in #2054
  • fix(audit): restrict log access to admins by @mastertyko in #2022
  • fix(api-keys): prevent caching returned secrets by @mastertyko in #2021
  • fix(proxy): prevent level-cancellation busy spins by @mustafa0x in #1958
  • fix(dashboard): recover failed routes by @mastertyko in #2018
  • test(native-egress): run routed wire probe in CI by @mastertyko in #2024
  • fix(proxy): retire cooldown-suppressed HTTP bridge sessions unless another turn owns them by @Soju06 in #2072
  • fix(http-bridge): abandon expired ambiguous operations by @Soju06 in #2071
  • fix(metrics): bound request metric path and method label cardinality by @mastertyko in #1967
  • fix(proxy): settle keyed streams before health by @mastertyko in #1989
  • fix(proxy): settle accepted background JSON by @mastertyko in #2014
  • fix(proxy): report duplicate tool-call replay terminal by @Komzpa in #2082
  • fix(http-bridge): reject unsafe forwarded headers by @Komzpa in #2087
  • fix(proxy): normalize native HTTP compression by @mastertyko in #2012
  • fix(dashboard): recover from overview load errors by @mastertyko in #2017
  • fix(logging): bound secret patterns to the current line by @mastertyko in #2091
  • fix(openspec): repair and enforce canonical validation by @mastertyko in #2025
  • test(otel): isolate startup database paths by @JustYannicc in #2066
  • test(proxy-responses): fence leaked recovery settlement tasks by @JustYannicc in #2067
  • chore(proxy): restore the service.py 2600-line architecture ceiling by @Soju06 in #2094
  • fix(proxy): normalize SDK transcription headers by @kostazol in #2031
  • fix(compact): fail over revoked refresh accounts by @msmahdinejad in #2080
  • fix(proxy): forward canonical prompt-cache continuations by @MIlhamDedi in #2036
  • fix(usage): deactivate accounts only on explicit terminal signals, not bare 404/402 by @Soju06 in #2055
  • fix(proxy): ignore detached durable bridge rows as continuity owner evidence by @Soju06 in #2063
  • chore(deps): bump the frontend-minor-patch group in /frontend with 12 updates by @dependabot[bot] in #2006
  • test(sim): deterministic proxy turn-lifecycle simulation harness (takeover of #1647) by @Soju06 in #2103
  • chore(ci): guard proxy turn-lifecycle modules against raw asyncio timing sites by @Soju06 in #2104
  • fix(http-bridge): treat usage_limit_reached as a terminal in the account capacity wait (#2123 WP-E) by @Soju06 in #2124
  • feat(usage): coalesced on-demand account refresh after usage_limit_reached (#2123 WP-F) by @Soju06 in #2125
  • fix(deps): require anyio>=4.14 to close Lock cancelled-waiter deadlock by @Soju06 in #2129
  • fix(proxy): stop level-cancel cascade from respinning deferred probe cleanup by @Soju06 in #2130
  • chore: release v1.25.0-beta.2 by @Soju06 in #1991

New Contributors

Full Changelog: v1.25.0-beta.1...v1.25.0-beta.2

Install / Run

uvx --from "codex-lb==1.25.0b2" codex-lb
docker pull ghcr.io/Soju06/codex-lb:1.25.0-beta.2
helm install codex-lb oci://ghcr.io/soju06/charts/codex-lb --version 1.25.0-beta.2 --devel