Zyy and Codex
789609dd53
chore(release): v3.40.0
...
Co-authored-by: Codex <noreply@openai.com >
v3.40.0
2026-11-04 19:36:41 +08:00
10e25ce25f
feat(api): extend Chat Completions compatibility with Responses ( #606 )
...
Map tool-result names, inline PDF inputs, and hosted web search to Responses. Project URL citations into Chat messages and preserve the requested output token limit in the OpenAI encoder.
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 19:32:42 +08:00
6b362a5029
fix(accounts): keep failed recovery probes from thawing accounts ( #605 )
...
Carry the freeze recovery target into provider account selection so probe responses cannot update credentials or clear the active protection. Let the recovery worker postpone or release the same freeze after observing the upstream result.
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 19:30:22 +08:00
13374e2a70
fix(api): separate traffic readiness from worker health ( #604 )
...
Expose /readyz for the runtime snapshot, PostgreSQL, and Redis. Keep worker and logging diagnostics on /healthz so a maintenance failure can alert without removing a serving instance from service discovery.
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 19:29:50 +08:00
Zyy and Codex
19ef484969
feat(peer-link)!: share upstream key concurrency and RPM limits
...
Use a fresh upstream key concurrency limit as the account default for scheduling, leases, and capacity reporting. Show disclosed limits alongside the upstream pool summary.
BREAKING CHANGE: Both peers must support CPR Link schema v3.
Refs: #587
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 18:32:42 +08:00
242ffb2324
feat(accounts): add a separate model allowlist cleanup button ( #600 )
...
* feat(accounts): add manual allowlist cleanup
Co-authored-by: Codex <noreply@openai.com >
* fix(accounts): refine model allowlist cleanup interactions
Co-authored-by: Codex <noreply@openai.com >
* chore(docs): remove PR screenshot assets
Co-authored-by: Codex <noreply@openai.com >
---------
Co-authored-by: Codex <noreply@openai.com >
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
2026-11-04 17:15:04 +08:00
Zyy and Codex
53a09bbfe9
docs(skills): require English pull request titles
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 17:03:08 +08:00
239def9a5b
fix(store): preserve client key ledgers after deletion ( #602 )
...
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 17:00:44 +08:00
Zyy and Codex
5eaca14a64
fix(openai): clear client headers when switching accounts
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 15:28:48 +08:00
78e943f406
feat(usage): add snapshot scans and complete grouped statistics ( #599 )
...
Expose bounded usage readers through Admin, Store, Runtime, and SDK. Preserve snapshot consistency, coverage metadata, cancellation, and parent-call cleanup.
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 15:22:44 +08:00
Zyy and Codex
0663df14df
fix(responses): reconnect idle WebSockets for replay regardless of client identity
...
Refs #596
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 14:14:29 +08:00
39aa20a13a
fix(plugins): prefer account-scoped profiles for adapted models ( #588 )
...
* fix(plugins): prefer account-scoped model profiles in catalogs
Co-authored-by: Codex <noreply@openai.com >
* fix(models): honor scoped plugin profiles in fallback catalogs
Co-authored-by: Codex <noreply@openai.com >
---------
Co-authored-by: Codex <noreply@openai.com >
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
2026-11-04 13:20:08 +08:00
Ke Wang and Codex
621b1faceb
fix(store): keep usage queries compatible with PostgreSQL 16 ( #597 )
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 13:17:09 +08:00
28eb4708b5
fix(update): keep read-only official plugin files during extract ( #595 )
...
* fix(update): keep read-only official plugin files during extract
Docker Desktop returns EPERM when chmod runs again on an official plugin file that tar already unpacked as mode 0444.
Fixes #594
* test(update): cover writable official plugin archives
Co-authored-by: Codex <noreply@openai.com >
---------
Co-authored-by: le-czs <243511553+le-czs@users.noreply.github.com >
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 13:09:57 +08:00
Ke Wang
aa003f7d90
fix(build): keep frozen migrations in LF ( #589 )
2026-11-04 13:02:04 +08:00
Zyy and Codex
4c57a0405d
fix(xai): preserve quota snapshots and restore daily usage
...
Preserve account profiles and quota observations during OAuth refresh and retry deferral. Project rolling daily usage independently of upstream snapshots and expose its period through the existing account usage API.
Keep quota capacity forecasts scoped to weekly and monthly windows. Cover refresh persistence, daily statistics, API projection, and PostgreSQL CAS behavior.
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 12:39:10 +08:00
Zyy and Codex
49cee2397f
fix(openai): avoid repeated replay errors after large SSE requests
...
Keep oversized Codex threads on SSE until a full request falls below 13.5 MiB. After delivering a response that requires full replay, close an idle Codex socket so the next step can send its history directly.
Co-authored-by: Codex <noreply@openai.com >
2026-11-04 12:17:26 +08:00
Zyy and Codex
1915806bd1
perf(theme): load preview content after the canvas
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 21:18:02 +08:00
Zyy and Codex
5100f6333e
fix(usage): improve error diagnostics and request inspection
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 21:18:02 +08:00
Zyy and Codex
187af36306
fix(accounts): preserve known peer identity after sync failures
...
Keep undiscovered upstreams displayed as ordinary API keys and retain known peer errors without revoked shared data. Reuse quota refresh for retries and reset recognition when the connection changes.
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 19:33:24 +08:00
Zyy and Codex
be35f8a6ee
fix(accounts): refine upstream quota display and layout
...
Show quota availability consistently for unlimited and stale observations, keep pool summaries at the bottom, and compact plan counts with an inline overflow popover.
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 17:48:47 +08:00
Zyy and Codex
317c05c74a
fix(accounts): show OAuth results in notifications
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 15:55:56 +08:00
Zyy and Codex
12c32fcdec
chore(release): v3.39.1
...
Co-authored-by: Codex <noreply@openai.com >
v3.39.1
2026-11-03 11:47:32 +08:00
Ke Wang and Codex
26de671226
fix(runtime): reload full snapshot on config revision races ( #584 )
...
* fix(runtime): reload raced snapshot facts before suspending publication
Co-authored-by: Codex <noreply@openai.com >
* fix(runtime): retry extension preparation when its revision becomes stale
Co-authored-by: Codex <noreply@openai.com >
---------
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:38:47 +08:00
Ke Wang and Codex
a92b95c48c
fix(proxies): measure latency for the selected successful address family ( #585 )
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:34:40 +08:00
Zyy and Codex
e7c24781fb
fix(openai): preserve deployment account routing policy
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:33:53 +08:00
Zyy and Codex
3b4b547e9c
fix(store): release proxy locks before returning delete conflicts
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:23:28 +08:00
Zyy and Codex
2016bda031
fix(openai): preserve client headers and send account installation id
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 11:23:16 +08:00
Zyy and Codex
790f3147e0
fix(openai): preserve verified turn state on full requests
...
Track bounded ownership proofs for upstream turn-state tokens, including failed responses, so same-turn full requests can echo them without trusting unrelated account state.
Co-authored-by: Codex <noreply@openai.com >
2026-11-03 10:19:53 +08:00
Zyy and Codex
96e8443ede
chore(release): v3.39.0
...
Co-authored-by: Codex <noreply@openai.com >
v3.39.0
2026-11-02 19:40:58 +08:00
Zyy and Codex
42badf64ca
docs(deploy): document low-memory database tuning
...
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 16:30:04 +08:00
35afe1123f
feat(plugins): edit sensitive configuration per field ( #582 )
...
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 15:32:32 +08:00
Zyy and Codex
2ac4265832
feat(windows): add builds and online updates
...
Build x64 and ARM64 release archives with a static MSVC runtime.
Support executable replacement, restart handoff and rollback on Windows.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 14:45:33 +08:00
Zyy and Codex
d22ec29824
fix(usage): show CPR badges for linked accounts
...
Use current peer summaries for request records and account diagnostics without changing historical snapshots or database schema.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 14:39:44 +08:00
Zyy and Codex
7a32c6cec2
chore(release): v3.38.2
...
Co-authored-by: Codex <noreply@openai.com >
v3.38.2
2026-11-02 13:44:36 +08:00
0ff1a72919
fix(retry): limit upstream Retry-After waits ( #578 )
...
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 13:07:20 +08:00
79083a5632
fix(openai): reconnect before websocket search activation ( #577 )
...
Track hosted search initialization on pooled Codex sockets and retire incompatible connections before sending. Preserve existing client full replay recovery for connection-local deltas.
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 12:28:14 +08:00
Zyy and Codex
90f7456db8
fix(ui): align CPR badge text with its icon
...
Keep the compact line height and offset the uppercase label by one pixel to align its visible center with the brand glyph across badge sizes.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 12:27:51 +08:00
Zyy and Codex
6f71b27c3c
fix(peer): include quota-backed plans in pool summaries
...
Reuse account plan resolution when exporting peer pool summaries. Read saved quota observations for missing plans even when quota sharing is disabled, without exposing quota data or mutating account records.
Cover unknown and missing plans, subtype preservation, plan-only limits, and quota refresh from an unknown account plan.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 12:24:57 +08:00
Zyy and Codex
7b05b14a2b
fix(openai): narrow model rejection cooldown detection
...
Require the official model_not_found code and supported status codes for
account-model cooldowns. Treat unsupported_value as a terminal request
error and preserve account eligibility across HTTP, SSE, and WebSocket.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 11:36:58 +08:00
f9b5b5ff77
chore(deps): bump node from 26.12.1-bookworm-slim to 26.13.0-bookworm-slim in /deploy in the minor-and-patch group across 1 directory ( #573 )
...
* chore(deps): bump node
Bumps the minor-and-patch group with 1 update in the /deploy directory: node.
Updates `node` from 26.12.1-bookworm-slim to 26.13.0-bookworm-slim
---
updated-dependencies:
- dependency-name: node
dependency-version: 26.13.0-bookworm-slim
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
* docs(development): align Node.js version with Docker
Co-authored-by: Codex <noreply@openai.com >
---------
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Zyy <zyycn@users.noreply.github.com >
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 10:33:44 +08:00
dependabot[bot]
4d5778a84f
chore(deps): bump rust from 48b7f43 to 9181b56 in /deploy ( #575 )
...
Bumps rust from `48b7f43` to `9181b56`.
---
updated-dependencies:
- dependency-name: rust
dependency-version: 1.99.1-bookworm
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:32:20 +08:00
dependabot[bot]
6d22d73506
chore(deps): bump debian from 7ff6ba3 to 99c0b25 in /deploy ( #574 )
...
Bumps debian from `7ff6ba3` to `99c0b25`.
---
updated-dependencies:
- dependency-name: debian
dependency-version: bookworm-slim
dependency-type: direct:production
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:32:10 +08:00
dependabot[bot]
d8ab207282
chore(deps): bump the minor-and-patch group in /frontend with 7 updates ( #572 )
...
Bumps the minor-and-patch group in /frontend with 7 updates:
| Package | From | To |
| --- | --- | --- |
| [@lucide/vue](https://github.com/lucide-icons/lucide/tree/HEAD/packages/vue ) | `1.61.0` | `1.66.0` |
| [axios](https://github.com/axios/axios ) | `1.20.0` | `1.21.0` |
| [es-toolkit](https://github.com/toss/es-toolkit ) | `1.53.0` | `1.53.1` |
| [@intlify/unplugin-vue-i18n](https://github.com/intlify/bundle-tools/tree/HEAD/packages/unplugin-vue-i18n ) | `11.2.7` | `11.2.8` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `26.6.5` | `26.6.6` |
| [eslint](https://github.com/eslint/eslint ) | `10.13.0` | `10.14.0` |
| [vue-tsc](https://github.com/vuejs/language-tools/tree/HEAD/packages/tsc ) | `3.3.13` | `3.3.14` |
Updates `@lucide/vue` from 1.61.0 to 1.66.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/1.66.0/packages/vue )
Updates `axios` from 1.20.0 to 1.21.0
- [Release notes](https://github.com/axios/axios/releases )
- [Changelog](https://github.com/axios/axios/blob/v1.x/CHANGELOG.md )
- [Commits](https://github.com/axios/axios/compare/v1.20.0...v1.21.0 )
Updates `es-toolkit` from 1.53.0 to 1.53.1
- [Release notes](https://github.com/toss/es-toolkit/releases )
- [Changelog](https://github.com/toss/es-toolkit/blob/main/CHANGELOG.md )
- [Commits](https://github.com/toss/es-toolkit/compare/v1.53.0...v1.53.1 )
Updates `@intlify/unplugin-vue-i18n` from 11.2.7 to 11.2.8
- [Release notes](https://github.com/intlify/bundle-tools/releases )
- [Changelog](https://github.com/intlify/bundle-tools/blob/v11.2.8/CHANGELOG.md )
- [Commits](https://github.com/intlify/bundle-tools/commits/v11.2.8/packages/unplugin-vue-i18n )
Updates `@types/node` from 26.6.5 to 26.6.6
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 10.13.0 to 10.14.0
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.13.0...v10.14.0 )
Updates `vue-tsc` from 3.3.13 to 3.3.14
- [Release notes](https://github.com/vuejs/language-tools/releases )
- [Changelog](https://github.com/vuejs/language-tools/blob/master/CHANGELOG.md )
- [Commits](https://github.com/vuejs/language-tools/commits/v3.3.14/packages/tsc )
---
updated-dependencies:
- dependency-name: "@lucide/vue"
dependency-version: 1.66.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: axios
dependency-version: 1.21.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: es-toolkit
dependency-version: 1.53.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@intlify/unplugin-vue-i18n"
dependency-version: 11.2.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: "@types/node"
dependency-version: 26.6.6
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: eslint
dependency-version: 10.14.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: vue-tsc
dependency-version: 3.3.14
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:31:59 +08:00
dependabot[bot]
3816b46ba1
chore(deps): bump the minor-and-patch group in /backend with 8 updates ( #571 )
...
Bumps the minor-and-patch group in /backend with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [uuid](https://github.com/uuid-rs/uuid ) | `1.28.0` | `1.29.0` |
| [zip](https://github.com/zip-rs/zip2 ) | `9.0.5` | `9.1.3` |
| [jsonschema](https://github.com/Stranger6667/jsonschema ) | `0.60.0` | `0.60.2` |
| [roxmltree](https://github.com/RazrFalcon/roxmltree ) | `0.21.1` | `0.21.2` |
| [aws-sdk-s3](https://github.com/awslabs/aws-sdk-rust ) | `1.155.0` | `1.156.0` |
| [aws-smithy-runtime-api](https://github.com/smithy-lang/smithy-rs ) | `1.19.1` | `1.19.2` |
| [aws-smithy-types](https://github.com/smithy-lang/smithy-rs ) | `1.9.0` | `1.9.1` |
| [redis](https://github.com/redis-rs/redis-rs ) | `1.7.1` | `1.8.0` |
Updates `uuid` from 1.28.0 to 1.29.0
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.28.0...v1.29.0 )
Updates `zip` from 9.0.5 to 9.1.3
- [Release notes](https://github.com/zip-rs/zip2/releases )
- [Changelog](https://github.com/zip-rs/zip2/blob/master/CHANGELOG.md )
- [Commits](https://github.com/zip-rs/zip2/compare/v9.0.5...v9.1.3 )
Updates `jsonschema` from 0.60.0 to 0.60.2
- [Release notes](https://github.com/Stranger6667/jsonschema/releases )
- [Changelog](https://github.com/Stranger6667/jsonschema/blob/master/CHANGELOG.md )
- [Commits](https://github.com/Stranger6667/jsonschema/compare/ruby-v0.60.0...ruby-v0.60.2 )
Updates `roxmltree` from 0.21.1 to 0.21.2
- [Changelog](https://github.com/RazrFalcon/roxmltree/blob/master/CHANGELOG.md )
- [Commits](https://github.com/RazrFalcon/roxmltree/compare/v0.21.1...v0.21.2 )
Updates `aws-sdk-s3` from 1.155.0 to 1.156.0
- [Release notes](https://github.com/awslabs/aws-sdk-rust/releases )
- [Commits](https://github.com/awslabs/aws-sdk-rust/commits )
Updates `aws-smithy-runtime-api` from 1.19.1 to 1.19.2
- [Release notes](https://github.com/smithy-lang/smithy-rs/releases )
- [Changelog](https://github.com/smithy-lang/smithy-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/smithy-lang/smithy-rs/commits )
Updates `aws-smithy-types` from 1.9.0 to 1.9.1
- [Release notes](https://github.com/smithy-lang/smithy-rs/releases )
- [Changelog](https://github.com/smithy-lang/smithy-rs/blob/main/CHANGELOG.md )
- [Commits](https://github.com/smithy-lang/smithy-rs/commits )
Updates `redis` from 1.7.1 to 1.8.0
- [Release notes](https://github.com/redis-rs/redis-rs/releases )
- [Commits](https://github.com/redis-rs/redis-rs/compare/redis-1.7.1...redis-1.8.0 )
---
updated-dependencies:
- dependency-name: uuid
dependency-version: 1.29.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: zip
dependency-version: 9.1.3
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: jsonschema
dependency-version: 0.60.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: roxmltree
dependency-version: 0.21.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: aws-sdk-s3
dependency-version: 1.156.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: aws-smithy-runtime-api
dependency-version: 1.19.2
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: aws-smithy-types
dependency-version: 1.9.1
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: redis
dependency-version: 1.8.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:31:48 +08:00
dependabot[bot]
4a7c06f895
chore(deps): bump taiki-e/install-action ( #569 )
...
Bumps the minor-and-patch group with 1 update: [taiki-e/install-action](https://github.com/taiki-e/install-action ).
Updates `taiki-e/install-action` from 2.87.31 to 2.88.1
- [Release notes](https://github.com/taiki-e/install-action/releases )
- [Changelog](https://github.com/taiki-e/install-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/taiki-e/install-action/compare/1e29709c0ec63babbe8f266397a465f29a825f91...68a389c788b2cd04016ce8c80ee23b80d2ab3d68 )
---
updated-dependencies:
- dependency-name: taiki-e/install-action
dependency-version: 2.88.1
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
...
Signed-off-by: dependabot[bot] <support@github.com >
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-11-02 10:31:13 +08:00
Zyy and Codex
e0b7a841ca
chore(release): v3.38.1
...
Co-authored-by: Codex <noreply@openai.com >
v3.38.1
2026-11-02 00:08:30 +08:00
Zyy and Codex
96a292dd0f
fix(providers): align catalog-based account eligibility
...
Apply valid catalog membership alongside account model access for native OAuth, API key upstreams, and xAI. Preserve upstream validation for missing catalogs and unknown plans.
Co-authored-by: Codex <noreply@openai.com >
2026-11-02 00:02:08 +08:00
Zyy and Codex
6f138c8256
chore(release): v3.38.0
...
Co-authored-by: Codex <noreply@openai.com >
v3.38.0
2026-11-01 23:32:37 +08:00
Zyy and Codex
c8ffb1a8c8
perf(store): batch account lease runtime reads
...
Read up to 128 accounts per Redis script while preserving input order, pool isolation, shared scheduling timestamps, expiry cleanup, and error propagation. Extend real Redis coverage for mixed lease states and invalid batch data.
Co-authored-by: Codex <noreply@openai.com >
2026-11-01 23:23:49 +08:00