Zyy and Codex
0f0b464f4e
fix(frontend): refine account usage presentation
...
Select quota summaries by the most recently used model, streamline dashboard account identities, and align diagnostic client metadata with successful records.
Co-authored-by: Codex <noreply@openai.com >
2026-09-03 12:21:15 +08:00
Zyy and Codex
bd223f6540
chore: bump version to 3.3.16
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.16
2026-09-02 22:45:09 +08:00
Zyy and Codex
168be0ca68
fix(openai): add continuation recovery observability
...
Persist stable continuation and WebSocket lifecycle facts, correlate successful client replays, and hide recovered failures from default business metrics.
Co-authored-by: Codex <noreply@openai.com >
2026-09-02 21:38:48 +08:00
Zyy and Codex
f2e91bbdaa
fix(openai): preserve websocket continuation routing
...
Limit session-sticky HTTP fallback to new chains, keep continuation requests on their safe transport, and classify rebuild-required failures separately from account health.
Co-authored-by: Codex <noreply@openai.com >
2026-09-02 18:21:30 +08:00
Zyy and Codex
d0c9248478
fix(openai): refine smart scheduler failure scoring
...
Limit account feedback to an explicit upstream reason allowlist, aggregate same-account retries, and decay failure rates over time.
Co-authored-by: Codex <noreply@openai.com >
2026-09-02 15:08:31 +08:00
Zyy and Codex
22c697bbff
fix(usage): refine record details and error filters
...
Co-authored-by: Codex <noreply@openai.com >
2026-09-02 14:43:44 +08:00
Zyy and Codex
08d518324a
fix(frontend): refine account quota layout
...
Co-authored-by: Codex <noreply@openai.com >
2026-09-02 12:14:03 +08:00
Zyy and Codex
dfacb20e43
fix(frontend): tighten usage attempt table layout
...
Co-authored-by: Codex <noreply@openai.com >
2026-09-01 19:46:49 +08:00
Zyy and Codex
55c9291c35
chore: bump version to 3.3.15
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.15
2026-09-01 18:14:49 +08:00
Zyy and Codex
6e8e787b82
fix(openai): harden websocket failure recovery
...
Prevent hidden retries after ambiguous WebSocket sends, enforce connection-local continuation ownership, and persist raw upstream failure details for operations diagnostics.
Co-authored-by: Codex <noreply@openai.com >
2026-09-01 18:12:48 +08:00
Zyy and Codex
2a0a50adc5
refactor(backend): complete module boundary cleanup
...
Extract runtime snapshot lifecycle into its semantic owner, split oversized provider and admin modules, and enforce mirrored src/tests module layouts.
Co-authored-by: Codex <noreply@openai.com >
2026-09-01 17:17:57 +08:00
Zyy and Codex
5e13b6af6a
refactor(backend): align module ownership boundaries
...
Normalize Rust module layout, assign shared core contracts to semantic owners, rename metering concepts, and add workspace architecture guards and documentation.
Co-authored-by: Codex <noreply@openai.com >
2026-09-01 16:25:59 +08:00
Zyy and Codex
bd2454a5b6
feat(settings): enforce minimum client versions
...
Add configurable minimum versions for Codex Desktop and CLI, return 426 for unsupported recognized clients, and provide install and Windows offline download guidance.
Co-authored-by: Codex <noreply@openai.com >
2026-09-01 13:37:04 +08:00
Zyy and Codex
2640a03219
chore: bump version to 3.3.14
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.14
2026-08-31 19:23:58 +08:00
Zyy and Codex
7d0e9a0a20
fix(frontend): refine dashboard account metadata
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 19:23:10 +08:00
Zyy and Codex
09982d7221
fix(openai): align websocket retry fallback
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 19:14:18 +08:00
Zyy and Codex
c4db1bb244
fix(observability): prefer per-frame Codex metadata
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 19:08:16 +08:00
Zyy and Codex
e7c2f025cc
chore: bump version to 3.3.13
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.13
2026-08-31 13:29:18 +08:00
Zyy and Codex
4ee294b208
fix(frontend): improve mobile layout sizing
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 13:28:50 +08:00
Zyy
93f1a82d3f
fix(frontend): improve observability chart continuity
2026-08-31 13:09:24 +08:00
Zyy and Codex
c46f98cd2b
fix: align wire profiles and diagnostics
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 12:29:29 +08:00
Zyy and Codex
5c69b1b082
chore: bump version to 3.3.12
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.12
2026-08-31 11:56:13 +08:00
dependabot[bot] and Zyy
6a78fb9232
chore(deps): bump argon2 from 0.5.3 to 0.6.0 in /backend ( #49 )
...
* chore(deps): bump argon2 from 0.5.3 to 0.6.0 in /backend
Bumps [argon2](https://github.com/RustCrypto/password-hashes ) from 0.5.3 to 0.6.0.
- [Commits](https://github.com/RustCrypto/password-hashes/compare/argon2-v0.5.3...argon2-v0.6.0 )
---
updated-dependencies:
- dependency-name: argon2
dependency-version: 0.6.0
dependency-type: direct:production
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com >
* fix(admin): update argon2 password hashing API
---------
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 >
2026-08-31 11:47:53 +08:00
Zyy and Codex
02a03df79a
fix(observability): preserve upstream failure evidence
...
Log original OpenAI error payloads and WebSocket close reasons with request, account, attempt, transport, and connection correlation. Project PostgreSQL inet values as bare client addresses in observability queries.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 11:36:28 +08:00
dependabot[bot]
2aca8fb79b
chore(deps): bump the minor-and-patch group across 1 directory with 3 updates ( #48 )
...
Bumps the minor-and-patch group with 3 updates in the /backend directory: [syn](https://github.com/dtolnay/syn ), [uuid](https://github.com/uuid-rs/uuid ) and [aws-sdk-s3](https://github.com/awslabs/aws-sdk-rust ).
Updates `syn` from 3.0.3 to 3.0.4
- [Release notes](https://github.com/dtolnay/syn/releases )
- [Commits](https://github.com/dtolnay/syn/compare/3.0.3...3.0.4 )
Updates `uuid` from 1.24.1 to 1.26.0
- [Release notes](https://github.com/uuid-rs/uuid/releases )
- [Commits](https://github.com/uuid-rs/uuid/compare/v1.24.1...v1.26.0 )
Updates `aws-sdk-s3` from 1.142.0 to 1.144.0
- [Release notes](https://github.com/awslabs/aws-sdk-rust/releases )
- [Commits](https://github.com/awslabs/aws-sdk-rust/commits )
---
updated-dependencies:
- dependency-name: aws-sdk-s3
dependency-version: 1.144.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: syn
dependency-version: 3.0.4
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: uuid
dependency-version: 1.26.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-08-31 11:13:35 +08:00
dependabot[bot]
891b227b69
chore(deps): bump debian from abd67ff to 8820086 in /deploy ( #52 )
...
Bumps debian from `abd67ff` to `8820086`.
---
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-08-31 11:13:27 +08:00
dependabot[bot]
04096dddb7
chore(deps): bump rust from e70e2ee to 82150a5 in /deploy ( #51 )
...
Bumps rust from `e70e2ee` to `82150a5`.
---
updated-dependencies:
- dependency-name: rust
dependency-version: 1.98-bookworm
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-08-31 11:13:20 +08:00
dependabot[bot]
3a9b1c479f
chore(deps): bump the minor-and-patch group in /frontend with 8 updates ( #50 )
...
Bumps the minor-and-patch group in /frontend with 8 updates:
| Package | From | To |
| --- | --- | --- |
| [@lucide/vue](https://github.com/lucide-icons/lucide/tree/HEAD/packages/vue ) | `1.33.0` | `1.37.0` |
| [axios](https://github.com/axios/axios ) | `1.19.0` | `1.20.0` |
| [es-toolkit](https://github.com/toss/es-toolkit ) | `1.51.0` | `1.52.0` |
| [marked](https://github.com/markedjs/marked ) | `18.0.10` | `18.0.11` |
| [vue](https://github.com/vuejs/core ) | `3.5.41` | `3.5.42` |
| [vue-router](https://github.com/vuejs/router ) | `5.2.0` | `5.3.0` |
| [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node ) | `26.2.0` | `26.4.0` |
| [eslint](https://github.com/eslint/eslint ) | `10.9.0` | `10.9.1` |
Updates `@lucide/vue` from 1.33.0 to 1.37.0
- [Release notes](https://github.com/lucide-icons/lucide/releases )
- [Commits](https://github.com/lucide-icons/lucide/commits/1.37.0/packages/vue )
Updates `axios` from 1.19.0 to 1.20.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.19.0...v1.20.0 )
Updates `es-toolkit` from 1.51.0 to 1.52.0
- [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.51.0...v1.52.0 )
Updates `marked` from 18.0.10 to 18.0.11
- [Release notes](https://github.com/markedjs/marked/releases )
- [Commits](https://github.com/markedjs/marked/compare/v18.0.10...v18.0.11 )
Updates `vue` from 3.5.41 to 3.5.42
- [Release notes](https://github.com/vuejs/core/releases )
- [Changelog](https://github.com/vuejs/core/blob/main/CHANGELOG.md )
- [Commits](https://github.com/vuejs/core/compare/v3.5.41...v3.5.42 )
Updates `vue-router` from 5.2.0 to 5.3.0
- [Release notes](https://github.com/vuejs/router/releases )
- [Commits](https://github.com/vuejs/router/compare/v5.2.0...v5.3.0 )
Updates `@types/node` from 26.2.0 to 26.4.0
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node )
Updates `eslint` from 10.9.0 to 10.9.1
- [Release notes](https://github.com/eslint/eslint/releases )
- [Commits](https://github.com/eslint/eslint/compare/v10.9.0...v10.9.1 )
---
updated-dependencies:
- dependency-name: "@lucide/vue"
dependency-version: 1.37.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: axios
dependency-version: 1.20.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: es-toolkit
dependency-version: 1.52.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: marked
dependency-version: 18.0.11
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: vue
dependency-version: 3.5.42
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: minor-and-patch
- dependency-name: vue-router
dependency-version: 5.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: "@types/node"
dependency-version: 26.4.0
dependency-type: direct:development
update-type: version-update:semver-minor
dependency-group: minor-and-patch
- dependency-name: eslint
dependency-version: 10.9.1
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-08-31 11:13:12 +08:00
dependabot[bot]
944d3f299e
chore(deps): bump github/codeql-action/upload-sarif ( #47 )
...
Bumps the minor-and-patch group with 1 update: [github/codeql-action/upload-sarif](https://github.com/github/codeql-action ).
Updates `github/codeql-action/upload-sarif` from 4.37.8 to 4.37.9
- [Release notes](https://github.com/github/codeql-action/releases )
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md )
- [Commits](https://github.com/github/codeql-action/compare/db488ddef3bf6cb639b32c2e9a7c0a7ea8271d28...cdf488f595d80d6e07e03d4674febd5ab45fa938 )
---
updated-dependencies:
- dependency-name: github/codeql-action/upload-sarif
dependency-version: 4.37.9
dependency-type: direct:production
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-08-31 11:12:30 +08:00
Zyy and Codex
56451601fb
feat(observability): enrich error request traces
...
Expose request, client, model, transport, and account facts in operations errors and surface them in the error table and detail view.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 10:57:53 +08:00
Zyy and Codex
4d53ef6068
fix(openai): recover premature websocket closes
...
Pin the selected account and retry over HTTP/SSE when a new-chain WebSocket fails before downstream delivery.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 10:57:35 +08:00
Zyy and Codex
a62bb196f7
fix(accounts): proxy profile avatars through backend
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 09:56:23 +08:00
Zyy and Codex
7ad0ca48c5
fix(frontend): improve radio contrast in light mode
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 09:56:01 +08:00
Zyy and Codex
e25639c11b
fix(release): gate publishing on container validation
...
Skip standalone CI for version-only release commits so they do not cancel the preceding source run. Reuse the container workflow in Release and require it before publishing.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 04:40:24 +08:00
Zyy and Codex
8abac080a2
chore: bump version to 3.3.11
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.11
2026-08-31 04:22:47 +08:00
Zyy and Codex
37cd059531
fix(openai): normalize HTTP previous response errors
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 04:22:11 +08:00
Zyy and Codex
c46910df22
fix(observability): restore direct page navigation
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 04:09:31 +08:00
Zyy and Codex
8cfd7f53be
chore: bump version to 3.3.10
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.10
2026-08-31 03:30:13 +08:00
Zyy and Codex
75e22d7a5b
fix(openai): harden downstream websocket delivery
...
Move downstream socket ownership into a bounded pump, preserve official Codex control-frame behavior, and bound downstream writes.
Enforce the official connection lifetime after active terminal delivery, add structured transport diagnostics, and mirror connection/protocol coverage under the test tree without adding stream_id.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 03:27:11 +08:00
Zyy and Codex
6b2d335bc5
fix(observability): align completed usage projections
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:58:16 +08:00
Zyy and Codex
270b1540cb
perf(observability): bound retention cleanup cycles
...
Rotate bounded deletion batches across retained tables with row, batch, duration, and pacing budgets. Report per-cycle progress, honor worker cancellation, and leave rollups or parallel writer lanes behind measured production thresholds.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:40:40 +08:00
Zyy and Codex
660214d9a5
refactor(store): simplify PostgreSQL lifecycle reads
...
Reuse the direct runtime-settings read for the single-row control-plane path, collapse repeated provider snapshot lookups in request lifecycle writes, and remove the unused credential revision vector surface.
No schema migration is added because no candidate crossed the EXPLAIN and write-amplification gate.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:40:40 +08:00
Zyy and Codex
2231fee768
perf(observability): narrow usage and ops read models
...
Separate Usage list and detail reads, use keyset paging with first-page totals, push Ops predicates into source branches, and merge repeated account and diagnostics aggregates. Apply the shared per-query PostgreSQL budget, coalesce identical Dashboard windows, and preserve the existing IP, User-Agent, and latency detail surface.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:40:40 +08:00
Zyy and Codex
a2e60c1c6e
refactor(admin): page account read models in PostgreSQL
...
Move account, account-group, and client-key filtering, stable ordering, counts, and current-page membership reads into PostgreSQL. Keep Redis cooldown and lease enrichment in the Admin application boundary, share stable page state in the UI, and supervise client-key last-used flushing through the host worker lifecycle.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:40:40 +08:00
Zyy and Codex
fc388bb799
refactor(providers): bound credential refresh queries
...
Move refresh candidate filtering, ordering, exclusions, and limits into one PostgreSQL query for OpenAI and xAI. Keep refresh policy in each provider and preserve the final credential revision fence without adding a scheduling cache or catalog table.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:34:49 +08:00
Zyy and Codex
62a35c3960
feat(store): add PostgreSQL connection guardrails
...
Raise the recommended pool default, reserve data-plane capacity dynamically, configure PostgreSQL session timeouts, isolate migrations, and add a fair per-query budget primitive with regression coverage.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:34:32 +08:00
Zyy and Codex
82653544ac
perf(observability): eliminate attempt metrics temp spill
...
Materialize only the narrow request facts shared by the request and ops aggregates, then compute each aggregate once. This removes repeated scans of the wide model_requests CTE while preserving usage-fact cost coverage.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:34:21 +08:00
Zyy and Codex
f10f825404
fix(observability): correct provider failure semantics
...
Count provider request, attempt, and failure facts across the full execution audit while restricting token totals to completed usage facts. Add a PostgreSQL regression assertion for the mixed success/failure boundary.
Co-authored-by: Codex <noreply@openai.com >
2026-08-31 02:34:21 +08:00
Zyy and Codex
a268f5ca66
fix(observability): restore WebSocket usage records
...
Co-authored-by: Codex <noreply@openai.com >
2026-08-30 22:40:16 +08:00
Zyy and Codex
832e2e8bdd
chore: bump version to 3.3.9
...
Co-authored-by: Codex <noreply@openai.com >
v3.3.9
2026-08-30 09:49:48 +08:00