Skip to content

Release v1.21.0

Latest

Choose a tag to compare

@Soju06 Soju06 released this 15 Jul 04:20
8a20de0

What's Changed

  • fix(quota-planner): normalize decision datetimes for persistence by @Soju06 in #1034
  • fix(proxy): avoid shielded-future log on startup probe timeout by @ozpool in #1076
  • fix(ci): ignore stale and resolved Codex inline findings by @Komzpa in #981
  • fix(models): hide unsupported API models by @Komzpa in #887
  • fix(dashboard): correct weekly credits pace display by @Komzpa in #955
  • fix(proxy): normalize non-native upstream requests to Codex CLI fingerprint by @Soju06 in #1089
  • chore: release v1.20.2-beta.1 by @Soju06 in #1088
  • feat: smart HTTP→upstream transport routing (sticky vs single-shot) by @Soju06 in #1093
  • chore(ci): bump softprops/action-gh-release from 3.0.0 to 3.0.1 by @dependabot[bot] in #1067
  • chore(docker): bump pgautoupgrade/pgautoupgrade from 18-alpine to 18-alpine by @dependabot[bot] in #1068
  • chore(ci): bump docker/build-push-action from 7.1.0 to 7.2.0 by @dependabot[bot] in #1069
  • chore(docker): bump astral-sh/uv from 0.11.21 to 0.11.23 by @dependabot[bot] in #1070
  • chore(ci): bump actions/checkout from 6.0.2 to 7.0.0 by @dependabot[bot] in #1071
  • chore(ci): bump github/codeql-action from 4.35.5 to 4.36.2 by @dependabot[bot] in #1072
  • chore(deps): bump the frontend-minor-patch group in /frontend with 6 updates by @dependabot[bot] in #1073
  • chore(deps): bump @types/node from 25.9.3 to 26.0.0 in /frontend by @dependabot[bot] in #1074
  • chore(deps): bump pydantic-settings from 2.14.1 to 2.14.2 by @dependabot[bot] in #1081
  • chore(deps): bump the python-minor-patch group with 7 updates by @dependabot[bot] in #1075
  • feat: expose upstream transport observability by @Soju06 in #1096
  • feat(proxy): repair account-bound egress routing by @Komzpa in #875
  • fix(proxy): oauth blocked when bindings lack route by @tobwen in #1064
  • feat+fix(report): reports enhancements by @huzky-v in #1060
  • feat(reset-credits): add banked rate-limit reset credits by @huzky-v in #1053
  • fix(db): optimize dashboard query hot paths by @Soju06 in #1107
  • chore(docker): bump pgautoupgrade/pgautoupgrade from 18-alpine to 18-alpine by @dependabot[bot] in #1109
  • chore(ci): bump azure/setup-helm from 5.0.0 to 5.0.1 by @dependabot[bot] in #1110
  • chore(ci): bump actions/cache from 5.0.5 to 6.1.0 by @dependabot[bot] in #1111
  • chore(docker): bump astral-sh/uv from 0.11.23 to 0.11.25 by @dependabot[bot] in #1112
  • chore(deps): bump the frontend-minor-patch group in /frontend with 12 updates by @dependabot[bot] in #1113
  • chore(deps): bump the python-minor-patch group with 11 updates by @dependabot[bot] in #1114
  • fix(frontend): persist dashboard account list sort by @Soju06 in #1115
  • feat(frontend): restore Simplified Chinese i18n by @Komzpa in #995
  • feat(usage-api): add toggle to query additional usage, and add pooled usage to /v1/usage by @huzky-v in #832
  • feat(request-logs): record client IP by @Komzpa in #985
  • perf(usage): avoid repeated history cache scans by @Komzpa in #902
  • feat(warmup): add staggered idle limit prestart by @Komzpa in #905
  • fix(db): merge post-batch migration heads by @Soju06 in #1116
  • feat(request-ui): add showing elapsed time to request details by @huzky-v in #1103
  • fix(zod): add the zod schema with new enum introduced at #875 by @huzky-v in #1102
  • fix(retry): honor minute/hour and compound retry-after hints by @ozpool in #1052
  • ci: remove unsupported review-thread workflow trigger by @Komzpa in #1117
  • test: update codex label workflow event assertion by @Komzpa in #1118
  • fix(usage): sync paid-plan upgrades on workspace-less accounts by @ozpool in #1098
  • fix(proxy): strip unsafe HTTP headers before owner-bridge forward by @ozpool in #1036
  • fix(proxy): strip internal responses lite header by @mhughdo in #1099
  • add configurable limit warm-up exhausted threshold by @jawwadfirdousi in #1079
  • fix(ui): stabilize account layout and API key dialog by @qdzsh in #1062
  • fix(models): aggregate service tiers across accounts by @ozpool in #1106
  • fix(http-bridge): clean stale inflight session futures by @zvladru in #1044
  • fix(websocket): avoid fresh retry for tool-output deltas by @zvladru in #1042
  • feat(usage): support Codex usage reset credits by @codemoo in #1105
  • fix(proxy): set parallel_tool_calls to false for compaction requests by @alzeiby in #1054
  • docs: explain routing strategy tradeoffs by @Komzpa in #1119
  • fix(proxy): clarify account stream cap overload by @Komzpa in #1122
  • fix(proxy): stop local rate-limit selection retry loops by @Komzpa in #1121
  • Smooth weekly pace gap by @Komzpa in #1120
  • fix(db): prevent SQLite FD retention in background refresh tasks by @Lotfree618 in #1127
  • fix(quota-planner): normalize datetimes before database use by @zvladru in #1043
  • chore(deps): bump ty from 0.0.55 to 0.0.56 in the python-minor-patch group by @dependabot[bot] in #1147
  • chore(ci): bump astral-sh/setup-uv from 8.2.0 to 8.3.0 by @dependabot[bot] in #1140
  • chore(ci): bump docker/login-action from 4.2.0 to 4.4.0 by @dependabot[bot] in #1141
  • chore(ci): bump docker/metadata-action from 6.1.0 to 6.2.0 by @dependabot[bot] in #1144
  • chore(docker): bump astral-sh/uv from 0.11.25 to 0.11.27 by @dependabot[bot] in #1145
  • chore(deps): bump the frontend-minor-patch group in /frontend with 12 updates by @dependabot[bot] in #1146
  • chore(docker): bump pgautoupgrade/pgautoupgrade from 18-alpine to 18-alpine by @dependabot[bot] in #1139
  • chore(ci): bump docker/build-push-action from 7.2.0 to 7.3.0 by @dependabot[bot] in #1142
  • chore(ci): bump docker/setup-buildx-action from 4.1.0 to 4.2.0 by @dependabot[bot] in #1143
  • fix(dashboard-auth): harden local session ttl by @AnobleSCM in #1137
  • fix: list Codex shell-only models in backend catalog by @Komzpa in #1138
  • feat(accounts): test bound proxy pools by @Komzpa in #1124
  • feat(metrics): expose account inflight lease gauge by @0xSolarPunk in #1148
  • feat(fleet): add refresh endpoint by @AnobleSCM in #1128
  • feat: add openai-compatible model sources by @evaldass in #1129
  • fix(account-ui): fix overflow on account list page by @huzky-v in #1149
  • feat(automations): scheduled cycles, grouped runs, and run details UI by @Kazet111 in #438
  • feat(images): add route observability by @Komzpa in #1123
  • feat(proxy): add TTFT phase observability by @Soju06 in #1156
  • fix(models): serve the Codex catalog on /v1/models for Codex clients by @kevinWangSheng in #1163
  • fix(proxy): fallback v1 usage limits to upstream quotas by @Daltonganger in #1151
  • fix(proxy): preserve Responses Lite additional tools by @luawl in #1161
  • feat(models): add GPT-5.6 bootstrap catalog with upstream-verified metadata by @Soju06 in #1176
  • fix(proxy): support Codex image edit routes by @nazirulhafiy in #1160
  • fix(model-sources): default Codex catalog context by @Komzpa in #1152
  • fix(proxy): synthesize interrupted custom tool call outputs by @Soju06 in #1175
  • fix(proxy): preserve all non-message system and developer input items by @Soju06 in #1172
  • fix(proxy): preserve model_messages in catalog response by @zepx in #1178
  • fix(ci): ignore superseded same-head check suites by @Komzpa in #1170
  • fix(proxy): harden native Responses Lite continuity by @Komzpa in #1164
  • ci: shard integration-core tests, PR-mode vitest without coverage by @Soju06 in #1179
  • chore: release v1.21.0-beta.1 by @Soju06 in #1125
  • fix(proxy): preserve multi-agent v2 passthrough by @luawl in #1189
  • fix(proxy): stop synthesizing top-level tools for upstream Codex requests by @Soju06 in #1200
  • chore: release v1.21.0-beta.2 by @Soju06 in #1201
  • fix(proxy): send complete Codex identity headers by @luawl in #1197
  • fix(account-ui): expand account list on tall viewports by @luawl in #1195
  • fix(proxy): hide blank reasoning summary comments by @Komzpa in #1154
  • fix(proxy): wait on local account cap pressure by @Komzpa in #1155
  • fix(proxy): preserve admitted bridge waiters on upstream close by @Komzpa in #1191
  • feat(proxy): add Fast Mode prohibition setting by @leventov in #1190
  • fix(proxy): isolate unanchored parallel bridge requests by @Komzpa in #1169
  • fix(proxy): reserve stream capacity for recovery by @Komzpa in #1188
  • fix(proxy): omit synthesized tools on owner-forward and source egress by @Soju06 in #1203
  • docs(codex): clarify built-in image generation eligibility by @ATofighi in #1181
  • fix(proxy): normalize selected installation metadata by @dmdfami in #1204
  • fix(accounts): sync free-to-paid plan upgrades by @luawl in #1217
  • fix(ci): keep manual rerun attempts authoritative by @luawl in #1216
  • fix(proxy): preserve responses turn-state fidelity by @luawl in #1193
  • fix(models): retain hidden metadata across partial refreshes by @luawl in #1221
  • fix(proxy): preserve websocket reconnect affinity by @leventov in #1220
  • fix(proxy): preserve websocket incomplete reasons by @leventov in #1219
  • fix(proxy): reselect only safe websocket turns by @dmdfami in #1207
  • fix(proxy): route by complete account capability catalogs by @dmdfami in #1205
  • test(usage): use UTC clock for freshness fixture by @luawl in #1228
  • fix(proxy): keep native capacity waits alive by @Komzpa in #1218
  • fix(ui): make routing strategy guide clickable cards by @zepx in #1229
  • fix(oauth): isolate reauth by Team seat identity by @HeroOfOdyssey in #1224
  • fix(proxy): prevent sequenced websocket replay by @mastertyko in #1223
  • feat(proxy): configure account concurrency caps by @Komzpa in #1214
  • Show request log speed metrics by @jamesx0416 in #1210
  • fix(warmup): separate idle threshold, fix jitter, redesign warm-up UI by @zepx in #1230
  • chore: release v1.21.0-beta.3 by @Soju06 in #1202
  • fix(proxy): accept large websocket response.create and fail fast with 400 by @Soju06 in #1236
  • perf(request-logs): skip-scan unfiltered filter-option facets by @Soju06 in #1239
  • perf(proxy): cut pre-upstream DB round trips on interactive turns by @Soju06 in #1241
  • perf(proxy): make SSE event framing linear instead of quadratic by @Soju06 in #1242
  • perf(clients): keep upstream connections and DNS across interactive turns by @Soju06 in #1245
  • perf(dashboard): compress responses, cache assets, lazy-load charts by @Soju06 in #1243
  • perf(usage): aggregate the summary window in SQL, drop dead log refresh by @Soju06 in #1244
  • perf(accounts): serve request-usage summaries from persistent rollup by @Soju06 in #1238
  • feat(retention): opt-in pruning for request logs and usage history by @Soju06 in #1240
  • fix(db): serialize startup migrations across replicas and report schema-ahead correctly by @Soju06 in #1256
  • fix(quota-planner): make warmup budget and dedup claims atomic across replicas by @Soju06 in #1260
  • chore(openspec): bulk-sync delta specs and archive all 152 completed changes by @Soju06 in #1252
  • fix(balancer): persist rate-limit cooldowns so peer replicas honor them by @Soju06 in #1261
  • fix(deploy): repair broken multi-replica deployment artifacts by @Soju06 in #1263
  • fix(proxy): fence bridge lease writes, evict fenced-out replicas, purge orphaned ring state by @Soju06 in #1259
  • fix(caching): extend cross-replica cache invalidation bus to routing, selection, and settings caches by @Soju06 in #1255
  • feat(replica-ops): document replica topology contract and land startup guardrails by @Soju06 in #1264
  • feat(proxy): partition account concurrency caps across live replicas by @Soju06 in #1258
  • fix(reset-credits): make redemption replica-safe with durable ledger and claim by @Soju06 in #1257
  • fix(proxy): queue bridged requests through response-create gate contention by @Soju06 in #1266
  • feat(balancer): adapt selection and refresh to absent short-window quotas by @Soju06 in #1267
  • feat(planner): derive phase planning from observed short windows by @Soju06 in #1268
  • perf(proxy): parse each SSE event once per layer, skip no-op reserialization by @Soju06 in #1270
  • perf(proxy): detach stream-end persistence from the response path by @Soju06 in #1269
  • chore(openspec): archive the ten merged performance changes by @Soju06 in #1276
  • perf(request-logs): cache the listing total per filter signature by @Soju06 in #1277
  • perf(frontend): code-split dashboard routes by @Soju06 in #1278
  • perf(frontend): self-host JetBrains Mono, drop Google Fonts by @Soju06 in #1279
  • feat(models): replicate leader-refreshed model registry via persisted snapshots by @Soju06 in #1262
  • docs(openspec): archive adaptive-window and bridge-gate changes by @Soju06 in #1271
  • fix(automation): fall back to github.token when label sync hits rate limits by @Soju06 in #1272
  • feat(usage): ingest live rate-limit snapshots from proxied traffic by @Soju06 in #1273
  • docs(openspec): archive the live-rate-limit-ingestion change by @Soju06 in #1300
  • feat(dashboard): hide expired primary windows instead of freezing them by @Soju06 in #1301
  • feat(ci): mint a dedicated GitHub App token for codex label sync by @Soju06 in #1302
  • chore(ci): bump dorny/paths-filter from 4.0.1 to 4.0.2 by @dependabot[bot] in #1288
  • chore(ci): bump github/codeql-action/upload-sarif from 4.36.2 to 4.37.0 by @dependabot[bot] in #1289
  • chore(ci): bump softprops/action-gh-release from 3.0.1 to 3.0.2 by @dependabot[bot] in #1290
  • chore(docker): bump astral-sh/uv from 0.11.27 to 0.11.28 by @dependabot[bot] in #1291
  • chore(ci): bump actions/stale from 10.3.0 to 10.4.0 by @dependabot[bot] in #1285
  • chore(docker): bump pgautoupgrade/pgautoupgrade from 18-alpine to 18-alpine by @dependabot[bot] in #1286
  • chore(ci): bump astral-sh/setup-uv from 8.3.0 to 8.3.2 by @dependabot[bot] in #1287
  • chore(deps): bump the frontend-minor-patch group in /frontend with 10 updates by @dependabot[bot] in #1292
  • docs(openspec): archive absent-window-display and label-sync-app-token by @Soju06 in #1303
  • chore(deps): bump the python-minor-patch group with 5 updates by @dependabot[bot] in #1294
  • chore(deps): bump typescript from 6.0.3 to 7.0.2 in /frontend by @dependabot[bot] in #1293
  • fix(scheduling): harden scheduler leader election for multi-replica safety by @Soju06 in #1253
  • chore: release v1.21.0-beta.4 by @Soju06 in #1237
  • fix(accounts): serialize cross-replica token refresh with per-account DB claims by @Soju06 in #1254
  • chore(main): release 1.21.0 by @Soju06 in #1087

New Contributors

Full Changelog: v1.20.1...v1.21.0

Install / Run

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