diff --git a/.github/release-please-manifest.json b/.github/release-please-manifest.json index 4d625b2f88..0c6b0698c1 100644 --- a/.github/release-please-manifest.json +++ b/.github/release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "1.24.0" + ".": "1.25.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index 0eeaf3b439..4e714075db 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,408 @@ # Changelog +## [1.25.0](https://github.com/chekdata/codex-lb/compare/v1.24.0...v1.25.0) (2026-08-29) + + +### Features + +* **accounts:** add reset-credit controls and auto redeem ([#1358](https://github.com/chekdata/codex-lb/issues/1358)) ([1c985d0](https://github.com/chekdata/codex-lb/commit/1c985d0ff734d4b00c25624f3d98fc9575769266)) +* **api-keys:** allow per-key reasoning effort policies ([#1642](https://github.com/chekdata/codex-lb/issues/1642)) ([ed31b7d](https://github.com/chekdata/codex-lb/commit/ed31b7da3d225aac30fc42c7c0d128f10955b58e)) +* **auth:** enable Auth Guardian by default and cover paused accounts ([#1662](https://github.com/chekdata/codex-lb/issues/1662)) ([ebb0525](https://github.com/chekdata/codex-lb/commit/ebb052505c58c7ce7d7f72bb6ca1831974568874)) +* **balancer:** adapt selection and refresh to absent short-window quotas ([#1267](https://github.com/chekdata/codex-lb/issues/1267)) ([9c1486e](https://github.com/chekdata/codex-lb/commit/9c1486e757348d6ef7a1686d321b4b1e2862a848)) +* **ci:** mint a dedicated GitHub App token for codex label sync ([#1302](https://github.com/chekdata/codex-lb/issues/1302)) ([5470a50](https://github.com/chekdata/codex-lb/commit/5470a5006b01ff988747fc367375a1cff563f7bd)) +* **config:** timeout-invariant linter — validate deadline/TTL inequalities at startup and in CI ([#1622](https://github.com/chekdata/codex-lb/issues/1622)) ([d148dd9](https://github.com/chekdata/codex-lb/commit/d148dd9a42dca3088e8063aca8a21682f9bf7fb6)) +* **conversation:** implementation on conversation grouping on Opencode + Codex ([#1453](https://github.com/chekdata/codex-lb/issues/1453)) ([be363d3](https://github.com/chekdata/codex-lb/commit/be363d3a46af245c973d07b33f777852f368ad07)) +* **dashboard:** Add conversation list on dashboard and details dialog ([#1477](https://github.com/chekdata/codex-lb/issues/1477)) ([c539a20](https://github.com/chekdata/codex-lb/commit/c539a200c301e5cdf2cf524dea336e1c40094bbd)) +* **dashboard:** group advanced navigation and settings behind progressive disclosure ([#1339](https://github.com/chekdata/codex-lb/issues/1339)) ([0c2283e](https://github.com/chekdata/codex-lb/commit/0c2283eee0d732350d0704c2f91f33d082849b3b)) +* **dashboard:** hide expired primary windows instead of freezing them ([#1301](https://github.com/chekdata/codex-lb/issues/1301)) ([165aa91](https://github.com/chekdata/codex-lb/commit/165aa912b7baaa63ba59badf5dffa40178b388ca)) +* **db:** report SQLite write transactions that outlive the busy timeout ([#1752](https://github.com/chekdata/codex-lb/issues/1752)) ([6464e96](https://github.com/chekdata/codex-lb/commit/6464e96f78bdc62c643d9285143b72152e9a0742)) +* **frontend:** configure model-source reasoning efforts ([#1848](https://github.com/chekdata/codex-lb/issues/1848)) ([eab7155](https://github.com/chekdata/codex-lb/commit/eab71553aee660fdb31122e9feb61a0e6c367904)) +* **helm:** allow Grafana dashboard title overrides ([#1482](https://github.com/chekdata/codex-lb/issues/1482)) ([266fbe2](https://github.com/chekdata/codex-lb/commit/266fbe2adf118651f6723d8bdca814ff2aabc73b)) +* **helm:** make ExternalSecret remote refs configurable ([#1455](https://github.com/chekdata/codex-lb/issues/1455)) ([1c91cb7](https://github.com/chekdata/codex-lb/commit/1c91cb7c2c6f009e59212a3a7aeefaf5002ce380)) +* **helm:** support creating an application-specific Gateway ([#1462](https://github.com/chekdata/codex-lb/issues/1462)) ([8461203](https://github.com/chekdata/codex-lb/commit/8461203cabece3511bc9259baca5c0711c4d6618)) +* **helm:** support Gateway API rule filters ([#1459](https://github.com/chekdata/codex-lb/issues/1459)) ([acd50d1](https://github.com/chekdata/codex-lb/commit/acd50d1dd97fc459415f4588d7f5c5abc739b925)) +* **model-sources:** advertise operator-declared reasoning efforts ([#1661](https://github.com/chekdata/codex-lb/issues/1661)) ([f1c8d5c](https://github.com/chekdata/codex-lb/commit/f1c8d5cd19947d76191fea8da8c07a69df493f83)) +* **model-sources:** embeddings source capability ([#1776](https://github.com/chekdata/codex-lb/issues/1776)) ([4d0f0ff](https://github.com/chekdata/codex-lb/commit/4d0f0ffc64df11a6800397497512abeb5478bce2)) +* **model-sources:** report upstream generation timings ([#1319](https://github.com/chekdata/codex-lb/issues/1319)) ([1ebd195](https://github.com/chekdata/codex-lb/commit/1ebd195daed487959cb1d23cec04dbce081e2a89)) +* **models:** replicate leader-refreshed model registry via persisted snapshots ([#1262](https://github.com/chekdata/codex-lb/issues/1262)) ([fa3906b](https://github.com/chekdata/codex-lb/commit/fa3906bc9654282a98bc4c33422c19bef67ba921)) +* **planner:** derive phase planning from observed short windows ([#1268](https://github.com/chekdata/codex-lb/issues/1268)) ([7fdbdce](https://github.com/chekdata/codex-lb/commit/7fdbdce33ca7c6732653ae7de44d436376081716)) +* **proxy:** add durable capability lineage for reconnect ([#1562](https://github.com/chekdata/codex-lb/issues/1562)) ([151c42c](https://github.com/chekdata/codex-lb/commit/151c42c64810f773080ed58710791b216a8d9b8a)) +* **proxy:** add stale-anchor diagnostics ([#1225](https://github.com/chekdata/codex-lb/issues/1225)) ([4720e0e](https://github.com/chekdata/codex-lb/commit/4720e0ecf1800237539fa7b9113873544e8898e2)) +* **proxy:** congestion-aware per-API-key fair-share stream admission ([#1536](https://github.com/chekdata/codex-lb/issues/1536)) ([0518b93](https://github.com/chekdata/codex-lb/commit/0518b93ab74b8c3d2967125ee24f9e39811a2304)) +* **proxy:** partition account concurrency caps across live replicas ([#1258](https://github.com/chekdata/codex-lb/issues/1258)) ([d4f2544](https://github.com/chekdata/codex-lb/commit/d4f254434c0a60a78a0a6b0fd987646252708243)) +* **proxy:** report websocket cleanup phase ([#1726](https://github.com/chekdata/codex-lb/issues/1726)) ([0c8d921](https://github.com/chekdata/codex-lb/commit/0c8d921906735352ef60c0a445be455daa35249d)) +* **proxy:** support Codex Live Voice sideband ([#1492](https://github.com/chekdata/codex-lb/issues/1492)) ([aa642f3](https://github.com/chekdata/codex-lb/commit/aa642f33c6c9bd83c1aea8e7e8618e1ad2bf50c2)) +* **proxy:** support Ultrafast service tier ([#1734](https://github.com/chekdata/codex-lb/issues/1734)) ([d522a4d](https://github.com/chekdata/codex-lb/commit/d522a4de0740b530b22775ed6d2fe3959e3ca178)) +* **replica-ops:** document replica topology contract and land startup guardrails ([#1264](https://github.com/chekdata/codex-lb/issues/1264)) ([e9392f3](https://github.com/chekdata/codex-lb/commit/e9392f3ff9cdf13002fbf7400292aaea3f75d557)) +* **report-ui:** add per-chart visibility filter ([a2adfa0](https://github.com/chekdata/codex-lb/commit/a2adfa0f17fe6ea0c62a34f5a0882559e6e41172)) +* **reports:** Add API Key Filtering to Reports Dashboard ([#1728](https://github.com/chekdata/codex-lb/issues/1728)) ([1f65f80](https://github.com/chekdata/codex-lb/commit/1f65f8093458d551979bd237d8304ed70b50c390)) +* **reset-credits:** add refresh scheduler enable toggle ([#1701](https://github.com/chekdata/codex-lb/issues/1701)) ([6509dd0](https://github.com/chekdata/codex-lb/commit/6509dd0d4a577908e5940f35ba4c5ab6d66f23bc)) +* **responses:** add operator-approved rowless checkpoint rebase ([d771d0b](https://github.com/chekdata/codex-lb/commit/d771d0b3982b11454d1b3bc3ffd5da84ce3b0752)) +* **responses:** add operator-approved rowless checkpoint rebase ([3f09a7b](https://github.com/chekdata/codex-lb/commit/3f09a7b8857355de2badbadd935563553eefa8e2)) +* **responses:** auto-recover proofed live Codex turns ([61eec8e](https://github.com/chekdata/codex-lb/commit/61eec8ef19239fa5d819fe76a3795b1738228d13)) +* **responses:** auto-recover proofed live turns ([9852d85](https://github.com/chekdata/codex-lb/commit/9852d857beabf0c7d9f640630450e7deb455d983)) +* **rollups:** permanent hourly usage rollups with raw live-tail reads ([#1478](https://github.com/chekdata/codex-lb/issues/1478)) ([f85fbcb](https://github.com/chekdata/codex-lb/commit/f85fbcbd88330b0fa7600dcc4d66d3a4bbcb0be1)) +* **settings:** manage data retention from the dashboard ([#1364](https://github.com/chekdata/codex-lb/issues/1364)) ([cacc6c3](https://github.com/chekdata/codex-lb/commit/cacc6c367cda9ee91bf9eba71fb04cd9907e6400)) +* support postgres schema overrides ([#1](https://github.com/chekdata/codex-lb/issues/1)) ([e8ef0a5](https://github.com/chekdata/codex-lb/commit/e8ef0a55e1b0bcf5b652b5f5e844d502fc29d384)) +* **telemetry:** anonymous usage telemetry with informed opt-out consent ([#1618](https://github.com/chekdata/codex-lb/issues/1618)) ([debd7cf](https://github.com/chekdata/codex-lb/commit/debd7cf63c173e1e7b2982ff171bf1564c150c5a)) +* **telemetry:** report consent state and send a decision-time opt-out signal ([#1835](https://github.com/chekdata/codex-lb/issues/1835)) ([1541ee8](https://github.com/chekdata/codex-lb/commit/1541ee83105edd9a06062f6bcc617f9dab595a66)) +* **ui:** add iso8601 date display format to settings ([#1671](https://github.com/chekdata/codex-lb/issues/1671)) ([b03d39f](https://github.com/chekdata/codex-lb/commit/b03d39f3d786cf1a2da29199340fa4cfaff0d8e3)) +* **ui:** add Korean dashboard locale ([#1375](https://github.com/chekdata/codex-lb/issues/1375)) ([ccaa4aa](https://github.com/chekdata/codex-lb/commit/ccaa4aa35aa46e2eb7fe439ae5e96fb3e3fdacff)) +* **ui:** complete zh-CN dashboard translations ([#1436](https://github.com/chekdata/codex-lb/issues/1436)) ([79a42ce](https://github.com/chekdata/codex-lb/commit/79a42ce6d0f408b8d80b6d0bb280a6393bcba5f2)) +* **ui:** customize dashboard request-log columns ([#1503](https://github.com/chekdata/codex-lb/issues/1503)) ([138aa9f](https://github.com/chekdata/codex-lb/commit/138aa9f15c6ebea998335afae06475d8834fe7d6)) +* **ui:** header brand back to /dashboard on click ([#1452](https://github.com/chekdata/codex-lb/issues/1452)) ([dca802d](https://github.com/chekdata/codex-lb/commit/dca802dcca724d753cd46849883bccb99105af79)) +* **ui:** separate service and usage health status ([#1495](https://github.com/chekdata/codex-lb/issues/1495)) ([6b1f476](https://github.com/chekdata/codex-lb/commit/6b1f4769501d943c031a5246ada4b6eaea91dfde)) +* **ui:** surface reasoning token usage ([#1801](https://github.com/chekdata/codex-lb/issues/1801)) ([8e7589e](https://github.com/chekdata/codex-lb/commit/8e7589e4286869b9030eb1b19726297c63852ed3)) +* **ui:** warn when request log retention is disabled ([#1496](https://github.com/chekdata/codex-lb/issues/1496)) ([d2dc915](https://github.com/chekdata/codex-lb/commit/d2dc9151890fdc77368a568badd6c331b5496069)) +* **usage:** ingest live rate-limit snapshots from proxied traffic ([#1273](https://github.com/chekdata/codex-lb/issues/1273)) ([75e7c2b](https://github.com/chekdata/codex-lb/commit/75e7c2ba8cd9ff751bf269645b5a35bbfc6f60fe)) + + +### Bug Fixes + +* **accounts:** recover Free accounts after reset ([#1700](https://github.com/chekdata/codex-lb/issues/1700)) ([b43d0c8](https://github.com/chekdata/codex-lb/commit/b43d0c8bb3101932436dc9ff6fadb9034b4d3b03)) +* **accounts:** serialize cross-replica token refresh with per-account DB claims ([#1254](https://github.com/chekdata/codex-lb/issues/1254)) ([b5f0541](https://github.com/chekdata/codex-lb/commit/b5f0541a8241434f976c70222d63eab4ce9b77b9)) +* **api-keys:** make the shutdown flush of last_used_at coalescing lossless ([#1667](https://github.com/chekdata/codex-lb/issues/1667)) ([0fcb6a7](https://github.com/chekdata/codex-lb/commit/0fcb6a7aceeca058e02000a14f92970f9d3a91d5)) +* **api-keys:** reject duplicate limit rules on create ([#1312](https://github.com/chekdata/codex-lb/issues/1312)) ([31f7aac](https://github.com/chekdata/codex-lb/commit/31f7aac61bc55768bbb3ab1bbf819b21b7f5d368)) +* **api-keys:** restore last-used compatibility touch ([#1656](https://github.com/chekdata/codex-lb/issues/1656)) ([3fffc0c](https://github.com/chekdata/codex-lb/commit/3fffc0c1cc4dbc0d4606e5c0bc7d36e3585eaf03)) +* **api:** give thread-goal GET/POST distinct operationIds ([#1398](https://github.com/chekdata/codex-lb/issues/1398)) ([3b97766](https://github.com/chekdata/codex-lb/commit/3b97766972ef48e70eedf1a61db6fd4477d22502)) +* **auth:** guard the refresh singleflight negative cache by successor ownership ([#1652](https://github.com/chekdata/codex-lb/issues/1652)) ([4ace71e](https://github.com/chekdata/codex-lb/commit/4ace71e8044e5180905f7a53f2d00d010cd43233)) +* **auth:** keep guardian candidates session-safe ([#1669](https://github.com/chekdata/codex-lb/issues/1669)) ([ff2920c](https://github.com/chekdata/codex-lb/commit/ff2920cab1eba62da7c540a1b72b71961553d57d)), closes [#1668](https://github.com/chekdata/codex-lb/issues/1668) +* **auth:** require trusted-proxy identity consensus ([#1380](https://github.com/chekdata/codex-lb/issues/1380)) ([b3a5c2a](https://github.com/chekdata/codex-lb/commit/b3a5c2a911447e6d8207189f67269d9452f8b5d9)) +* **auth:** restrict guest access to sensitive request data ([#1497](https://github.com/chekdata/codex-lb/issues/1497)) ([73aa50e](https://github.com/chekdata/codex-lb/commit/73aa50eafe446e542897b6007a5778fdacb9a2ae)) +* **automation:** fall back to github.token when label sync hits rate limits ([#1272](https://github.com/chekdata/codex-lb/issues/1272)) ([3ce5ba6](https://github.com/chekdata/codex-lb/commit/3ce5ba698a62a1b6eb11b7b688575ff844e06dfb)) +* **balancer:** decorrelate round-robin tie-breaking across replicas ([#1327](https://github.com/chekdata/codex-lb/issues/1327)) ([fd529b2](https://github.com/chekdata/codex-lb/commit/fd529b21269328c88a3e8291858cccb1c27d93ff)) +* **balancer:** persist rate-limit cooldowns so peer replicas honor them ([#1261](https://github.com/chekdata/codex-lb/issues/1261)) ([991be81](https://github.com/chekdata/codex-lb/commit/991be817c3895840a20a770151eb862822b73f88)) +* **balancer:** recover probing accounts ([#1376](https://github.com/chekdata/codex-lb/issues/1376)) ([fe93776](https://github.com/chekdata/codex-lb/commit/fe93776c39efb63a6f0901937198ed2896f9677d)) +* **balancer:** reject implausible rate-limit resets ([#1374](https://github.com/chekdata/codex-lb/issues/1374)) ([aea1e6f](https://github.com/chekdata/codex-lb/commit/aea1e6f58e3961dbca6c2380d5473cf2a965dbb6)) +* **cache:** keep an aborted invalidation bump queued ([#1748](https://github.com/chekdata/codex-lb/issues/1748)) ([7148810](https://github.com/chekdata/codex-lb/commit/71488100f71b5b132ed9c86b8cddbb63991842a9)) +* **cache:** recover invalidation after failed prime ([#1544](https://github.com/chekdata/codex-lb/issues/1544)) ([ba5a283](https://github.com/chekdata/codex-lb/commit/ba5a283ecbeccee626293422287e988eaffcc584)) +* **caching:** extend cross-replica cache invalidation bus to routing, selection, and settings caches ([#1255](https://github.com/chekdata/codex-lb/issues/1255)) ([b7bf87c](https://github.com/chekdata/codex-lb/commit/b7bf87cf212db78d07e67dca3e43f2af3170b584)) +* **chat:** omit unset tools on mapped Responses payloads ([#1725](https://github.com/chekdata/codex-lb/issues/1725)) ([db5776c](https://github.com/chekdata/codex-lb/commit/db5776c288b5c709d665c1dcaa9298ae8c390e6a)) +* **ci:** back off Codex review triggers on usage limits (takeover of [#1560](https://github.com/chekdata/codex-lb/issues/1560)) ([#1631](https://github.com/chekdata/codex-lb/issues/1631)) ([c33bc41](https://github.com/chekdata/codex-lb/commit/c33bc41e9bdc7f1f281d7ea3b2d3fa6d3b522c9a)) +* **ci:** run ruff from the locked environment ([#1465](https://github.com/chekdata/codex-lb/issues/1465)) ([d52521a](https://github.com/chekdata/codex-lb/commit/d52521a98480a0e203243563a516576714113738)) +* **cli:** reject out-of-range server port before startup ([#1400](https://github.com/chekdata/codex-lb/issues/1400)) ([ec7aadb](https://github.com/chekdata/codex-lb/commit/ec7aadb3867aacee1927b096f04c49213624b307)) +* **compact:** elide observed inline images at wire cap ([#1457](https://github.com/chekdata/codex-lb/issues/1457)) ([8d154ec](https://github.com/chekdata/codex-lb/commit/8d154ecb559243b2aedc9fd8c2bd09b400e3c518)) +* **compact:** omit oversized non-state tool tail ([#1235](https://github.com/chekdata/codex-lb/issues/1235)) ([edb3734](https://github.com/chekdata/codex-lb/commit/edb37348f19a5015c3b90e0509ed92179e3716da)) +* **compact:** preserve historical side-effect anchors ([f76469f](https://github.com/chekdata/codex-lb/commit/f76469f1d64b13cafea3f825f2ece605defcd120)) +* **compact:** preserve model in normalized responses ([9fdd389](https://github.com/chekdata/codex-lb/commit/9fdd3897dc689edb8ad476c139dc6720c33a4774)) +* **compact:** recover previous-response-pinned compaction from quota-excluded owners ([#1780](https://github.com/chekdata/codex-lb/issues/1780)) ([120af75](https://github.com/chekdata/codex-lb/commit/120af7520cae7d51fb66c731d9d4578e416ce93f)) +* **config:** reject empty trusted proxy CIDRs ([#1379](https://github.com/chekdata/codex-lb/issues/1379)) ([e5b101f](https://github.com/chekdata/codex-lb/commit/e5b101f20299d02637b9a66866c2e5bfc61edb03)) +* **cost:** openai updates the terra and luna's cost ([#1553](https://github.com/chekdata/codex-lb/issues/1553)) ([c1d1892](https://github.com/chekdata/codex-lb/commit/c1d18929a689d57f9c908f9615041e58de93ad89)) +* **dashboard:** distinguish first-run empty states from filter mismatch ([#1729](https://github.com/chekdata/codex-lb/issues/1729)) ([e439043](https://github.com/chekdata/codex-lb/commit/e439043d4ad2869ca992d3d9bbb632b814406013)) +* **dashboard:** exclude cancelled/client_disconnected from error rate ([#1696](https://github.com/chekdata/codex-lb/issues/1696)) ([8a7d956](https://github.com/chekdata/codex-lb/commit/8a7d9560571478a435f66f082b7656a6e9313f14)) +* **dashboard:** keep overview visible when request logs fail ([#1397](https://github.com/chekdata/codex-lb/issues/1397)) ([603d181](https://github.com/chekdata/codex-lb/commit/603d1813a45e28bbeadc0247b033df8fe563173e)) +* **dashboard:** pin web asset MIME types against poisoned OS registries ([#1709](https://github.com/chekdata/codex-lb/issues/1709)) ([2164b8c](https://github.com/chekdata/codex-lb/commit/2164b8c0656b3a8539ccdf8a4a8655a788af9ae8)), closes [#1698](https://github.com/chekdata/codex-lb/issues/1698) +* **dashboard:** preserve cancelled request count ([#1766](https://github.com/chekdata/codex-lb/issues/1766)) ([ef9c68e](https://github.com/chekdata/codex-lb/commit/ef9c68e0fbc553ff83c374e4dcb7a3c079b163a9)) +* **dashboard:** separate quota and purchased credits ([#1670](https://github.com/chekdata/codex-lb/issues/1670)) ([4a08d96](https://github.com/chekdata/codex-lb/commit/4a08d968f34aeec423892c02775769335590619f)) +* **dashboard:** show cancellation totals in reports ([#1772](https://github.com/chekdata/codex-lb/issues/1772)) ([5d27f7f](https://github.com/chekdata/codex-lb/commit/5d27f7f0cc2fea37ce2e3786ea08660f008dd694)) +* **dashboard:** show cancelled request logs ([#1769](https://github.com/chekdata/codex-lb/issues/1769)) ([5f2f726](https://github.com/chekdata/codex-lb/commit/5f2f7266163f93b8fe5df6295fae6342bc51945b)) +* **dashboard:** surface upstream route metadata ([#1767](https://github.com/chekdata/codex-lb/issues/1767)) ([e359d49](https://github.com/chekdata/codex-lb/commit/e359d490befc87d27f198b528a67685ee7a8503e)) +* **db:** add postgres shm_size and raise default pool headroom ([#1791](https://github.com/chekdata/codex-lb/issues/1791)) ([539cf93](https://github.com/chekdata/codex-lb/commit/539cf934ea654efbc915bad17ea84a87c07afa4d)) +* **db:** bound wedged SQLite session teardown and reclaim the connection ([#1778](https://github.com/chekdata/codex-lb/issues/1778)) ([9eedb2c](https://github.com/chekdata/codex-lb/commit/9eedb2c8f4aa809715484e1c7607e6f0219b4ccf)) +* **db:** correct PostgreSQL pool budget ([#1519](https://github.com/chekdata/codex-lb/issues/1519)) ([68a2bc1](https://github.com/chekdata/codex-lb/commit/68a2bc14fe3e2932208d1e8996931da427ce7ec4)) +* **db:** handle percent-encoded SQLite URLs on Windows (takeover of [#1295](https://github.com/chekdata/codex-lb/issues/1295)) ([#1597](https://github.com/chekdata/codex-lb/issues/1597)) ([e5dbd9a](https://github.com/chekdata/codex-lb/commit/e5dbd9ac824553c5ed05f5e4fad0e8a3f67ff9b8)) +* **db:** honor configured PostgreSQL schema for bridge readiness ([e35e0f1](https://github.com/chekdata/codex-lb/commit/e35e0f1396c49dac6a947267f903f83f2f3f99f3)) +* **db:** honor configured schema for bridge readiness ([56dcc9d](https://github.com/chekdata/codex-lb/commit/56dcc9d5fcac32e73844869b5cc141a6e61ba82c)) +* **db:** isolate refresh work from request pool ([3b234d0](https://github.com/chekdata/codex-lb/commit/3b234d043d580cb5721bbaad70c5a7a2b0af12a8)) +* **db:** keep api-key reservation accounting at full durability ([#1665](https://github.com/chekdata/codex-lb/issues/1665)) ([5b81f2d](https://github.com/chekdata/codex-lb/commit/5b81f2d75dbbdf7c1656373a6ba14a5b2bde6a07)) +* **db:** merge stale-anchor recovery migration heads ([9a738f5](https://github.com/chekdata/codex-lb/commit/9a738f57134d0b7caa7f99c0d411f88c5a59543a)) +* **db:** pin asyncpg sessions to UTC ([#1352](https://github.com/chekdata/codex-lb/issues/1352)) ([977b991](https://github.com/chekdata/codex-lb/commit/977b991b69f7e21ae2768e5be30e1bd127b0f6a2)) +* **db:** reject empty migration database URL ([#1399](https://github.com/chekdata/codex-lb/issues/1399)) ([f527dee](https://github.com/chekdata/codex-lb/commit/f527dee729cc66513009a515f1ed387d95c382c8)) +* **db:** release SQLite handles before file mutations ([#1526](https://github.com/chekdata/codex-lb/issues/1526)) ([58c5eaf](https://github.com/chekdata/codex-lb/commit/58c5eaff2d8843745c798b8e3a821f9c3cc62af1)) +* **db:** repair missing HTTP bridge tables ([bb742e3](https://github.com/chekdata/codex-lb/commit/bb742e3240564c37c2b3e996f454a132697251d5)) +* **db:** repair missing HTTP bridge tables ([434d8e4](https://github.com/chekdata/codex-lb/commit/434d8e4d1302df506e7d6fab121adc17a1aabf27)) +* **db:** repair retired identity/warmup migration stamp ([#1847](https://github.com/chekdata/codex-lb/issues/1847)) ([b6c217f](https://github.com/chekdata/codex-lb/commit/b6c217fada24c8a7b7e2c77af6bce3e2d7a2d3e2)) +* **deploy:** repair broken multi-replica deployment artifacts ([#1263](https://github.com/chekdata/codex-lb/issues/1263)) ([2821929](https://github.com/chekdata/codex-lb/commit/28219296f63be34304d0090126bc97afaa768f45)) +* **docker:** preserve runtime readability for owner-only build files ([#1373](https://github.com/chekdata/codex-lb/issues/1373)) ([cf5db08](https://github.com/chekdata/codex-lb/commit/cf5db08042ed66724593dfcf5be66740b2c43e79)) +* **docker:** upgrade util-linux family in runtime image for CVE-2026-53615 ([#1796](https://github.com/chekdata/codex-lb/issues/1796)) ([0a4c0a1](https://github.com/chekdata/codex-lb/commit/0a4c0a1071cfe2e91357d8dc34b433cb511b1aec)) +* **fleet:** expose quota snapshot refresh timestamp ([#1640](https://github.com/chekdata/codex-lb/issues/1640)) ([006eff9](https://github.com/chekdata/codex-lb/commit/006eff937da6e537f8acc70023f195eb929c0fb7)) +* **helm:** bind TTFT dashboard SQL datasource ([#1827](https://github.com/chekdata/codex-lb/issues/1827)) ([8abd507](https://github.com/chekdata/codex-lb/commit/8abd50778dd15131fac01f6a40d8e07a1bcebf54)) +* **helm:** calculate aggregate 5xx error rate ([#1522](https://github.com/chekdata/codex-lb/issues/1522)) ([b883d69](https://github.com/chekdata/codex-lb/commit/b883d69dc6e2123a08ec84b9ea992adf30d2b28e)) +* **http-bridge:** classify recovery error frames and poison same-anchor eventless failures ([#1841](https://github.com/chekdata/codex-lb/issues/1841)) ([01f089c](https://github.com/chekdata/codex-lb/commit/01f089c359dadc2cc75b0719addc646e116624a5)) +* **http-bridge:** dedupe retry circuit failures per send ([#1743](https://github.com/chekdata/codex-lb/issues/1743)) ([5780a27](https://github.com/chekdata/codex-lb/commit/5780a27f8c77f033ece2d144cb25ff89fb9db679)) +* **http-bridge:** keep idle retirements out of retry circuit ([#1677](https://github.com/chekdata/codex-lb/issues/1677)) ([7c46719](https://github.com/chekdata/codex-lb/commit/7c4671980094135b9094278d2ebb374c7cb22655)) +* **http-bridge:** preserve goal-restart recovery across reconnects ([#1680](https://github.com/chekdata/codex-lb/issues/1680)) ([5dc6081](https://github.com/chekdata/codex-lb/commit/5dc6081e41b7abe8670ea4565758246ef9f173b9)) +* **http-bridge:** refuse foreign claims on live DRAINING leases ([#1722](https://github.com/chekdata/codex-lb/issues/1722)) ([b50cb86](https://github.com/chekdata/codex-lb/commit/b50cb86659f0cebdc4abd8e200556a54e62e17da)) +* **http-bridge:** restore upstream stale-anchor recovery ([d62bec7](https://github.com/chekdata/codex-lb/commit/d62bec78ef5ad1d288e80261387dcb661f60f887)) +* **http-bridge:** restore upstream stale-anchor recovery ([d6a0b27](https://github.com/chekdata/codex-lb/commit/d6a0b27319517336b83efd363eea4e0579c7a1fb)) +* **http-bridge:** stabilize silent and clean-close recovery ([#1394](https://github.com/chekdata/codex-lb/issues/1394)) ([a66f793](https://github.com/chekdata/codex-lb/commit/a66f79370ff59a7931dced6b70213f5bd2b531ca)) +* **http-bridge:** wait before retrying model capacity ([#1395](https://github.com/chekdata/codex-lb/issues/1395)) ([448b239](https://github.com/chekdata/codex-lb/commit/448b239c4db8170fc8c559fbe27f57f2ccfb9874)) +* **image:** upgrade patched util-linux packages ([820e0be](https://github.com/chekdata/codex-lb/commit/820e0be1179be34a68c688f0c20216a0d6e232bc)) +* **models:** apply context-window overrides to /v1 input context fields ([#1808](https://github.com/chekdata/codex-lb/issues/1808)) ([c750dcf](https://github.com/chekdata/codex-lb/commit/c750dcfe64961c7d538c75367e9ee509fe8c9052)) +* **models:** complete required Codex catalog fields ([#1299](https://github.com/chekdata/codex-lb/issues/1299)) ([a97bcc2](https://github.com/chekdata/codex-lb/commit/a97bcc26bc7a0a34a331f2f9bb9ae13d5602fd08)) +* **models:** correct GPT-5.6 context windows ([#1691](https://github.com/chekdata/codex-lb/issues/1691)) ([8488bc4](https://github.com/chekdata/codex-lb/commit/8488bc462a46be07ae70f805ff6bf351f0ba4d97)) +* **models:** raise GPT-5.6 bootstrap max_context_window to 872k ([#1813](https://github.com/chekdata/codex-lb/issues/1813)) ([1add104](https://github.com/chekdata/codex-lb/commit/1add1041b61e7b20ea104a91dd6331f03db904c7)) +* **oauth:** persist dashboard OAuth flow state for multi-replica ([#1329](https://github.com/chekdata/codex-lb/issues/1329)) ([8e2ee2d](https://github.com/chekdata/codex-lb/commit/8e2ee2d390dae4b4afd5dd61775fd7c8d29cc795)) +* **observability:** anchor TTFT to the attempt, expose queue wait as a dashboard trend ([#1333](https://github.com/chekdata/codex-lb/issues/1333)) ([f79f093](https://github.com/chekdata/codex-lb/commit/f79f0935b6224b892467d26fea2705d737315724)) +* **observability:** improve TTFT and TPS accuracy ([#1325](https://github.com/chekdata/codex-lb/issues/1325)) ([bc8d0fa](https://github.com/chekdata/codex-lb/commit/bc8d0fa335d9c8fea4c611b932c2677ce1146236)) +* **proxy-responses:** make marker recovery terminally atomic ([8cb55b7](https://github.com/chekdata/codex-lb/commit/8cb55b75d0d41e4cbb24e87e17bd610e6629503f)) +* **proxy-responses:** normalize Lite reasoning context ([#1431](https://github.com/chekdata/codex-lb/issues/1431)) ([c93e803](https://github.com/chekdata/codex-lb/commit/c93e803dc390b7aa29e606785e73f03c4b52de2c)) +* **proxy-responses:** persist durable transition manifests ([c614ad1](https://github.com/chekdata/codex-lb/commit/c614ad14d4d603305dc8c75a768fcbd76541f105)) +* **proxy-responses:** persist durable transition manifests ([32f250f](https://github.com/chekdata/codex-lb/commit/32f250fd1fb9013bbba1c978d1fbefecba3a0657)) +* **proxy-responses:** persist streamed transition output ([cdd9def](https://github.com/chekdata/codex-lb/commit/cdd9def4d67dcef6c33e21003c44c33620d7d3aa)) +* **proxy-responses:** prefer verified automatic marker recovery ([e49180c](https://github.com/chekdata/codex-lb/commit/e49180c4ab29aab03090a50c933f90319b194bce)) +* **proxy-responses:** recover active stale-anchor markers safely ([f36849c](https://github.com/chekdata/codex-lb/commit/f36849cd8616468db711a14b713b7eca62706b8a)) +* **proxy-responses:** recover active stale-anchor markers safely ([df04870](https://github.com/chekdata/codex-lb/commit/df0487058faf86ebf7ca24d6384c5d22e7e6501d)) +* **proxy-responses:** recover marker-backed anchorless retries ([e07a599](https://github.com/chekdata/codex-lb/commit/e07a599570c927919364e73cd060cacb7d1498c9)) +* **proxy-responses:** recover marker-backed anchorless retries ([2f7aaf0](https://github.com/chekdata/codex-lb/commit/2f7aaf09c109450e0395441c983d065af923fa1f)) +* **proxy-responses:** recover settled-tool retry chains ([1ea648b](https://github.com/chekdata/codex-lb/commit/1ea648baf29bc25d037b643c8b883cc15209128c)) +* **proxy-responses:** recover settled-tool retry chains ([e9bdf52](https://github.com/chekdata/codex-lb/commit/e9bdf52293e9666e2e304cecf15da02778cd6058)) +* **proxy-responses:** recover staged settled retry chains ([fc73d40](https://github.com/chekdata/codex-lb/commit/fc73d409739c286a4b05a62753709cb2f4111700)) +* **proxy-responses:** recover staged settled retry chains ([8688296](https://github.com/chekdata/codex-lb/commit/868829681b5cb430de8930c24436d253d0c6f4ff)) +* **proxy-responses:** restart verified v1 goals after stale anchors ([64095de](https://github.com/chekdata/codex-lb/commit/64095de918eb99a375091ec5d22e330f3e779dc2)) +* **proxy-responses:** restart verified v1 goals after stale anchors ([6e2750a](https://github.com/chekdata/codex-lb/commit/6e2750a98c3335a8979c7cfdc3a1fb6f622eaf41)) +* **proxy-responses:** retain marker on invalid terminal manifest ([e8f8792](https://github.com/chekdata/codex-lb/commit/e8f87929a1b732a9d6a825ee14f305d777ab6e2e)) +* **proxy-responses:** tolerate structured content type values ([#1566](https://github.com/chekdata/codex-lb/issues/1566)) ([8600a60](https://github.com/chekdata/codex-lb/commit/8600a60ea661bc3c8c7dfae11e3678a3a72a266c)) +* **proxy:** abandon unavailable owner on thread-scoped goal restart ([#1764](https://github.com/chekdata/codex-lb/issues/1764)) ([17ae866](https://github.com/chekdata/codex-lb/commit/17ae866e2f6fd3d2daa1f1c4a0b2a8d0a5d2f25b)) +* **proxy:** absorb replay-safe compaction recovery ([#1849](https://github.com/chekdata/codex-lb/issues/1849)) ([c597226](https://github.com/chekdata/codex-lb/commit/c597226cf139ec1e80117b72f02b7a18bef3645f)) +* **proxy:** add explicit Daybreak capability routing ([#1742](https://github.com/chekdata/codex-lb/issues/1742)) ([0031e3d](https://github.com/chekdata/codex-lb/commit/0031e3d468747d63d8573139eabcaa0594891aef)) +* **proxy:** attribute bridge failure fan-out request logs to each request's API key ([#1540](https://github.com/chekdata/codex-lb/issues/1540)) ([3fe0d6f](https://github.com/chekdata/codex-lb/commit/3fe0d6f286019a0505783d803db9a1d8cdf6b307)) +* **proxy:** attribute websocket request kind per turn ([#1602](https://github.com/chekdata/codex-lb/issues/1602)) ([e3bc442](https://github.com/chekdata/codex-lb/commit/e3bc4420ada76edd515619a5976deb6da14344e4)) +* **proxy:** bind account-bound retries to dispatch owner ([#1829](https://github.com/chekdata/codex-lb/issues/1829)) ([3381938](https://github.com/chekdata/codex-lb/commit/3381938aa278d7f3cd371bdd76c7914856586bf8)) +* **proxy:** bound raw HTTP request ingress ([#1440](https://github.com/chekdata/codex-lb/issues/1440)) ([453c1e6](https://github.com/chekdata/codex-lb/commit/453c1e6d83f1e94bcdcff4c6014721b3632c89bd)) +* **proxy:** bound upstream streams that never send response headers ([#1611](https://github.com/chekdata/codex-lb/issues/1611)) ([af5051f](https://github.com/chekdata/codex-lb/commit/af5051f871fef7f87d8da499f29e9a61a36d36d4)) +* **proxy:** classify parameterless previous response errors ([#1818](https://github.com/chekdata/codex-lb/issues/1818)) ([eeab46a](https://github.com/chekdata/codex-lb/commit/eeab46a5edf5be16ff2915edc21a7f6a9a424717)) +* **proxy:** classify tool-search missing-tool-output rejections ([#1531](https://github.com/chekdata/codex-lb/issues/1531)) ([7739648](https://github.com/chekdata/codex-lb/commit/773964875b3f892aa1790db665698171c7d1774d)), closes [#1168](https://github.com/chekdata/codex-lb/issues/1168) +* **proxy:** clear durable bridge anchor after stuck eventless timeout ([#1563](https://github.com/chekdata/codex-lb/issues/1563)) ([4c04e53](https://github.com/chekdata/codex-lb/commit/4c04e538b86dfbe4fdd32f3360200d92e93529e3)) +* **proxy:** close agent replay review gaps ([c5c08f5](https://github.com/chekdata/codex-lb/commit/c5c08f5d20e3b21566b4d41fbfaab80da96d653d)) +* **proxy:** close durable recovery review gaps ([9cd8de6](https://github.com/chekdata/codex-lb/commit/9cd8de6efd016cddc43bb5099435e120232d66bd)) +* **proxy:** close non-stream chat collect and map error status ([#1712](https://github.com/chekdata/codex-lb/issues/1712)) ([a85f71d](https://github.com/chekdata/codex-lb/commit/a85f71dbec6f56d417bd663c3e63e7431267554e)) +* **proxy:** close reconnect review gaps ([11b6a83](https://github.com/chekdata/codex-lb/commit/11b6a836106161a53cb4f49b070743c50f9556de)) +* **proxy:** compact transport switch + trigger canonicalization (supersedes [#1749](https://github.com/chekdata/codex-lb/issues/1749)) ([#1809](https://github.com/chekdata/codex-lb/issues/1809)) ([0481ed9](https://github.com/chekdata/codex-lb/commit/0481ed996ab128ae67ff311a9c69699e98890d7b)) +* **proxy:** complete Codex compaction SSE lifecycle ([#1634](https://github.com/chekdata/codex-lb/issues/1634)) ([7f91b91](https://github.com/chekdata/codex-lb/commit/7f91b91f0a6c14cd6a8ee903f40da3e5da5c593d)) +* **proxy:** complete disconnect cleanup — pool leak, charged reservation, mutable terminal reason ([#1645](https://github.com/chekdata/codex-lb/issues/1645)) ([6cf7e61](https://github.com/chekdata/codex-lb/commit/6cf7e61d7719654a62fb3132a21ae5f19ad8dba1)) +* **proxy:** dedup and cap oversized response.create dumps ([#1366](https://github.com/chekdata/codex-lb/issues/1366)) ([d0f5b08](https://github.com/chekdata/codex-lb/commit/d0f5b084c4a40eb8fddf838730fa43c4bbad245e)) +* **proxy:** demote quarantined bridge reattach keys ([#1730](https://github.com/chekdata/codex-lb/issues/1730)) ([5e1f568](https://github.com/chekdata/codex-lb/commit/5e1f568f3a2772b4d1162a5e325d056cae7daa39)) +* **proxy:** detect stalled upstream websockets ([#1579](https://github.com/chekdata/codex-lb/issues/1579)) ([a0a977a](https://github.com/chekdata/codex-lb/commit/a0a977a6f53b42aecec83c29395bb543f194750e)) +* **proxy:** diagnose abandoned response replay ([fbc7b5b](https://github.com/chekdata/codex-lb/commit/fbc7b5b2a1cd7339410ada966ceb9f418b169a65)) +* **proxy:** do not rewrite thread locality for a file-pin owner ([#1765](https://github.com/chekdata/codex-lb/issues/1765)) ([34ef7b2](https://github.com/chekdata/codex-lb/commit/34ef7b262ecabc597be0c7dd73978dc24973ee82)) +* **proxy:** drain active WebSocket turns on shutdown ([#1520](https://github.com/chekdata/codex-lb/issues/1520)) ([66b9196](https://github.com/chekdata/codex-lb/commit/66b9196d188ef85843b24fa1a26067057c075c83)) +* **proxy:** drop malformed compact item ids ([#1815](https://github.com/chekdata/codex-lb/issues/1815)) ([812265d](https://github.com/chekdata/codex-lb/commit/812265d11c0faa470da1db1b689442afa2b93869)) +* **proxy:** durably recover hard HTTP bridge operations ([#1657](https://github.com/chekdata/codex-lb/issues/1657)) ([7a0b671](https://github.com/chekdata/codex-lb/commit/7a0b67192140ab307b911719189c52f4fa87033d)) +* **proxy:** enforce soft reconnect owner pin ([f62569e](https://github.com/chekdata/codex-lb/commit/f62569e6399781e405d19c6a926f76fdd227b3c4)) +* **proxy:** extend websocket stream budget ([#1353](https://github.com/chekdata/codex-lb/issues/1353)) ([de2c5fc](https://github.com/chekdata/codex-lb/commit/de2c5fc09ef54c22dec3664c292812c3e8af1846)) +* **proxy:** fail closed on ambiguous receive ([e5e1fc7](https://github.com/chekdata/codex-lb/commit/e5e1fc7309545e7a92af5ae650e2274b3c5bd99f)) +* **proxy:** fail closed on ambiguous receive ([bd1d1c9](https://github.com/chekdata/codex-lb/commit/bd1d1c98dc20ce4f16b793931074295f4f25d4f3)) +* **proxy:** fail over dead account proxy routes before upstream dispatch ([#1542](https://github.com/chekdata/codex-lb/issues/1542)) ([e9a9e8a](https://github.com/chekdata/codex-lb/commit/e9a9e8a8bc1d4e3b40a6064950c8d923a7fa79c1)) +* **proxy:** fail over stuck HTTP bridge owner requests to a fresh account ([#1401](https://github.com/chekdata/codex-lb/issues/1401)) ([f2f8f91](https://github.com/chekdata/codex-lb/commit/f2f8f916ab882a120b3abf406157f44c12b58cc5)) +* **proxy:** fence bridge lease writes, evict fenced-out replicas, purge orphaned ring state ([#1259](https://github.com/chekdata/codex-lb/issues/1259)) ([53f7b46](https://github.com/chekdata/codex-lb/commit/53f7b4633978f6a8b1085e2a9a5215fa91c7e62b)) +* **proxy:** fence stale-anchor recovery generations ([67b7c50](https://github.com/chekdata/codex-lb/commit/67b7c50ace7e6e47a062e72d579ca21a33a704da)) +* **proxy:** fence successor bridge claims against the retiring predecessor ([#1751](https://github.com/chekdata/codex-lb/issues/1751)) ([2c0dc5b](https://github.com/chekdata/codex-lb/commit/2c0dc5b8eec16d3e8c413f144cd62c583f43847d)) +* **proxy:** forward Codex standalone web search ([#1232](https://github.com/chekdata/codex-lb/issues/1232)) ([667cdab](https://github.com/chekdata/codex-lb/commit/667cdab568aa684279dca031171ffb291680ea50)) +* **proxy:** guard model-transition owner-conflict fork ([#1619](https://github.com/chekdata/codex-lb/issues/1619)) ([52092bc](https://github.com/chekdata/codex-lb/commit/52092bc91fd81d7a18655eab403f02ff6895dd80)) +* **proxy:** harden compact continuity recovery ([c1c3f31](https://github.com/chekdata/codex-lb/commit/c1c3f31d47ff7241d226efbea88ed8d6550a8fe1)) +* **proxy:** hold fenced hard turns through cooldown ([#1739](https://github.com/chekdata/codex-lb/issues/1739)) ([6ff51cd](https://github.com/chekdata/codex-lb/commit/6ff51cd69c564499e4371ee755eecab8d80b262d)) +* **proxy:** ignore API-key-enforced service tier a model never advertises ([#1438](https://github.com/chekdata/codex-lb/issues/1438)) ([e04226b](https://github.com/chekdata/codex-lb/commit/e04226b4324fed4bf3f78514977292071356f51f)) +* **proxy:** keep abrupt eventless websocket drops account-neutral ([#1777](https://github.com/chekdata/codex-lb/issues/1777)) ([6c97ad6](https://github.com/chekdata/codex-lb/commit/6c97ad6265100c4ac3489e15a247d73ab45866fb)) +* **proxy:** keep file-pin owner on soft 1011 reconnect ([#1761](https://github.com/chekdata/codex-lb/issues/1761)) ([f694c44](https://github.com/chekdata/codex-lb/commit/f694c449479dd1b204e93ee27bf599f9a5c6b86c)) +* **proxy:** keep stream idle timeouts account-neutral ([#1718](https://github.com/chekdata/codex-lb/issues/1718)) ([64da340](https://github.com/chekdata/codex-lb/commit/64da340ab72580d8762ba9cda8a1fed9c9bb30be)) +* **proxy:** keep upstream request-shape rejections account neutral ([#1532](https://github.com/chekdata/codex-lb/issues/1532)) ([24d12f2](https://github.com/chekdata/codex-lb/commit/24d12f28ed5d95a552fcca15115d654e1ab0c411)) +* **proxy:** never inject a cross-account previous_response_id anchor (takeover of [#1274](https://github.com/chekdata/codex-lb/issues/1274)) ([#1638](https://github.com/chekdata/codex-lb/issues/1638)) ([6839705](https://github.com/chekdata/codex-lb/commit/68397054f58bf20e61e14263ee881c1b2532c7b9)) +* **proxy:** normalize persisted user replay metadata ([0e94465](https://github.com/chekdata/codex-lb/commit/0e944652f6d07d919193335b96a13faf502f65a3)) +* **proxy:** normalize persisted user replay metadata ([4d732d2](https://github.com/chekdata/codex-lb/commit/4d732d2fe3364229970967f10162bcdd226d45df)) +* **proxy:** normalize single-account warmup failures ([#1774](https://github.com/chekdata/codex-lb/issues/1774)) ([f92bc90](https://github.com/chekdata/codex-lb/commit/f92bc906ee06079e307866cff548b75435b46c49)) +* **proxy:** normalize timestamptz lease expiry in durable lease liveness check ([#1673](https://github.com/chekdata/codex-lb/issues/1673)) ([7913ff9](https://github.com/chekdata/codex-lb/commit/7913ff920d2c7eed85394581a427196df8d47865)) +* **proxy:** O(1) shared-future admission waits + event-loop lag watchdog ([#1842](https://github.com/chekdata/codex-lb/issues/1842)) ([ed2c94d](https://github.com/chekdata/codex-lb/commit/ed2c94d4b8ece64455233e5293d44ec0f263e6bc)) +* **proxy:** persist file ownership across replicas ([#1521](https://github.com/chekdata/codex-lb/issues/1521)) ([2cd52e4](https://github.com/chekdata/codex-lb/commit/2cd52e44b4136bdc76b425cca1bd767335f43754)) +* **proxy:** persist stale-anchor recovery fences ([60fd768](https://github.com/chekdata/codex-lb/commit/60fd7685365e338569a3dd7c76298afbdcd67a24)) +* **proxy:** persist streamed response transition output ([42483a6](https://github.com/chekdata/codex-lb/commit/42483a685cedd8aed33cf36353f241709e6e84e4)) +* **proxy:** pin hard-affinity bridge recovery ([ff6f3a2](https://github.com/chekdata/codex-lb/commit/ff6f3a2a1de02ad1f86039920decf22c99c01d1e)) +* **proxy:** pin physical bridge recovery to owner ([cdb2f1e](https://github.com/chekdata/codex-lb/commit/cdb2f1e6140bbd34c8b15a019df68a7c8b873c5f)) +* **proxy:** preserve compact terminal error type ([#1824](https://github.com/chekdata/codex-lb/issues/1824)) ([78d63e5](https://github.com/chekdata/codex-lb/commit/78d63e5a840c1cc6a34a03cb002eac9b3e041f7e)) +* **proxy:** preserve developer-interleaved fresh resends ([#1537](https://github.com/chekdata/codex-lb/issues/1537)) ([201281b](https://github.com/chekdata/codex-lb/commit/201281b55a2b6fb6473214d69650933d27b58faa)) +* **proxy:** preserve encrypted compaction item ids ([#1316](https://github.com/chekdata/codex-lb/issues/1316)) ([9b79dba](https://github.com/chekdata/codex-lb/commit/9b79dba596c559319fb67fd06f640e52b9fc5149)) +* **proxy:** preserve file pins across bridge recovery ([e86918f](https://github.com/chekdata/codex-lb/commit/e86918fda796551e59dc71ad659916361985be8a)) +* **proxy:** preserve fresh bridge full resends ([#1486](https://github.com/chekdata/codex-lb/issues/1486)) ([b5a515f](https://github.com/chekdata/codex-lb/commit/b5a515f0d28cd3e3f67a68e7b8ed21dd8f5c7ccf)) +* **proxy:** preserve HTTP bridge model-transition forks ([#1356](https://github.com/chekdata/codex-lb/issues/1356)) ([153bbc5](https://github.com/chekdata/codex-lb/commit/153bbc50504632b44986d3a47c73acd3ee7a9062)) +* **proxy:** preserve invalid live replay manifests ([4b50064](https://github.com/chekdata/codex-lb/commit/4b50064636f2bdccc4141100c8fc1bf48a41cf31)) +* **proxy:** preserve projected recovery continuity ([89e4363](https://github.com/chekdata/codex-lb/commit/89e43637bdcf1278179aa1b1422dd2bd2a8663d7)) +* **proxy:** preserve recovery alias during reconnect ([4572486](https://github.com/chekdata/codex-lb/commit/457248684360109c70bd765dd8863bd05c31b68b)) +* **proxy:** preserve terminal delivery across detach ([#1527](https://github.com/chekdata/codex-lb/issues/1527)) ([4694a5c](https://github.com/chekdata/codex-lb/commit/4694a5cd43d8c063996c680a38f8c23eb4e6a4f2)) +* **proxy:** preserve websocket connect errors ([#1517](https://github.com/chekdata/codex-lb/issues/1517)) ([2ba5f9a](https://github.com/chekdata/codex-lb/commit/2ba5f9a65d00dcce8ff0c6505d0484e6574b8c24)) +* **proxy:** project abandoned agent boundary recovery ([f550b74](https://github.com/chekdata/codex-lb/commit/f550b740c633d29d265a4a04f37219cbdfc5b522)) +* **proxy:** project abandoned agent boundary recovery ([904864e](https://github.com/chekdata/codex-lb/commit/904864ebd5f41d78d9b2ae903ee3a6eaf609628f)) +* **proxy:** purge stale durable bridge rows on startup ([#1310](https://github.com/chekdata/codex-lb/issues/1310)) ([9b40f74](https://github.com/chekdata/codex-lb/commit/9b40f746262b895c7f2b94d3afc17266f75b76ce)) +* **proxy:** purge stale hard codex_session mappings pinned to a durably unavailable owner ([#1417](https://github.com/chekdata/codex-lb/issues/1417)) ([b1d27bc](https://github.com/chekdata/codex-lb/commit/b1d27bc62808427b67ffea547a6a89a0d034f26e)) +* **proxy:** quarantine poisoned bridge anchors at circuit open ([ac8b73c](https://github.com/chekdata/codex-lb/commit/ac8b73c5101ca6b213d8724c566ad38cb3e52448)) +* **proxy:** quarantine silent HTTP bridge sessions (takeover of [#1405](https://github.com/chekdata/codex-lb/issues/1405)) ([#1630](https://github.com/chekdata/codex-lb/issues/1630)) ([3aabe99](https://github.com/chekdata/codex-lb/commit/3aabe99811d67bbd59f1b8ce6a788ad798c597c3)) +* **proxy:** queue bridged requests through response-create gate contention ([#1266](https://github.com/chekdata/codex-lb/issues/1266)) ([87fae43](https://github.com/chekdata/codex-lb/commit/87fae4301583799b1ee72b46f312a2aec95ee8bb)) +* **proxy:** recognize canonical invalid response anchors ([#7](https://github.com/chekdata/codex-lb/issues/7)) ([d9ab2ab](https://github.com/chekdata/codex-lb/commit/d9ab2ab77c99ff45d315724c39248663fd9eb238)) +* **proxy:** reconcile durable full resend owner ([#1599](https://github.com/chekdata/codex-lb/issues/1599)) ([e959326](https://github.com/chekdata/codex-lb/commit/e9593266092f44164920787ec9d19bf5c9d67f10)) +* **proxy:** record early downstream cancellations ([#1324](https://github.com/chekdata/codex-lb/issues/1324)) ([1089ab5](https://github.com/chekdata/codex-lb/commit/1089ab5dae24a507b1c512301180997b37cc280e)) +* **proxy:** recover abandoned pending anchors ([d774815](https://github.com/chekdata/codex-lb/commit/d7748156617a8bd21ee3586af192797928438b67)) +* **proxy:** recover abandoned pending anchors ([666e717](https://github.com/chekdata/codex-lb/commit/666e7179808c32fe9656ef7d596445cc04a9c5f7)) +* **proxy:** recover abandoned response continuation ([42fd47b](https://github.com/chekdata/codex-lb/commit/42fd47b59154c1cc91953e92f276a039694c2403)) +* **proxy:** recover compacted developer prefixes ([fbc23aa](https://github.com/chekdata/codex-lb/commit/fbc23aab6c042cede7f7a832f4f4f9dd9f97393c)) +* **proxy:** recover completed agent-message turns ([6bd5aba](https://github.com/chekdata/codex-lb/commit/6bd5abab2a651188e0e03b5b74784e329d5bb66b)) +* **proxy:** recover completed agent-message turns ([1dbbb8f](https://github.com/chekdata/codex-lb/commit/1dbbb8f4ccd841d5134d3ad52da52dfbc6be43a8)) +* **proxy:** recover dead durable bridge anchors fast ([#1625](https://github.com/chekdata/codex-lb/issues/1625)) ([85f1ee4](https://github.com/chekdata/codex-lb/commit/85f1ee4b40a56beb6ddb5d96a570073169bfa8f4)) +* **proxy:** recover exact long-session context ([#8](https://github.com/chekdata/codex-lb/issues/8)) ([c646bdc](https://github.com/chekdata/codex-lb/commit/c646bdc7967a1c3cc9ef08182fff4cbbf5e6fac2)) +* **proxy:** recover from host network changes ([#1234](https://github.com/chekdata/codex-lb/issues/1234)) ([c2814b6](https://github.com/chekdata/codex-lb/commit/c2814b673a0ac742038775d3f91a3c4f9ab99bf6)) +* **proxy:** recover idle Codex Desktop bridge ([#1439](https://github.com/chekdata/codex-lb/issues/1439)) ([b49f25a](https://github.com/chekdata/codex-lb/commit/b49f25a76f7b15823eddceb1b18a51df61d0c7fc)) +* **proxy:** recover normalized Codex continuation ([bb6b714](https://github.com/chekdata/codex-lb/commit/bb6b714cedf5dd5fbbed2f0cb4114e39c0f3e1bf)) +* **proxy:** recover proved explicit stale anchors ([806c6f4](https://github.com/chekdata/codex-lb/commit/806c6f4115caea6b2474db494dc39050f7eeff24)) +* **proxy:** recover proved explicit stale anchors ([7237705](https://github.com/chekdata/codex-lb/commit/7237705b09c64662c7554251305008acbbbeb717)) +* **proxy:** recover rejected trimmed continuity anchors ([#5](https://github.com/chekdata/codex-lb/issues/5)) ([af8dc98](https://github.com/chekdata/codex-lb/commit/af8dc9805e126615d75acf70c667061181495e7a)) +* **proxy:** recover sequenced Codex prewarms ([#1359](https://github.com/chekdata/codex-lb/issues/1359)) ([c9dac81](https://github.com/chekdata/codex-lb/commit/c9dac811665a1eabc4c286f02c140f89a645f72a)) +* **proxy:** recover settled pending calls after stale anchors ([67b7084](https://github.com/chekdata/codex-lb/commit/67b708444365ee336a6c1ea5fb919d90289429b9)) +* **proxy:** recover stale previous response anchors ([66f2619](https://github.com/chekdata/codex-lb/commit/66f2619b2317f48ca0152e4e4011526b8534af2c)) +* **proxy:** recover stale previous response anchors ([#1863](https://github.com/chekdata/codex-lb/issues/1863)) ([629a3d9](https://github.com/chekdata/codex-lb/commit/629a3d94441f1ff38cdaec95fa854878805267ac)) +* **proxy:** recover stale response-create gates ([#1296](https://github.com/chekdata/codex-lb/issues/1296)) ([fb5a573](https://github.com/chekdata/codex-lb/commit/fb5a573ccad0cd364a53e2c5c6ef52558a618d45)) +* **proxy:** recover stale responses bridge sessions ([126cdd5](https://github.com/chekdata/codex-lb/commit/126cdd595cd760e116c5eda6f4d512ff98a85e40)) +* **proxy:** recover stale responses bridge sessions ([09f2824](https://github.com/chekdata/codex-lb/commit/09f28240f9f69c1cfb004b072c2bc87c8ef1cfd9)) +* **proxy:** recover verified responses after owner loss ([#1437](https://github.com/chekdata/codex-lb/issues/1437)) ([e6270f3](https://github.com/chekdata/codex-lb/commit/e6270f3ff6140d1f2c09bbd7820487f398de6fd2)) +* **proxy:** reject added-only replay manifests ([651f4ac](https://github.com/chekdata/codex-lb/commit/651f4ac27aca09a4c7b71a14c6e3fecbe50b6a90)) +* **proxy:** reject truncated chat completion streams ([#1833](https://github.com/chekdata/codex-lb/issues/1833)) ([6ba083d](https://github.com/chekdata/codex-lb/commit/6ba083d7df4f82c2d2e6aa08e9a1e1fb47b59faa)) +* **proxy:** reject unsupported multi-worker-per-instance for shared per-account caps ([#1328](https://github.com/chekdata/codex-lb/issues/1328)) ([2e10405](https://github.com/chekdata/codex-lb/commit/2e10405acb31ee67f6da73b6f0b8ec4d86e1a1d2)) +* **proxy:** release idle bridge sessions' account stream leases ([#1476](https://github.com/chekdata/codex-lb/issues/1476)) ([9349040](https://github.com/chekdata/codex-lb/commit/934904045837a1c23fc260b2fb38927040f7e6d3)) +* **proxy:** release pending websocket stream leases on disconnect ([#1282](https://github.com/chekdata/codex-lb/issues/1282)) ([f06173e](https://github.com/chekdata/codex-lb/commit/f06173e779b17a7e1fed5b14a24db867fd059caf)), closes [#1281](https://github.com/chekdata/codex-lb/issues/1281) +* **proxy:** release the API-key reservation on all exits of the models endpoints ([#1653](https://github.com/chekdata/codex-lb/issues/1653)) ([7007885](https://github.com/chekdata/codex-lb/commit/7007885dad6572e2332739f808528c5b8b4a0857)) +* **proxy:** report eligible pool usage exhaustion as 429 ([#1541](https://github.com/chekdata/codex-lb/issues/1541)) ([897ae15](https://github.com/chekdata/codex-lb/commit/897ae156cfd3254b2cd85e148afcb6275cd4bdf1)) +* **proxy:** report suppressed duplicate tool-call terminals ([#1706](https://github.com/chekdata/codex-lb/issues/1706)) ([25d6374](https://github.com/chekdata/codex-lb/commit/25d6374a8a671900a6bf4dc89f248e7834efad76)) +* **proxy:** require account-neutral bridge replay ([d81ba12](https://github.com/chekdata/codex-lb/commit/d81ba120137c1e5d9072b22c9597620ae22f9d4f)) +* **proxy:** require canonical agent paths for replay ([11e9b42](https://github.com/chekdata/codex-lb/commit/11e9b42d0e9c625a245193a6386783e0f89fa945)) +* **proxy:** restore safe proxied websocket setup retry ([e4354db](https://github.com/chekdata/codex-lb/commit/e4354db7da15a010ef30eb20ad496c38d4a25364)) +* **proxy:** restore safe proxied websocket setup retry ([3e1b1de](https://github.com/chekdata/codex-lb/commit/3e1b1de97747413a851de68d402500899b5e26c6)) +* **proxy:** retain image reservation recovery ownership ([#1822](https://github.com/chekdata/codex-lb/issues/1822)) ([bd67c64](https://github.com/chekdata/codex-lb/commit/bd67c640012692786f6beddd3d61c67cea759c47)) +* **proxy:** retire cooldown-suppressed HTTP bridge sessions ([#49](https://github.com/chekdata/codex-lb/issues/49)) ([8c6ff6b](https://github.com/chekdata/codex-lb/commit/8c6ff6b6b4e76e453a2cfed29bd3b0ef0141a778)) +* **proxy:** retry detached API key release ([#1545](https://github.com/chekdata/codex-lb/issues/1545)) ([35e09f6](https://github.com/chekdata/codex-lb/commit/35e09f68ad6700c5d7e44636aceca24bd948cf72)) +* **proxy:** retry server_is_overloaded responses ([#1315](https://github.com/chekdata/codex-lb/issues/1315)) ([93383a7](https://github.com/chekdata/codex-lb/commit/93383a725a14cab21aae414963763b8ab6e18cb0)) +* **proxy:** retry stale per-account model rejections ([#1321](https://github.com/chekdata/codex-lb/issues/1321)) ([edc486a](https://github.com/chekdata/codex-lb/commit/edc486ab2b6b4cf1938eb0dba5f176c86df9eaa6)) +* **proxy:** retry transient proxy handshake EOF ([83d767f](https://github.com/chekdata/codex-lb/commit/83d767fa7d3a4e349606d7352d0ba8836b44e059)) +* **proxy:** retry transient proxy handshake EOF ([1033547](https://github.com/chekdata/codex-lb/commit/1033547e46866ebebd82a740c8547e622121f135)) +* **proxy:** retry upstream model capacity errors ([#1385](https://github.com/chekdata/codex-lb/issues/1385)) ([63bfcdc](https://github.com/chekdata/codex-lb/commit/63bfcdc8c04c90d18f497062960bb4349173b957)) +* **proxy:** route source-owned models off the WebSocket transport ([#1659](https://github.com/chekdata/codex-lb/issues/1659)) ([08b84a9](https://github.com/chekdata/codex-lb/commit/08b84a95ad5d4de88b3ac4ebb37185781a603f81)) +* **proxy:** route Spark using fresh per-account quota evidence ([#1248](https://github.com/chekdata/codex-lb/issues/1248)) ([1471475](https://github.com/chekdata/codex-lb/commit/14714750092f2d73158f3ba533c446d20885aa88)) +* **proxy:** scope backend Codex affinity by thread identity ([#1703](https://github.com/chekdata/codex-lb/issues/1703)) ([35bbb00](https://github.com/chekdata/codex-lb/commit/35bbb006bc2ec76a43273f08f5a29ea150f11f4c)) +* **proxy:** separate websocket scope cleanup budget ([#1723](https://github.com/chekdata/codex-lb/issues/1723)) ([fd97cb8](https://github.com/chekdata/codex-lb/commit/fd97cb856970e46a5e6e4265e0064fca4f24fb02)) +* **proxy:** sequence synthetic Responses failures ([#1479](https://github.com/chekdata/codex-lb/issues/1479)) ([6f6af9b](https://github.com/chekdata/codex-lb/commit/6f6af9b3a6862d0bc239183b68edbe2cb6439864)) +* **proxy:** sequence websocket health after settlement ([#1558](https://github.com/chekdata/codex-lb/issues/1558)) ([d77011b](https://github.com/chekdata/codex-lb/commit/d77011b1882c3150514eb9a8c0f5508775cb2222)) +* **proxy:** serialize shared-session rate-limit reads ([#1432](https://github.com/chekdata/codex-lb/issues/1432)) ([539c4a2](https://github.com/chekdata/codex-lb/commit/539c4a2a37e77aa57ce9d2d3348cd030acfca140)) +* **proxy:** settle API-key reservation before budget-exhausted compact preflight raises ([#1332](https://github.com/chekdata/codex-lb/issues/1332)) ([fe625bf](https://github.com/chekdata/codex-lb/commit/fe625bfb78d8040c664ba2153e1e48275f327be3)) +* **proxy:** settle compact failover before account health ([#1717](https://github.com/chekdata/codex-lb/issues/1717)) ([3093203](https://github.com/chekdata/codex-lb/commit/30932034c3188efbddb33a68e0c438bd5db87db3)) +* **proxy:** settle reservations when terminal bookkeeping aborts ([#1600](https://github.com/chekdata/codex-lb/issues/1600)) ([ce7b586](https://github.com/chekdata/codex-lb/commit/ce7b586900148027c585c7dbacdda42aeafacb0e)), closes [#1594](https://github.com/chekdata/codex-lb/issues/1594) +* **proxy:** settle terminal spool append failures ([#1775](https://github.com/chekdata/codex-lb/issues/1775)) ([4e48f35](https://github.com/chekdata/codex-lb/commit/4e48f355b519fb20e16e89a5e5c6b2375bb08161)) +* **proxy:** slim inline images nested in historical tool-call outputs ([#1344](https://github.com/chekdata/codex-lb/issues/1344)) ([a8578d7](https://github.com/chekdata/codex-lb/commit/a8578d780e67b8ce115e8eb1893176a05c67ea79)) +* **proxy:** spill bare session affinity under account caps ([#1382](https://github.com/chekdata/codex-lb/issues/1382)) ([5d55191](https://github.com/chekdata/codex-lb/commit/5d5519105362447b40fa529c2ae8131d52720214)) +* **proxy:** spill unanchored forks on account caps ([#1499](https://github.com/chekdata/codex-lb/issues/1499)) ([0284251](https://github.com/chekdata/codex-lb/commit/0284251be49f29e473c4a09c3f8de5415b3b16f8)) +* **proxy:** stop abandoning an unresolved inflight session-creation future ([#1644](https://github.com/chekdata/codex-lb/issues/1644)) ([57618c8](https://github.com/chekdata/codex-lb/commit/57618c87528aaaac4fecc4c6ad57dd07fbfa108b)) +* **proxy:** strip replayed tool call namespaces ([#1578](https://github.com/chekdata/codex-lb/issues/1578)) ([7c456df](https://github.com/chekdata/codex-lb/commit/7c456df732cd3daad06e39d086ee988b136c46b5)) +* **proxy:** surface forwarded compact settlement failures ([#1561](https://github.com/chekdata/codex-lb/issues/1561)) ([2176b14](https://github.com/chekdata/codex-lb/commit/2176b1499e4d7e4243b47e38e7d06c2d0dec7de3)) +* **proxy:** survive early proxied websocket close ([#6](https://github.com/chekdata/codex-lb/issues/6)) ([10579be](https://github.com/chekdata/codex-lb/commit/10579bed8bb0d17c4544f3005cfec972e0267641)) +* **proxy:** sweep idle bridge sessions without request traffic ([#1747](https://github.com/chekdata/codex-lb/issues/1747)) ([3159ebe](https://github.com/chekdata/codex-lb/commit/3159ebedfc48789ee6b9c678c4f48e842a2a3555)) +* **proxy:** unify eventless anchor poison settlement ([c57ab32](https://github.com/chekdata/codex-lb/commit/c57ab32b8abf039d925acd18a3ca6d58f10ac2ac)) +* **proxy:** wait on usage-refresh singleflight without asyncio.shield ([#1897](https://github.com/chekdata/codex-lb/issues/1897)) ([798203f](https://github.com/chekdata/codex-lb/commit/798203ff9d9d8f30a9b53e181d34fc9935ba5444)), closes [#1896](https://github.com/chekdata/codex-lb/issues/1896) +* **proxy:** wire exact-prefix recovery through dispatch ([#9](https://github.com/chekdata/codex-lb/issues/9)) ([192f2ce](https://github.com/chekdata/codex-lb/commit/192f2ce700a08fd053adbf733f2a72a923941a02)) +* **quota-planner:** compare warmup reset epochs in UTC ([#1623](https://github.com/chekdata/codex-lb/issues/1623)) ([e4fa3f2](https://github.com/chekdata/codex-lb/commit/e4fa3f273f45ac9eaeafc28047005584c954ef3c)) +* **quota:** release reservations on header failure ([#1559](https://github.com/chekdata/codex-lb/issues/1559)) ([783665b](https://github.com/chekdata/codex-lb/commit/783665b958f62cb8b39c5c74dd977774bde85189)) +* **quota:** warm free monthly resets ([#1504](https://github.com/chekdata/codex-lb/issues/1504)) ([dc9f9d7](https://github.com/chekdata/codex-lb/commit/dc9f9d71e407277dafbc9f2a6eab8bc2fb402261)) +* **reports:** format full Cost values with grouping separators ([#1814](https://github.com/chekdata/codex-lb/issues/1814)) ([028a75c](https://github.com/chekdata/codex-lb/commit/028a75c33701494834c054718fb58e31d72c4d99)) +* **reports:** reject inverted date ranges ([#1396](https://github.com/chekdata/codex-lb/issues/1396)) ([f3c6ff9](https://github.com/chekdata/codex-lb/commit/f3c6ff97d5f81bac4813f91e63f298fd0c859395)) +* **reports:** use local days for daily averages ([#1525](https://github.com/chekdata/codex-lb/issues/1525)) ([eefce19](https://github.com/chekdata/codex-lb/commit/eefce19d63982f9b5138fb8893a6ba00a3a05a68)) +* **reset-credits:** make redemption replica-safe with durable ledger and claim ([#1257](https://github.com/chekdata/codex-lb/issues/1257)) ([01188e7](https://github.com/chekdata/codex-lb/commit/01188e7c08f009dfb882ce66a0147b7710e33a63)) +* **responses:** accept canonical Codex 0.149 recovery payloads ([a24509f](https://github.com/chekdata/codex-lb/commit/a24509f8149441329235953bbbf848c3281454fd)) +* **responses:** accept canonical Codex 0.149 recovery payloads ([be0b43b](https://github.com/chekdata/codex-lb/commit/be0b43b32135553134cb19978cb812e88abe8a90)) +* **responses:** accept canonical Lite reasoning context ([9edb9e1](https://github.com/chekdata/codex-lb/commit/9edb9e1d2657779ac9af5b3744623ba0259207b9)) +* **responses:** accept canonical Lite reasoning context ([023236b](https://github.com/chekdata/codex-lb/commit/023236bd5b3e582b122382f27730f6a67a51c9af)) +* **responses:** accept desktop workspace recovery metadata ([664d458](https://github.com/chekdata/codex-lb/commit/664d4589dab176812c7512670563085f45b5e918)) +* **responses:** accept desktop workspace recovery metadata ([bf59c46](https://github.com/chekdata/codex-lb/commit/bf59c4663437edae177d45d45c600f44943eae42)) +* **responses:** accept verified client request identity for marker recovery ([f2c82e7](https://github.com/chekdata/codex-lb/commit/f2c82e707fdcca67281ee6c3c69223556f9ae5b3)) +* **responses:** normalize rowless transport artifacts ([c14128e](https://github.com/chekdata/codex-lb/commit/c14128ef99657424d1dbe41921954e4db7560c73)) +* **responses:** preserve exact transition validators ([ede4706](https://github.com/chekdata/codex-lb/commit/ede4706330c19fa96f64a85ad210b9164802d987)) +* **responses:** recover agent delivery retry chains ([481a4f4](https://github.com/chekdata/codex-lb/commit/481a4f456679d6f6b8192099ffb3ddc4f625c72f)) +* **responses:** recover agent delivery retry chains ([db95845](https://github.com/chekdata/codex-lb/commit/db9584532c357a74c074018003eb27a44167cc33)) +* **responses:** recover canonical failed root retry chains ([68eb0f7](https://github.com/chekdata/codex-lb/commit/68eb0f7659cb209fb52fec91029f1b5a186424ed)) +* **responses:** recover canonical failed root retry chains ([1078235](https://github.com/chekdata/codex-lb/commit/10782359a650083b2bee5a1243f9971d83d80c15)) +* **responses:** recover clipped leading tool output ([203ff36](https://github.com/chekdata/codex-lb/commit/203ff365604cfa228cfd940b2ded27dc2d3144cb)) +* **responses:** recover clipped leading tool output ([cfeeee2](https://github.com/chekdata/codex-lb/commit/cfeeee2fc29a7e413a593a9575b22001d737cf8a)) +* **responses:** resolve marker recovery turn state ([138c266](https://github.com/chekdata/codex-lb/commit/138c266b7c645a81b2d23b65ee3f6c5f290902a8)) +* **responses:** resolve marker recovery turn state ([38e41eb](https://github.com/chekdata/codex-lb/commit/38e41eb81ebfc54900c8cb85a247360d99ef5ec7)) +* **responses:** return recovery to exact turn boundaries ([44b960a](https://github.com/chekdata/codex-lb/commit/44b960a7fc44f31c9ec2af33366ff5300968768d)) +* **responses:** verify client request identity for marker recovery ([100fb79](https://github.com/chekdata/codex-lb/commit/100fb797534fa4cf0f3b94d51ef140e0a22e9e34)) +* **review:** keep Codex review sessions resumable ([#1678](https://github.com/chekdata/codex-lb/issues/1678)) ([e34db2d](https://github.com/chekdata/codex-lb/commit/e34db2d218925f7764e57b0571dcf736d33084da)) +* **scheduling:** harden scheduler leader election for multi-replica safety ([#1253](https://github.com/chekdata/codex-lb/issues/1253)) ([13d3a32](https://github.com/chekdata/codex-lb/commit/13d3a3216e4c5afb64ae3e022c849a0ef5592d9b)) +* **security:** bound compact response and image diagnostics ([24a5b94](https://github.com/chekdata/codex-lb/commit/24a5b9458d61736233a7898507b28f01da6c7cef)) +* **security:** close remaining CodeQL findings ([6906865](https://github.com/chekdata/codex-lb/commit/69068659bdc92ad0c51a3f865dd9164ac4a52aa7)) +* **security:** document intentional compatibility boundaries ([90e6fe8](https://github.com/chekdata/codex-lb/commit/90e6fe8790d41479e4d1cfebc98bd895d61de94a)) +* **security:** enforce trusted proxy locality ([#1381](https://github.com/chekdata/codex-lb/issues/1381)) ([d9709cc](https://github.com/chekdata/codex-lb/commit/d9709cc64063f0488f53cfa8ad71801bca82d8b0)) +* **security:** harden trusted Forwarded chain resolution ([#1377](https://github.com/chekdata/codex-lb/issues/1377)) ([21313b7](https://github.com/chekdata/codex-lb/commit/21313b74dc6bbb2d711cc4f9ca1a30aec0a5267e)) +* **security:** inspect repeated session proxy headers ([#1378](https://github.com/chekdata/codex-lb/issues/1378)) ([dae97cd](https://github.com/chekdata/codex-lb/commit/dae97cde9eb09d8798574cf92b295f23ca9b5eb2)) +* **security:** sanitize upgrade-path diagnostics ([e4de8fd](https://github.com/chekdata/codex-lb/commit/e4de8fdfcf7ae257daabe43a5b0ceb6be1c30e01)) +* **server:** serve h2c upgrade offers as plain HTTP/1.1 instead of rejecting them ([#1782](https://github.com/chekdata/codex-lb/issues/1782)) ([8d265c3](https://github.com/chekdata/codex-lb/commit/8d265c3f73bda4c2adb7632d888dad5413b1b121)) +* **shutdown:** drain audit and fleet tasks ([#1443](https://github.com/chekdata/codex-lb/issues/1443)) ([ec36ef6](https://github.com/chekdata/codex-lb/commit/ec36ef60a617684bc78f68b7f462877557fa8e9f)) +* stabilize response recovery and request DB isolation ([c1db58a](https://github.com/chekdata/codex-lb/commit/c1db58a21dae06e1f8ccc8659e8fbdfcc38ac586)) +* **streaming:** preserve terminal no-replay boundaries ([#1389](https://github.com/chekdata/codex-lb/issues/1389)) ([a4a2215](https://github.com/chekdata/codex-lb/commit/a4a22154c2eba756fb5d4c1426a84f71f81aa95e)) +* **uploads:** bound multipart request resources ([#1447](https://github.com/chekdata/codex-lb/issues/1447)) ([6ff5af6](https://github.com/chekdata/codex-lb/commit/6ff5af654af6a43a38ab40a79c7d4568e53003ac)) +* **usage:** confirm workspace-less paid to free plan downgrades ([#1491](https://github.com/chekdata/codex-lb/issues/1491)) ([927a3c0](https://github.com/chekdata/codex-lb/commit/927a3c058d261865f6f34d8341a80d1adb1c6f90)) +* **usage:** fence leaked live-usage-ingestor tasks and settle their failures deterministically ([#1783](https://github.com/chekdata/codex-lb/issues/1783)) ([66fd103](https://github.com/chekdata/codex-lb/commit/66fd1033165133e943a5818d75c40bc86e4a6b49)) +* **usage:** keep the covering read path effective on append-heavy usage_history ([#1666](https://github.com/chekdata/codex-lb/issues/1666)) ([967114d](https://github.com/chekdata/codex-lb/commit/967114da2aade00e17a725cc2a3db9e5875cd542)) +* **usage:** make weekly-primary remap tiebreak data-aware ([#1391](https://github.com/chekdata/codex-lb/issues/1391)) ([71f31e6](https://github.com/chekdata/codex-lb/commit/71f31e67a09129b0b581a4e2bf829d3b6c165014)) +* **usage:** price gpt-5.6 personality models ([#1275](https://github.com/chekdata/codex-lb/issues/1275)) ([bcdc384](https://github.com/chekdata/codex-lb/commit/bcdc3842edfae7931c874e03663c5eab0649ddeb)) +* **usage:** settle live snapshots after account consolidation ([#1773](https://github.com/chekdata/codex-lb/issues/1773)) ([3f66c28](https://github.com/chekdata/codex-lb/commit/3f66c288a230d6eb73c39b397c558427c21e167f)) +* **useragent:** fixing the unexpected category on useragent group ([#1458](https://github.com/chekdata/codex-lb/issues/1458)) ([69b397f](https://github.com/chekdata/codex-lb/commit/69b397f77ecded9a721e9dfd6dc0630fefffc602)) +* **warmup:** warm paid-to-free transitions ([#1825](https://github.com/chekdata/codex-lb/issues/1825)) ([68892e7](https://github.com/chekdata/codex-lb/commit/68892e7afff21cff8910e2ee5456317eff6e231b)) + + +### Performance Improvements + +* **accounts:** bound the account-listing live tail with a 2h fold lag and a 30s summary cache ([#1792](https://github.com/chekdata/codex-lb/issues/1792)) ([c1caa44](https://github.com/chekdata/codex-lb/commit/c1caa4468cdf2f94f9abe675b63e63a13dbdd383)) +* **accounts:** make account deletion a fast mark + background batch drain ([#1795](https://github.com/chekdata/codex-lb/issues/1795)) ([d4f9e23](https://github.com/chekdata/codex-lb/commit/d4f9e23cd623d67beee2df153723839e391d44d1)) +* **api-keys,proxy:** shape ORM hot-path queries ([#1788](https://github.com/chekdata/codex-lb/issues/1788)) ([7dacb04](https://github.com/chekdata/codex-lb/commit/7dacb04181390b85bd42b335a73e27ad4d90ec2f)) +* **api-keys:** coalesce last_used_at writes behind a periodic flush ([#1627](https://github.com/chekdata/codex-lb/issues/1627)) ([8466703](https://github.com/chekdata/codex-lb/commit/8466703b388d96d2b464c84b374bab33976ad079)) +* **api-keys:** skip usage reservations when no limit applies ([#1789](https://github.com/chekdata/codex-lb/issues/1789)) ([8a2d066](https://github.com/chekdata/codex-lb/commit/8a2d0660e2b216a93593757f2fec242e69f92724)) +* **automations:** bound run-history query work ([#1451](https://github.com/chekdata/codex-lb/issues/1451)) ([4fbe591](https://github.com/chekdata/codex-lb/commit/4fbe59182ce050b98691ca69fa8d25b16239e829)) +* coalesce same-owner sticky session TTL refresh upserts ([#1790](https://github.com/chekdata/codex-lb/issues/1790)) ([076aab8](https://github.com/chekdata/codex-lb/commit/076aab854ff0b334d77ab2104175d672384065c5)) +* **dashboard:** bound projection history fetch per account ([#1613](https://github.com/chekdata/codex-lb/issues/1613)) ([09e1b5c](https://github.com/chekdata/codex-lb/commit/09e1b5cd54329ade11a9a313314d3f90dc8079be)) +* **dashboard:** cap projections bulk usage-history read per account ([#1779](https://github.com/chekdata/codex-lb/issues/1779)) ([d4c43ef](https://github.com/chekdata/codex-lb/commit/d4c43ef88f8d4a548fb952a82901ea482995a633)) +* **dashboard:** serve conversation metrics from an hourly presence rollup ([#1616](https://github.com/chekdata/codex-lb/issues/1616)) ([80df35a](https://github.com/chekdata/codex-lb/commit/80df35adebc07bd7e299cca73d64f44125329aa7)) +* **db:** optimize dashboard hot-path indexes ([#1386](https://github.com/chekdata/codex-lb/issues/1386)) ([1422be6](https://github.com/chekdata/codex-lb/commit/1422be6717987721619bece793e309b95cffd709)) +* **db:** relax commit durability for telemetry writes on PostgreSQL ([#1628](https://github.com/chekdata/codex-lb/issues/1628)) ([7c799cf](https://github.com/chekdata/codex-lb/commit/7c799cff6bbd77a49205f91b4461dd9bb27b67cf)) +* **frontend:** code-split dashboard routes ([#1278](https://github.com/chekdata/codex-lb/issues/1278)) ([3e4479d](https://github.com/chekdata/codex-lb/commit/3e4479d94cb3e2b76e33e15b901640ead487c00d)) +* **frontend:** self-host JetBrains Mono, drop Google Fonts ([#1279](https://github.com/chekdata/codex-lb/issues/1279)) ([acfb295](https://github.com/chekdata/codex-lb/commit/acfb295e739775b3135dd59f94c0b2376f7df9b4)) +* **middleware:** convert BaseHTTPMiddleware layers to pure ASGI ([#1787](https://github.com/chekdata/codex-lb/issues/1787)) ([94057cc](https://github.com/chekdata/codex-lb/commit/94057ccf91a7ed9f32eb15dcfa0487c969dc2a83)) +* **proxy:** cache upstream-route resolution per account ([#1283](https://github.com/chekdata/codex-lb/issues/1283)) ([a52c458](https://github.com/chekdata/codex-lb/commit/a52c458b5d8a0f7e33cff4e7b422ae25436331a7)) +* **proxy:** detach stream-end persistence from the response path ([#1269](https://github.com/chekdata/codex-lb/issues/1269)) ([0b43631](https://github.com/chekdata/codex-lb/commit/0b43631630af649f3121ae9c6ed6904447d5c97e)) +* **proxy:** disable permessage-deflate on direct-egress upstream websockets ([#1786](https://github.com/chekdata/codex-lb/issues/1786)) ([2e4a580](https://github.com/chekdata/codex-lb/commit/2e4a580c1c1834f00b6d4c62598caf1ffd0446ee)) +* **proxy:** parse each SSE event once per layer, skip no-op reserialization ([#1270](https://github.com/chekdata/codex-lb/issues/1270)) ([f3cc5b1](https://github.com/chekdata/codex-lb/commit/f3cc5b12147a2925d71bd5dcad9658ba7c7f818b)) +* **proxy:** relay unmodified SSE frames verbatim ([#1785](https://github.com/chekdata/codex-lb/issues/1785)) ([980572e](https://github.com/chekdata/codex-lb/commit/980572eb8ee5ed70acb9edfc5a7a2acc35f46216)) +* **proxy:** validate stream payloads only for lifecycle events ([#1784](https://github.com/chekdata/codex-lb/issues/1784)) ([9d9f099](https://github.com/chekdata/codex-lb/commit/9d9f099197326f37eea4042e27c5b09606f99043)) +* **request-logs:** cache the listing total per filter signature ([#1277](https://github.com/chekdata/codex-lb/issues/1277)) ([27b982b](https://github.com/chekdata/codex-lb/commit/27b982bce2def6da653ef0dbb8376f34810b8555)) +* **request-logs:** serve listing totals from the demand rollup plus raw tail ([#1615](https://github.com/chekdata/codex-lb/issues/1615)) ([778c533](https://github.com/chekdata/codex-lb/commit/778c533fea403240ea30e2a03dbbe305f924e991)) +* **usage:** cover the projections bulk history fetch with an index-only path ([#1629](https://github.com/chekdata/codex-lb/issues/1629)) ([410bfae](https://github.com/chekdata/codex-lb/commit/410bfaea8022ef2dd32a0305d700e2fbe64eb924)) +* **usage:** persist account snapshots transactionally ([#1448](https://github.com/chekdata/codex-lb/issues/1448)) ([10f5357](https://github.com/chekdata/codex-lb/commit/10f5357d1ba2e994825b33e21fe030948012d12e)) +* **usage:** probe additional-usage latest reads instead of DISTINCT ON scans ([#1614](https://github.com/chekdata/codex-lb/issues/1614)) ([54881d2](https://github.com/chekdata/codex-lb/commit/54881d2cfd783674bf0fc5eb1b6e35149f359920)) +* **usage:** scope refresh work to selected account ([#1446](https://github.com/chekdata/codex-lb/issues/1446)) ([eebb757](https://github.com/chekdata/codex-lb/commit/eebb7578beba462f25ef787e703d0b1291c959ec)) + + +### Documentation + +* add README hero banner image ([#1516](https://github.com/chekdata/codex-lb/issues/1516)) ([e9273d2](https://github.com/chekdata/codex-lb/commit/e9273d209798a787eb58c9f24f8d0d643e381259)) +* add yshishenya and alchemistkiv as contributors ([#1387](https://github.com/chekdata/codex-lb/issues/1387)) ([3e6ca6e](https://github.com/chekdata/codex-lb/commit/3e6ca6e40e7c3acca6ce19196c7b678d65fe58cc)) +* **contributing:** codify simplicity principles and merge gates ([#1336](https://github.com/chekdata/codex-lb/issues/1336)) ([8374f4f](https://github.com/chekdata/codex-lb/commit/8374f4fc3fe2678fceb0dea5686e897764eae044)) +* **contributing:** require beta soak before stable releases ([#1469](https://github.com/chekdata/codex-lb/issues/1469)) ([3e9e36a](https://github.com/chekdata/codex-lb/commit/3e9e36aaee059d5824e9ba9bcb3897d0ce23dc3a)) +* **contributors:** add hongzexin attribution ([4ea1244](https://github.com/chekdata/codex-lb/commit/4ea12448d5f51d77a1128464a511e5ac6eb44e71)) +* **contributors:** add joschi655 (missed by admin merge of [#1611](https://github.com/chekdata/codex-lb/issues/1611)) ([#1617](https://github.com/chekdata/codex-lb/issues/1617)) ([d276a4d](https://github.com/chekdata/codex-lb/commit/d276a4db2550592f245ea636a627d7623c11ae2b)) +* **contributors:** add lkraider, ret2basic, and yeongjun-cigro ([#1596](https://github.com/chekdata/codex-lb/issues/1596)) ([a1599da](https://github.com/chekdata/codex-lb/commit/a1599dab482c01d85cbb70a74c27026888cc825c)) +* **contributors:** restore chronological contributor order ([#1518](https://github.com/chekdata/codex-lb/issues/1518)) ([b91d9bb](https://github.com/chekdata/codex-lb/commit/b91d9bb8768edbfda6d232a4bc2fa013053519fc)) +* **dashboard:** clarify routing, sticky affinity, quota thresholds, warm-up, and eligibility copy ([#1781](https://github.com/chekdata/codex-lb/issues/1781)) ([6ff22e0](https://github.com/chekdata/codex-lb/commit/6ff22e0e528fb7bdd6c69c059178681254b143af)) +* **openspec:** archive 90 landed changes and sync their specs ([#1713](https://github.com/chekdata/codex-lb/issues/1713)) ([c3f0c56](https://github.com/chekdata/codex-lb/commit/c3f0c568cb4dda4547f5d765951ba0748e7c923a)) +* **openspec:** archive absent-window-display and label-sync-app-token ([#1303](https://github.com/chekdata/codex-lb/issues/1303)) ([9cb28bb](https://github.com/chekdata/codex-lb/commit/9cb28bb8a78011f047a622445a404dcc9627f607)) +* **openspec:** archive accurate-stream-speed-metrics ([#1334](https://github.com/chekdata/codex-lb/issues/1334)) ([43aa394](https://github.com/chekdata/codex-lb/commit/43aa39425c6b9b72978d471f8aea47c46ce070a4)) +* **openspec:** archive adaptive-window and bridge-gate changes ([#1271](https://github.com/chekdata/codex-lb/issues/1271)) ([2f56dca](https://github.com/chekdata/codex-lb/commit/2f56dca2c0b5d281c6e2e8d5a852d273f3bd1e7f)) +* **openspec:** archive landed performance and reliability changes ([#1694](https://github.com/chekdata/codex-lb/issues/1694)) ([6b3db74](https://github.com/chekdata/codex-lb/commit/6b3db74e7b8a8201f6362e06a7debb517e48db27)) +* **openspec:** archive the live-rate-limit-ingestion change ([#1300](https://github.com/chekdata/codex-lb/issues/1300)) ([36279c5](https://github.com/chekdata/codex-lb/commit/36279c59b490d8e71f597fa421feea441fa6c232)) +* **openspec:** archive the settings-reduction changes ([#1368](https://github.com/chekdata/codex-lb/issues/1368)) ([a619afc](https://github.com/chekdata/codex-lb/commit/a619afcb7b998e5a1fc772808593ca4c8e7c7ba4)) +* **openspec:** archive the simplicity-effort changes ([#1347](https://github.com/chekdata/codex-lb/issues/1347)) ([8fe0848](https://github.com/chekdata/codex-lb/commit/8fe0848e23368bc58f4dc7be0e3347bac64beb99)) +* **openspec:** canonical-code signal for Codex WebSocket stale-anchor recovery ([#1529](https://github.com/chekdata/codex-lb/issues/1529)) ([#1550](https://github.com/chekdata/codex-lb/issues/1550)) ([0095b6e](https://github.com/chekdata/codex-lb/commit/0095b6ea68618328b7d93008854e6e1d39114ad6)) +* **openspec:** fix strict requirement line formatting ([#1637](https://github.com/chekdata/codex-lb/issues/1637)) ([a66da90](https://github.com/chekdata/codex-lb/commit/a66da90f843d1851988326b5fe1c24ba76f4706f)) +* **openspec:** record stale-anchor PR delivery ([5fff712](https://github.com/chekdata/codex-lb/commit/5fff712c1a817d73334676789758f5e2c03b37d1)) +* **openspec:** record websocket hotfix verification ([15cd399](https://github.com/chekdata/codex-lb/commit/15cd3992fa7014995482cc94d89e36919e74b3a8)) +* **proxy:** document cluster-wide account cap partitioning ([#1750](https://github.com/chekdata/codex-lb/issues/1750)) ([560fb50](https://github.com/chekdata/codex-lb/commit/560fb503b3ada0e5a544cd3de3af42b3c5e43ebe)) +* **readme:** restore the features grid and client logo table ([#1346](https://github.com/chekdata/codex-lb/issues/1346)) ([e47deea](https://github.com/chekdata/codex-lb/commit/e47deeac1c0eff6f73602ff241713885d7ae6fe7)) +* **reference:** add generated settings reference with drift guards ([#1369](https://github.com/chekdata/codex-lb/issues/1369)) ([fdf267e](https://github.com/chekdata/codex-lb/commit/fdf267e78f630271ab8d2fe74345832a3ddc06c2)) +* **replica:** refresh operations context ([#1445](https://github.com/chekdata/codex-lb/issues/1445)) ([4a1df0a](https://github.com/chekdata/codex-lb/commit/4a1df0a9b3cb2be0d7c7a994a4647352b601108a)) +* **site:** add mkdocs documentation site and slim README to quick-start scope ([#1337](https://github.com/chekdata/codex-lb/issues/1337)) ([0705f9f](https://github.com/chekdata/codex-lb/commit/0705f9fd8c747ef3cf4777651d6c2ed29b0f9b45)) + ## [1.24.0](https://github.com/Soju06/codex-lb/compare/v1.23.0...v1.24.0) (2026-08-26) diff --git a/app/__init__.py b/app/__init__.py index 6fec6954c3..64872d34fe 100644 --- a/app/__init__.py +++ b/app/__init__.py @@ -1,4 +1,4 @@ -__version__ = "1.24.1-beta.1" # x-release-please-version +__version__ = "1.25.0" # x-release-please-version __all__ = ["app", "__version__"] diff --git a/deploy/helm/codex-lb/Chart.yaml b/deploy/helm/codex-lb/Chart.yaml index 64e5e29bc8..9e7fe12e59 100644 --- a/deploy/helm/codex-lb/Chart.yaml +++ b/deploy/helm/codex-lb/Chart.yaml @@ -4,8 +4,8 @@ description: >- Production-grade Helm chart for codex-lb — OpenAI API load balancer with usage tracking, account pooling, and observability type: application -version: 1.24.1-beta.1 -appVersion: 1.24.1-beta.1 +version: 1.25.0 +appVersion: 1.25.0 kubeVersion: '>=1.32.0-0' home: https://github.com/soju06/codex-lb sources: diff --git a/frontend/package.json b/frontend/package.json index 1ee3e616a3..e5ab2f540f 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,7 +1,7 @@ { "name": "frontend", "private": true, - "version": "1.24.1-beta.1", + "version": "1.25.0", "type": "module", "packageManager": "bun@1.3.14", "scripts": { diff --git a/pyproject.toml b/pyproject.toml index 37651f660d..7d63c4035e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "codex-lb" -version = "1.24.1-beta.1" +version = "1.25.0" description = "Codex load balancer and proxy for ChatGPT accounts with usage dashboard" readme = "README.md" license = { file = "LICENSE" } diff --git a/uv.lock b/uv.lock index d5c977f31b..8dcdab557b 100644 --- a/uv.lock +++ b/uv.lock @@ -486,7 +486,7 @@ wheels = [ [[package]] name = "codex-lb" -version = "1.24.1-beta.1" +version = "1.25.0" source = { editable = "." } dependencies = [ { name = "aiohttp" },