What's Changed
- refactor(api_keys): use typed ApiKeyValidationError instead of broad ValueError by @ozpool in #649
- feat(frontend): add GitHub link to status bar by @aruis in #508
- feat(api): add codex
/modelsupport for allowed models selection by @huzky-v in #607 - feat(accounts): add export action with audit and no-store safeguards by @timefox in #412
- test(settings): add coverage for runtime connect-address resolution by @ozpool in #712
- fix(proxy): report backend context window in v1 models by @Soju06 in #722
- fix(proxy): bound HTTP bridge startup waits by @Soju06 in #723
- fix(proxy): recover stale websocket previous response anchors by @Soju06 in #724
- fix: Codex websocket pre-created keepalives by @Soju06 in #727
- feat(release): add PR-driven beta release channel by @Soju06 in #732
- fix(ci): restore main and enforce merge-head gates by @Komzpa in #715
- fix(archive): throttle backpressure warnings by @Komzpa in #718
- fix(proxy): mask websocket prepare continuity errors by @Komzpa in #717
- fix(openai): preserve json mode instruction messages by @Lotfree618 in #731
- ci: harden workflow supply chain by @Soju06 in #738
- feat(dashboard): present hourly/weekly credits as raw remaining/total by @ozpool in #612
- refactor(usage): centralize UsageHistory -> UsageWindowRow mapping by @ozpool in #711
- style(dashboard): use monochrome dark theme with muted steel-slate accents by @datfooldive in #629
- fix(ci): harden Codex label sync token writes by @Soju06 in #740
- docs: add Lotfree618 as a contributor for code, test, and 2 more by @allcontributors[bot] in #739
- feat(api-ui): Add account cost distribution for API by @huzky-v in #734
- feat(request-log): detail cost breakdown for each request by @huzky-v in #694
- docs: backfill missing contributors by @Soju06 in #741
- fix(proxy): add HTTP bridge keepalive backstop and prewarm timeout by @tobwen in #736
- refactor(proxy): extract affinity routing helpers by @Soju06 in #742
- chore(openspec): mark add-v1-api-key-usage tasks complete by @ozpool in #743
- fix(codex_version): fall back to npm registry when GitHub is rate-limited by @ozpool in #744
- chore: release v1.19.0-beta.1 by @Soju06 in #733
- fix(proxy): accept /backend-api/codex/v1/ as alias for /backend-api/codex/ by @ozpool in #610
- chore(ci): enable stale handling for pull requests by @Komzpa in #747
- fix(ci): tolerate transient Codex label read failures by @Komzpa in #769
- fix(acc): free account should hide 5h bar in account by @huzky-v in #770
- fix(archive): stream gzip writes asynchronously by @Komzpa in #725
- perf(dashboard): memoize per-account depletion EWMA state by @Komzpa in #749
- fix(proxy): fail over websocket connect timeouts by @Komzpa in #726
- feat(dashboard): account burn projection card by @Komzpa in #752
- fix(codex): accept OpenAI-style backend responses requests by @Komzpa in #755
- fix(proxy): mask codex chatgpt previous-response websocket errors by @Soju06 in #775
- fix(proxy): make Codex Spark quota gating plan-aware by @Komzpa in #751
- fix(proxy): allow larger compressed responses bodies by @Komzpa in #772
- fix(accounts): own DB session in detached token-refresh task by @AnobleSCM in #774
- feat(api-firewall): make firewall decision cache TTL configurable by @AnobleSCM in #660
- fix(proxy): align Codex websocket error parsing by @Soju06 in #789
- test(settings): add coverage for audit changed_fields per-field reporting by @ozpool in #719
- ci: label pull requests with database migrations by @Komzpa in #766
- feat(ui): multiple dashboard ui adjustments by @huzky-v in #776
- fix(proxy): replay pre-visible websocket drops by @Komzpa in #729
- fix(oauth): isolate concurrent browser flows by @Komzpa in #753
- docs: FAQ entry on /wham/usage vs Settings UI divergence by @ozpool in #710
- fix(usage): ignore stale usage after account reset by @Komzpa in #760
- fix(proxy): fail over reset-prone upstream stalls by @Komzpa in #771
- fix(limit-warmup): repair typing for warmup sender by @Komzpa in #778
- fix(codex desktop): restore backend responses compatibility by @Komzpa in #756
- fix(proxy): fail over compact after invalidated token by @Komzpa in #777
- fix(status): reconcile background account recovery after resets by @Komzpa in #754
- feat(api-ui): add account pool window usage remaining bar by @huzky-v in #785
- feat(accounts): add operator-controlled account aliases by @Komzpa in #759
- fix(proxy): respect stream_idle_timeout_seconds in HTTP bridge keepalive backstop by @Soju06 in #793
- fix(proxy): inline external image URLs in HTTP bridge path by @Soju06 in #794
- chore: release v1.19.0-beta.2 by @Soju06 in #745
- chore(main): release 1.19.0 by @Soju06 in #714
New Contributors
- @timefox made their first contribution in #412
- @Lotfree618 made their first contribution in #731
- @datfooldive made their first contribution in #629
Full Changelog: v1.18.2...v1.19.0
Install / Run
uvx codex-lb
docker pull ghcr.io/Soju06/codex-lb:1.19.0
helm install codex-lb oci://ghcr.io/soju06/charts/codex-lb --version 1.19.0