|
1 | 1 | # Changelog |
2 | 2 |
|
| 3 | +## [0.7.9](https://github.com/icoretech/codex-pooler/compare/codex-pooler-v0.7.8...codex-pooler-v0.7.9) (2026-09-11) |
| 4 | + |
| 5 | + |
| 6 | +### Features |
| 7 | + |
| 8 | +* **admin:** show requested, upstream-reported, and priced service tiers separately ([072580e](https://github.com/icoretech/codex-pooler/commit/072580e19a3046fcdaef6a2e22024129d6afe83d)) |
| 9 | +* **admin:** show the downstream delivery receipt in the request log attempt drawer ([457bfd9](https://github.com/icoretech/codex-pooler/commit/457bfd9a354b93d3c64cbf3528efe4b69abc01e0)) |
| 10 | +* **admin:** tell the service tier apart from reasoning effort in request logs ([2601d36](https://github.com/icoretech/codex-pooler/commit/2601d36ec784657d5b46caa41309b7a0b8abcd8a)) |
| 11 | +* **gateway:** derive the Codex routing hint for /v1 requests and keep it out of websocket reuse ([1934516](https://github.com/icoretech/codex-pooler/commit/1934516726d16aee58d2c622ca096fc10a2cec9e)) |
| 12 | +* **gateway:** record a downstream delivery receipt for native websocket terminals ([fbe2e71](https://github.com/icoretech/codex-pooler/commit/fbe2e715c812093660a809c879a99729e9bf7b19)) |
| 13 | +* **gateway:** record the downstream delivery receipt for HTTP SSE turns ([6b31f1d](https://github.com/icoretech/codex-pooler/commit/6b31f1d4944b7a610a292506ba393ac1b16fe43d)) |
| 14 | +* **gateway:** relay upstream parameter validation rejections to clients ([632d90b](https://github.com/icoretech/codex-pooler/commit/632d90bae53a5f43051cd144bc256bde6be94ba1)) |
| 15 | +* **gateway:** send a derived session-id upstream for /v1 requests with a prompt_cache_key ([4e32aeb](https://github.com/icoretech/codex-pooler/commit/4e32aeb9db803b05bef1c842a096bd57e936eeb1)) |
| 16 | +* **runtime:** name the blocking transaction when an owner lease renewal times out ([1f48723](https://github.com/icoretech/codex-pooler/commit/1f48723407183c2ceee28316ca8ab2d787828a29)) |
| 17 | +* **status:** add OpenAI incidents feed and admin surface ([2a0f615](https://github.com/icoretech/codex-pooler/commit/2a0f6155dfa1efc3703b2d6c81c391672e14ebf9)) |
| 18 | + |
| 19 | + |
| 20 | +### Bug Fixes |
| 21 | + |
| 22 | +* **accounting:** keep the delivery receipt projection a runtime reference and accept an already-dead owner in the witness test ([faaaef8](https://github.com/icoretech/codex-pooler/commit/faaaef85659d6cb1f6660bf3be5169dda2a3fe7c)) |
| 23 | +* **accounting:** lock the session before the API key in the websocket resend claim ([cdb307b](https://github.com/icoretech/codex-pooler/commit/cdb307b34035656b14a3da3a48a6cbcb501c69dd)) |
| 24 | +* **catalog:** accept the flat default per-minute pricing shape ([1348a59](https://github.com/icoretech/codex-pooler/commit/1348a596dd5372bf520bd99579c501ef53f5f348)) |
| 25 | +* **gateway:** admit a byte-identical resend after a lifecycle-only upstream stream cut ([d1fb7ef](https://github.com/icoretech/codex-pooler/commit/d1fb7efed4c125f35b9384d6a60650775e70abbb)) |
| 26 | +* **gateway:** admit a byte-identical websocket resend after a provider terminal failure ([af00377](https://github.com/icoretech/codex-pooler/commit/af00377b633e0e65d7884a647c964b080f0dea1f)) |
| 27 | +* **gateway:** bound the idle lifetime of pooled upstream HTTP connections ([299bf37](https://github.com/icoretech/codex-pooler/commit/299bf370a14454950db268873d947d500b2fc4b5)) |
| 28 | +* **gateway:** finalize a websocket turn whose response task died by exception ([f9bf8f9](https://github.com/icoretech/codex-pooler/commit/f9bf8f9e87894a74f461bfd8322175030ddd6dcb)) |
| 29 | +* **gateway:** refresh and retry HTTP dispatch on a provider 401 instead of passing it to the client ([3f7b4ed](https://github.com/icoretech/codex-pooler/commit/3f7b4ed318547ffdd277c0a2686f6a2cd6d39979)) |
| 30 | +* **gateway:** rewrite ultra to the highest catalog level when a model lists no max ([b737f4e](https://github.com/icoretech/codex-pooler/commit/b737f4e6914b388739a4402f934070547b38f35a)) |
| 31 | +* **gateway:** scope the /v1 derived session-id to the Pool and API key ([dc16bb6](https://github.com/icoretech/codex-pooler/commit/dc16bb6a8acc46f7e9ee95d59b62b98ba389f502)) |
| 32 | +* **release:** restore the Repo config after a release task names its connections ([f457282](https://github.com/icoretech/codex-pooler/commit/f4572825ca1f61b4f6aba21f25ed3ec1e36333e1)) |
| 33 | +* **runtime:** bound the synchronous owner lease renewal lock wait inside Postgres ([ec9f577](https://github.com/icoretech/codex-pooler/commit/ec9f577e53b9786f6ee82adcf555d7deab2f379c)) |
| 34 | +* **runtime:** reference the lock wait diagnostics type through the owning module ([06c211a](https://github.com/icoretech/codex-pooler/commit/06c211a0b75a878219f8a227553c4fedf57000f2)) |
| 35 | +* **status:** preserve feed errors for worker retries ([d9704fc](https://github.com/icoretech/codex-pooler/commit/d9704fc61fcd202457663e19b1cba75b2fe9b221)) |
| 36 | +* **upstreams:** bound idle pooled connections for every provider HTTP caller ([db8380a](https://github.com/icoretech/codex-pooler/commit/db8380a6e0ef0fb035ab63dcc8cd4269674bdb51)) |
| 37 | +* **websocket:** acknowledge a parked local-owner response task when the socket terminates ([2d21e4f](https://github.com/icoretech/codex-pooler/commit/2d21e4fdce96b8d7c1e176caf6da73fffa3ef3d1)) |
| 38 | +* **websocket:** deliver at most one error frame per native turn on owner-forwarded sockets ([5d375fd](https://github.com/icoretech/codex-pooler/commit/5d375fdc421c8ba9465170d8f31e8c3b494c40ff)) |
| 39 | +* **websocket:** keep native websocket turns off HTTP dispatch regardless of the stream flag ([7878f5e](https://github.com/icoretech/codex-pooler/commit/7878f5e256150a00a37a0d184474b1a5ab9462cd)) |
| 40 | +* **websocket:** settle direct and proxy response tasks when their socket dies unacknowledged ([edbddb8](https://github.com/icoretech/codex-pooler/commit/edbddb82e19c7ecc8e9ef811104fae29a29816a0)) |
| 41 | + |
| 42 | + |
| 43 | +### Performance Improvements |
| 44 | + |
| 45 | +* **gateway:** end socket terminate drains on signals and plumb owner timeouts through recovery ([d3c31cf](https://github.com/icoretech/codex-pooler/commit/d3c31cf39035a6a49f7f7e3c8b9a3566da9b4da4)) |
| 46 | +* **gateway:** report pre-content owner terminals immediately, plumb handoff timeouts, and bound hosted shell validation ([75c97dd](https://github.com/icoretech/codex-pooler/commit/75c97dd5a9b1b4afeb05eda4f87e8086f6253fd3)) |
| 47 | + |
| 48 | + |
| 49 | +### Tests |
| 50 | + |
| 51 | +* **gateway:** give the rejection drain, replay cleanup and saved-reset decision time test-facing knobs ([10b9d7f](https://github.com/icoretech/codex-pooler/commit/10b9d7f813c0ac31d7fabfeec62974a84fd3c319)) |
| 52 | +* keep the suite fast, quiet, and off the network ([c53e54e](https://github.com/icoretech/codex-pooler/commit/c53e54ec0b684ec2618dc88f0ba4189e38dafc6e)) |
| 53 | +* **platform:** give the replay migration rehearsal and the owner protocol test real detection budgets ([cd65d47](https://github.com/icoretech/codex-pooler/commit/cd65d47c87f51879d67787a51e95c419f5c203f4)) |
| 54 | +* **quota:** prime the header exhaustion row from the hard-pin recovery test itself ([7ca2782](https://github.com/icoretech/codex-pooler/commit/7ca2782af338a6b16f0f80ca8cd7c50ab740d506)) |
| 55 | +* **runtime:** close the timing races in the backend HTTP owner lease tests ([28700ab](https://github.com/icoretech/codex-pooler/commit/28700ab2e267175fa42aee4c71a181e4e9d5458c)) |
| 56 | +* **runtime:** give the local owner crash test its own sandbox connections ([b8020d6](https://github.com/icoretech/codex-pooler/commit/b8020d6ca0e643457806105819287f5058c59095)) |
| 57 | +* **runtime:** purge the crash test's identity, secrets and assignment rows too ([2bb1d1b](https://github.com/icoretech/codex-pooler/commit/2bb1d1b314e4aad35febbfed0978f45618ea25fd)) |
| 58 | +* **runtime:** purge the owner crash test's committed rows and scope table-wide assertions to the Pool ([a29aceb](https://github.com/icoretech/codex-pooler/commit/a29aceb328277a8ca30a472bb346712e703e60a2)) |
| 59 | +* **runtime:** split the owner forwarding websocket test into family files ([1270b46](https://github.com/icoretech/codex-pooler/commit/1270b4626c0d48fb976c08d9187ef63e1b78608b)) |
| 60 | +* **runtime:** split the websocket controller test into family files ([b752030](https://github.com/icoretech/codex-pooler/commit/b752030157d8142129309663549b1c10bfafaf15)) |
| 61 | +* **support:** mark the lifecycle log capture helper for dialyzer ([945a1f9](https://github.com/icoretech/codex-pooler/commit/945a1f97afd590fc252a19ab5188e6844290c228)) |
| 62 | +* **support:** release held FakeUpstream websocket barriers on shutdown instead of waiting out the 15 s kill ([ea9abb0](https://github.com/icoretech/codex-pooler/commit/ea9abb0734e0bedf9d85d99af2e354d458faace1)) |
| 63 | +* **upstream:** add a native per-frame barrier mode to FakeUpstream and tag strict fixture provenance ([3eabd6a](https://github.com/icoretech/codex-pooler/commit/3eabd6a11d7eab84bc5030a42d99a4a841e10f2f)) |
| 64 | +* **upstream:** finish the strict FakeUpstream migration ([e6210dd](https://github.com/icoretech/codex-pooler/commit/e6210dda2f22b13516b0fb2a6d48edb0e4fd4a2d)) |
| 65 | +* **upstream:** migrate one protocol-sensitive test per family to strict fixtures ([5c6d346](https://github.com/icoretech/codex-pooler/commit/5c6d346a254a5c0e60d983ecaa50e9d7b00cd9fd)) |
| 66 | + |
| 67 | + |
| 68 | +### Miscellaneous Chores |
| 69 | + |
| 70 | +* **deps:** update dependency helm/helm to v4.3.0 ([#382](https://github.com/icoretech/codex-pooler/issues/382)) ([423457d](https://github.com/icoretech/codex-pooler/commit/423457d216dc5c5f9c78ab758da59df92581b940)) |
| 71 | +* **deps:** update dependency node to v26.8.2 ([#383](https://github.com/icoretech/codex-pooler/issues/383)) ([fbdd0c7](https://github.com/icoretech/codex-pooler/commit/fbdd0c7a87ee293baa4477a50cccb5b48f6ef7d1)) |
| 72 | + |
3 | 73 | ## [0.7.8](https://github.com/icoretech/codex-pooler/compare/codex-pooler-v0.7.7...codex-pooler-v0.7.8) (2026-09-10) |
4 | 74 |
|
5 | 75 |
|
|
0 commit comments