Skip to content

Release v1.22.0

Latest

Choose a tag to compare

@Soju06 Soju06 released this 24 Jul 05:46
4c0dbc9

What's Changed

  • fix(balancer): decorrelate round-robin tie-breaking across replicas by @Soju06 in #1327
  • fix(observability): anchor TTFT to the attempt, expose queue wait as a dashboard trend by @Soju06 in #1333
  • docs(openspec): archive accurate-stream-speed-metrics by @Soju06 in #1334
  • docs(contributing): codify simplicity principles and merge gates by @Soju06 in #1336
  • fix(proxy): settle API-key reservation before budget-exhausted compact preflight raises by @Soju06 in #1332
  • docs(site): add mkdocs documentation site and slim README to quick-start scope by @Soju06 in #1337
  • fix(proxy): reject unsupported multi-worker-per-instance for shared per-account caps by @Soju06 in #1328
  • ci(budgets): enforce simplicity budgets on README, env example, and core nav by @Soju06 in #1341
  • feat(dashboard): group advanced navigation and settings behind progressive disclosure by @Soju06 in #1339
  • docs(openspec): archive the simplicity-effort changes by @Soju06 in #1347
  • test(balancer): make sticky-selection test deterministic under decorrelated tie-breaking by @Soju06 in #1348
  • fix(oauth): persist dashboard OAuth flow state for multi-replica by @Soju06 in #1329
  • docs(readme): restore the features grid and client logo table by @Soju06 in #1346
  • refactor(config): remove zero-risk tunables from the settings surface by @Soju06 in #1351
  • chore(openspec): archive replica-reliability + follow-up changes by @Soju06 in #1350
  • fix(proxy): recover from host network changes by @leventov in #1234
  • fix(proxy): preserve HTTP bridge model-transition forks by @Komzpa in #1356
  • fix(proxy): record early downstream cancellations by @Komzpa in #1324
  • fix(models): complete required Codex catalog fields by @luawl in #1299
  • fix(proxy): recover stale response-create gates by @luawl in #1296
  • fix(proxy): forward Codex standalone web search by @HeroOfOdyssey in #1232
  • fix(proxy): retry server_is_overloaded responses by @mereyabdenbekuly-ctrl in #1315
  • chore(contributors): add fozbek to all-contributors by @Soju06 in #1361
  • fix(usage): price gpt-5.6 personality models by @fozbek in #1275
  • refactor(config): remove phase-2 low-risk tunables from the settings surface by @Soju06 in #1360
  • refactor(config): remove phase-3 pool and drain tunables from the settings surface by @Soju06 in #1362
  • fix(proxy): recover sequenced Codex prewarms by @luawl in #1359
  • feat(model-sources): report upstream generation timings by @evaldass in #1319
  • chore(contributors): add ShiroKSH and aididhaiqal to all-contributors by @Soju06 in #1365
  • fix(api-keys): reject duplicate limit rules on create by @ShiroKSH in #1312
  • feat(settings): manage data retention from the dashboard by @Soju06 in #1364
  • refactor(config): retire prewarm canary scaffolding by @Soju06 in #1363
  • docs(openspec): archive the settings-reduction changes by @Soju06 in #1368
  • docs(reference): add generated settings reference with drift guards by @Soju06 in #1369
  • fix(proxy): retry stale per-account model rejections by @luawl in #1321
  • fix(proxy): release pending websocket stream leases on disconnect by @tobwen in #1282
  • feat(ui): add Korean dashboard locale by @codemoo in #1375
  • fix(proxy): retry upstream model capacity errors by @Komzpa in #1385
  • fix(proxy): preserve encrypted compaction item ids by @mhughdo in #1316
  • feat(proxy): add stale-anchor diagnostics by @mastertyko in #1225
  • fix(balancer): reject implausible rate-limit resets by @leventov in #1374
  • fix(proxy): route Spark using fresh per-account quota evidence by @mastertyko in #1248
  • fix(security): harden trusted Forwarded chain resolution by @mastertyko in #1377
  • feat(accounts): add reset-credit controls and auto redeem by @codemoo in #1358
  • fix(docker): preserve runtime readability for owner-only build files by @yshishenya in #1373
  • docs: add yshishenya and alchemistkiv as contributors by @Soju06 in #1387
  • fix(security): enforce trusted proxy locality by @mastertyko in #1381
  • fix(proxy): slim inline images nested in historical tool-call outputs by @Soju06 in #1344
  • perf(db): optimize dashboard hot-path indexes by @Soju06 in #1386
  • fix(security): inspect repeated session proxy headers by @mastertyko in #1378
  • fix(config): reject empty trusted proxy CIDRs by @mastertyko in #1379
  • fix(reports): reject inverted date ranges by @mastertyko in #1396
  • fix(dashboard): keep overview visible when request logs fail by @mastertyko in #1397
  • fix(usage): make weekly-primary remap tiebreak data-aware by @zepx in #1391
  • fix(proxy): spill bare session affinity under account caps by @leventov in #1382
  • test(proxy): characterize load-balancer contract before decomposition by @stemirkhan in #1392
  • fix(db): pin asyncpg session time zone to UTC by @Daltonganger in #1352
  • fix(observability): improve TTFT and TPS accuracy by @jamesx0416 in #1325
  • fix(proxy): purge stale durable bridge rows on startup by @tobwen in #1310
  • refactor(proxy): restore architecture ratchets by @mastertyko in #1430
  • chore(deps): bump the python-minor-patch group with 12 updates by @dependabot[bot] in #1429
  • chore(deps): bump @testing-library/jest-dom from 6.9.1 to 7.0.0 in /frontend by @dependabot[bot] in #1428
  • chore(docker): bump astral-sh/uv from 0.11.28 to 0.11.30 by @dependabot[bot] in #1425
  • chore(ci): bump docker/setup-qemu-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #1421
  • chore(ci): bump actions/labeler from 6.1.0 to 6.2.0 by @dependabot[bot] in #1423
  • chore(docker): bump pgautoupgrade/pgautoupgrade from 18-alpine to 18-alpine by @dependabot[bot] in #1419
  • chore(ci): bump actions/deploy-pages from 4.0.5 to 5.0.0 by @dependabot[bot] in #1424
  • chore(ci): bump actions/create-github-app-token from 2.2.2 to 3.2.0 by @dependabot[bot] in #1420
  • fix(balancer): recover probing accounts by @leventov in #1376
  • perf(proxy): cache upstream-route resolution per account by @Soju06 in #1283
  • chore(deps): bump the frontend-minor-patch group in /frontend with 12 updates by @dependabot[bot] in #1426
  • ci(db): run PostgreSQL migration lock tests by @mastertyko in #1444
  • fix(cli): reject out-of-range server port before startup by @mastertyko in #1400
  • fix(proxy): bound raw HTTP request ingress by @mastertyko in #1440
  • fix(proxy): serialize shared-session rate-limit reads by @mastertyko in #1432
  • fix(proxy-responses): normalize Lite reasoning context by @mastertyko in #1431
  • fix(db): reject empty migration database URL by @mastertyko in #1399
  • fix(proxy): dedup and cap oversized response.create dumps by @ozpool in #1366
  • fix(proxy): recover idle Codex Desktop bridge by @mastertyko in #1439
  • feat(ui): header brand back to /dashboard on click by @huzky-v in #1452
  • fix(api): give thread-goal GET/POST distinct operationIds by @mastertyko in #1398
  • fix(shutdown): drain audit and fleet tasks by @mastertyko in #1443
  • docs(replica): refresh operations context by @mastertyko in #1445
  • perf(automations): bound run-history query work by @mastertyko in #1451
  • perf(usage): persist account snapshots transactionally by @mastertyko in #1448
  • perf(usage): scope refresh work to selected account by @mastertyko in #1446
  • feat(helm): make ExternalSecret remote refs configurable by @KakatkarAkshay in #1455
  • feat(conversation): implementation on conversation grouping on Opencode + Codex by @huzky-v in #1453
  • fix(uploads): bound multipart request resources by @mastertyko in #1447
  • fix(proxy): ignore API-key-enforced service tier a model never advertises by @ozpool in #1438
  • fix(auth): require trusted-proxy identity consensus by @mastertyko in #1380
  • ci(proxy): realign architecture ratchets with main by @mereyabdenbekuly-ctrl in #1435
  • fix(proxy): recover verified responses after owner loss by @mhughdo in #1437
  • fix(useragent): fixing the unexpected category on useragent group by @huzky-v in #1458
  • chore(ci): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #1422
  • chore(deps): bump typescript from 6.0.3 to 7.0.2 in /frontend by @dependabot[bot] in #1427
  • feat(helm): support Gateway API rule filters by @KakatkarAkshay in #1459
  • fix(streaming): preserve terminal no-replay boundaries by @Komzpa in #1389
  • fix(proxy): harden compact continuity recovery by @Komzpa in #1441
  • fix(compact): preserve historical side-effect anchors by @Komzpa in #1418
  • ci: keep needs rebase labels current by @Komzpa in #1460
  • test(ui): add real dashboard browser smoke by @mastertyko in #1449
  • fix(ci): run ruff from the locked environment by @Soju06 in #1465
  • chore(main): release 1.22.0 by @Soju06 in #1330

New Contributors

Full Changelog: v1.21.0...v1.22.0

Install / Run

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