github Soju06/codex-lb v1.24.0
Release v1.24.0

latest release: v1.25.0-beta.1
10 days ago

What's Changed

  • fix(quota-planner): compare warmup reset epochs in UTC by @Komzpa in #1623
  • Keep HTTP bridge missing-created watchdog armed after prelude by @Komzpa in #1580
  • docs(openspec): archive landed performance and reliability changes by @Soju06 in #1694
  • fix(proxy): release the API-key reservation on all exits of the models endpoints by @Komzpa in #1653
  • fix(compact): omit oversized non-state tool tail by @Komzpa in #1235
  • fix(dashboard): separate quota and purchased credits by @Dvredin in #1670
  • fix(dashboard): exclude cancelled/client_disconnected from error rate by @Soju06 in #1696
  • fix(proxy): durably recover hard HTTP bridge operations by @shaqman in #1657
  • fix(http-bridge): keep idle retirements out of retry circuit by @leventov in #1677
  • feat(reset-credits): add refresh scheduler enable toggle by @Soju06 in #1701
  • feat(telemetry): anonymous usage telemetry with informed opt-out consent by @Soju06 in #1618
  • fix(dashboard): pin web asset MIME types against poisoned OS registries by @Soju06 in #1709
  • docs(openspec): archive 90 landed changes and sync their specs by @Soju06 in #1713
  • fix(dashboard): distinguish first-run empty states from filter mismatch by @mastertyko in #1729
  • fix(chat): omit unset tools on mapped Responses payloads by @mastertyko in #1725
  • fix(http-bridge): refuse foreign claims on live DRAINING leases by @mastertyko in #1722
  • fix(proxy): keep stream idle timeouts account-neutral by @mastertyko in #1718
  • fix(proxy): settle compact failover before account health by @mastertyko in #1717
  • fix(proxy): close non-stream chat collect and map error status by @mastertyko in #1712
  • fix(proxy): sweep idle bridge sessions without request traffic by @Soju06 in #1747
  • docs(proxy): document cluster-wide account cap partitioning by @Soju06 in #1750
  • fix(cache): keep an aborted invalidation bump queued by @Soju06 in #1748
  • feat(db): report SQLite write transactions that outlive the busy timeout by @Soju06 in #1752
  • fix(proxy): fence successor bridge claims against the retiring predecessor by @Soju06 in #1751
  • fix(proxy): add explicit Daybreak capability routing by @mastertyko in #1742
  • fix(review): keep Codex review sessions resumable by @leventov in #1678
  • fix(accounts): recover Free accounts after reset by @HulianBuligon in #1700
  • fix(proxy): keep file-pin owner on soft 1011 reconnect by @mastertyko in #1761
  • fix(proxy): persist file ownership across replicas by @mastertyko in #1521
  • fix(proxy): scope backend Codex affinity by thread identity by @leventov in #1703
  • fix(http-bridge): preserve goal-restart recovery across reconnects by @leventov in #1680
  • fix(dashboard): preserve cancelled request count by @mastertyko in #1766
  • fix(dashboard): show cancelled request logs by @mastertyko in #1769
  • fix(dashboard): surface upstream route metadata by @mastertyko in #1767
  • fix(models): correct GPT-5.6 context windows by @kidclone3 in #1691
  • fix(auth): guard the refresh singleflight negative cache by successor ownership by @Komzpa in #1652
  • test(proxy): add property tests for response payload invariants by @iqbalmaulana03 in #1699
  • fix(http-bridge): dedupe retry circuit failures per send by @choi138 in #1743
  • fix(proxy): abandon unavailable owner on thread-scoped goal restart by @mastertyko in #1764
  • fix(proxy): do not rewrite thread locality for a file-pin owner by @mastertyko in #1765
  • fix(usage): settle live snapshots after account consolidation by @mastertyko in #1773
  • fix(proxy): normalize single-account warmup failures by @mastertyko in #1774
  • fix(proxy): settle terminal spool append failures by @mastertyko in #1775
  • chore(github): retire codex review label gate in favor of CodeRabbit by @Soju06 in #1763
  • fix(proxy): hold fenced hard turns through cooldown by @kevinsslin in #1739
  • fix(proxy): stop abandoning an unresolved inflight session-creation future by @Komzpa in #1644
  • chore(tooling): run Makefile Python scripts through uv by @kevinsslin in #1741
  • fix(proxy): separate websocket scope cleanup budget by @kevinsslin in #1723
  • fix(proxy): route source-owned models off the WebSocket transport by @Borealin in #1659
  • feat(proxy): report websocket cleanup phase by @kevinsslin in #1726
  • fix(proxy): complete disconnect cleanup — pool leak, charged reservation, mutable terminal reason by @Komzpa in #1645
  • fix(dashboard): show cancellation totals in reports by @mastertyko in #1772
  • feat(model-sources): advertise operator-declared reasoning efforts by @Borealin in #1661
  • feat(ui): customize dashboard request-log columns by @BrenticusMaximus in #1503
  • fix(proxy): keep abrupt eventless websocket drops account-neutral by @Soju06 in #1777
  • fix(db): bound wedged SQLite session teardown and reclaim the connection by @Soju06 in #1778
  • perf(proxy): disable permessage-deflate on direct-egress upstream websockets by @Soju06 in #1786
  • perf(middleware): convert BaseHTTPMiddleware layers to pure ASGI by @Soju06 in #1787
  • fix(compact): recover previous-response-pinned compaction from quota-excluded owners by @Soju06 in #1780
  • perf: coalesce same-owner sticky session TTL refresh upserts by @Soju06 in #1790
  • docs(dashboard): clarify routing, sticky affinity, quota thresholds, warm-up, and eligibility copy by @Soju06 in #1781
  • fix(server): serve h2c upgrade offers as plain HTTP/1.1 instead of rejecting them by @Soju06 in #1782
  • fix(db): add postgres shm_size and raise default pool headroom by @Soju06 in #1791
  • perf(dashboard): cap projections bulk usage-history read per account by @Soju06 in #1779
  • perf(accounts): bound the account-listing live tail with a 2h fold lag and a 30s summary cache by @Soju06 in #1792
  • perf(accounts): make account deletion a fast mark + background batch drain by @Soju06 in #1795
  • fix(usage): fence leaked live-usage-ingestor tasks and settle their failures deterministically by @Soju06 in #1783
  • fix(docker): upgrade util-linux family in runtime image for CVE-2026-53615 by @Soju06 in #1796
  • perf(proxy): validate stream payloads only for lifecycle events by @Soju06 in #1784
  • perf(api-keys,proxy): shape ORM hot-path queries by @Soju06 in #1788
  • perf(proxy): relay unmodified SSE frames verbatim by @Soju06 in #1785
  • perf(api-keys): skip usage reservations when no limit applies by @Soju06 in #1789
  • chore: release v1.24.0-beta.1 by @Soju06 in #1704
  • chore(ci): bump astral-sh/setup-uv from 9.0.0 to 10.0.1 by @dependabot[bot] in #1802
  • chore(deps): bump the python-minor-patch group with 10 updates by @dependabot[bot] in #1806
  • chore(deps): bump openai from 2.53.0 to 3.0.0 by @dependabot[bot] in #1807
  • chore(docker): bump astral-sh/uv from 0.12.3 to 0.12.5 by @dependabot[bot] in #1803
  • chore(deps): bump the frontend-minor-patch group in /frontend with 12 updates by @dependabot[bot] in #1804
  • chore(ci): bump github/codeql-action/upload-sarif from 4.37.6 to 4.37.7 by @dependabot[bot] in #1805
  • feat(api-keys): allow per-key reasoning effort policies by @yshishenya in #1642
  • test(proxy): keep eventless anchored bridge replay fail-closed by @kevinsslin in #1736
  • feat(reports): Add API Key Filtering to Reports Dashboard by @SAKTHIMARAN-VENOM in #1728
  • fix(proxy): compact transport switch + trigger canonicalization (supersedes #1749) by @Soju06 in #1809
  • feat(proxy): support Ultrafast service tier by @evan-choi in #1734
  • feat(ui): surface reasoning token usage by @chaoxu in #1801
  • fix(models): raise GPT-5.6 bootstrap max_context_window to 872k by @zenasharp in #1813
  • fix(proxy): drop malformed compact item ids by @yshishenya in #1815
  • chore(openspec): archive GPT-5.6 context-window changes in dependency order by @Soju06 in #1819
  • fix(proxy): classify parameterless previous response errors by @rknightion in #1818
  • chore: release v1.24.0-beta.2 by @Soju06 in #1810
  • fix(proxy): bind account-bound retries to dispatch owner by @mastertyko in #1829
  • fix(proxy): reject truncated chat completion streams by @mastertyko in #1833
  • fix(proxy): retain image reservation recovery ownership by @mastertyko in #1822
  • fix(warmup): warm paid-to-free transitions by @HulianBuligon in #1825
  • feat(model-sources): embeddings source capability with request-log accounting by @Komzpa in #1776
  • fix(helm): bind TTFT dashboard SQL datasource by @mastertyko in #1827
  • fix(reports): format full Cost values with grouping separators by @hanseo0507 in #1814
  • fix(proxy): preserve compact terminal error type by @mastertyko in #1824
  • feat(config): timeout-invariant linter — validate deadline/TTL inequalities at startup and in CI by @Komzpa in #1622
  • chore(repo): drop root agent-debris files and enforce a root-file allowlist budget by @Soju06 in #1837
  • fix(models): apply context-window overrides to /v1 input context fields by @yeongjun-cigro in #1808
  • test(oauth): make test_oauth_flow order-independent by fencing the shared OAuth store by @Soju06 in #1839
  • fix(http-bridge): classify recovery error frames and poison same-anchor eventless failures by @Soju06 in #1841
  • fix(proxy): O(1) shared-future admission waits + event-loop lag watchdog by @Soju06 in #1842
  • feat(telemetry): report consent state and send a decision-time opt-out signal by @Soju06 in #1835
  • chore: release v1.24.0-beta.3 by @Soju06 in #1834
  • feat(frontend): configure model-source reasoning efforts by @Komzpa in #1848
  • fix(proxy): absorb replay-safe compaction recovery by @Komzpa in #1849
  • fix(proxy): terminate suppressed duplicate tool-call replays by @Komzpa in #1706
  • fix(db): repair retired identity/warmup migration stamp by @Komzpa in #1847
  • fix(proxy): demote quarantined bridge reattach keys by @Komzpa in #1730
  • fix(proxy): guard model-transition owner-conflict fork by @Komzpa in #1619
  • Revert five squash merges landed outside the merge triage round by @Komzpa in #1858
  • fix(proxy): wait on usage-refresh singleflight without asyncio.shield by @Soju06 in #1897
  • chore: release v1.24.0-beta.4 by @Soju06 in #1851
  • chore(deps): bump the python-minor-patch group with 7 updates by @dependabot[bot] in #1915
  • chore(main): release 1.24.0 by @Soju06 in #1692

New Contributors

Full Changelog: v1.23.0...v1.24.0

Install / Run

uvx codex-lb
docker pull ghcr.io/Soju06/codex-lb:1.24.0
helm install codex-lb oci://ghcr.io/soju06/charts/codex-lb --version 1.24.0

Don't miss a new codex-lb release

NewReleases is sending notifications on new releases.