54 Commits
Author SHA1 Message Date
ZyyandCodex 074c07b5ca refactor(store): tighten persisted facts and trim redundant observability
Remove unused event occurrence counts across storage, API and UI; count event
rows directly and keep provider metadata focused on facts absent from typed
observations. Preserve actual upstream-reported model and handshake status.

Narrow four live-reference indexes, drop eight low-value indexes, enforce
complete grouped facts and normalize administrator audit identities. Make
backup storage changes invalidate verification and pause schedules atomically,
while unchanged saves preserve state and revision.

Validation: 1,816 backend tests passed with isolated PostgreSQL and Redis,
including the official artifact download test. Strict Clippy, rustfmt, migration
freeze checks, frontend lint/typecheck/build and actionlint passed. Synthetic
10,000-row query plans verified live-reference and historical pagination indexes.

Co-authored-by: Codex <noreply@openai.com>
2026-09-06 17:27:29 +08:00
Zyy 353dccedc4 feat: add request diagnostics and align Codex transport contracts 2026-09-06 16:24:14 +08:00
ZyyandCodex 697f1870a0 docs: refresh user-facing setup and existing guides
Refocus the README on installation, client setup and common questions. Consolidate native image generation, auth.json compatibility and obsolete Codex settings in the existing deployment guide.

Correct account import formats, API references, backup recovery and password rotation guidance. Synchronize architecture, theme, migration and repository skill documentation without adding new documents or changing temporary investigation notes.

Validated 53 local links, 22 shell examples, generated configuration parity and TOML syntax, Compose configuration, skill metadata and whitespace checks.

Co-authored-by: Codex <noreply@openai.com>
2026-09-06 15:28:32 +08:00
ZyyandCodex a704fbc3f3 fix(websocket): serialize queued response requests
Queue incoming response.create frames until the active response finishes instead of closing the connection, aligning execution with the Codex client serial request flow.

Separate pump exit notifications from the bounded business queue so disconnects and shutdown remain prompt. Preserve expiry handling with a full queue, retain protocol validation, and document the serial execution contract.

Validated with 253 API tests, 12 architecture tests, strict workspace Clippy and Rust formatting.

Co-authored-by: Codex <noreply@openai.com>
2026-09-06 13:55:14 +08:00
ZyyandCodex 2585d4cd7d refactor(architecture): consolidate usage and provider contracts
Move Dashboard quota projection to the backend, share pagination request state, and fix independent usage loads while keeping trend switches free of loading overlays.

Stream billing facts within the query budget, share pending authorization and usage validation, and separate Core value ownership and response observations. Remove the unused theme helper and strengthen dependency checks.

Validated with workspace integration tests against isolated PostgreSQL and Redis, strict Clippy, Rust formatting, and frontend typecheck, lint and build.

Co-authored-by: Codex <noreply@openai.com>
2026-09-05 05:29:12 +08:00
ZyyandCodex ad16dec3db fix(openai): align official client routes
Remove unsupported review and model extension routes, preserve review semantics on standard Responses requests, and refine usage observability for review and empty performance data.

Co-authored-by: Codex <noreply@openai.com>
2026-09-03 15:37:14 +08:00
ZyyandCodex a0da0f4713 feat(openai): proxy standalone search
Add /v1/alpha/search as a transparent raw JSON endpoint, route requests through the OpenAI credential pipeline, and preserve account-scoped turn metadata and upstream response headers.

Co-authored-by: Codex <noreply@openai.com>
2026-09-03 14:27:15 +08:00
ZyyandCodex 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
ZyyandCodex ad20064d15 fix(admin): unify control-plane error responses
Co-authored-by: Codex <noreply@openai.com>
2026-08-29 20:22:14 +08:00
ZyyandCodex 515487baee docs(api): document official profile statistics
Co-authored-by: Codex <noreply@openai.com>
2026-08-29 04:07:54 +08:00
ZyyandCodex 5ea3740de3 refactor(openai): remove agent identity support
Co-authored-by: Codex <noreply@openai.com>
2026-08-27 13:27:10 +08:00
ZyyandCodex b0fe132736 docs: refresh architecture and project guides
Co-authored-by: Codex <noreply@openai.com>
2026-08-21 01:01:07 +08:00
ZyyandCodex 227a1174b9 feat(openai): proxy image generation and edits
Co-authored-by: Codex <noreply@openai.com>
2026-08-20 17:41:15 +08:00
ZyyandCodex 71159d5633 refactor(account-groups): remove unused members endpoint
Co-authored-by: Codex <noreply@openai.com>
2026-08-13 17:28:43 +08:00
ZyyandCodex f2ebb09e34 docs: describe group routing and account scheduling
Co-authored-by: Codex <noreply@openai.com>
2026-08-13 16:58:36 +08:00
ZyyandCodex 6cad2bb6a1 fix(openai): align account import with official token claims
Co-authored-by: Codex <noreply@openai.com>
2026-08-12 23:51:26 +08:00
ZyyandCodex 2b8b3de0e4 refactor(accounts): unify five-state account status
Co-authored-by: Codex <noreply@openai.com>
2026-08-12 23:50:31 +08:00
ZyyandCodex d0dc7ef92b fix(openai): complete import profile from access token
Co-authored-by: Codex <noreply@openai.com>
2026-08-06 12:31:13 +08:00
ZyyandCodex 30f528f084 fix(openai): simplify import and oauth validation
Co-authored-by: Codex <noreply@openai.com>
2026-08-06 11:14:18 +08:00
zyycnandClaude Fable 5 930e311f51 docs(backup): document S3 backup API and architecture
- api.md: backup endpoints under /api/admin/settings/backups/*
- architecture.md: backup service wiring notes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-01 22:13:59 +08:00
zyycnandCodex 404cd41ff4 docs: refresh runtime and account behavior
Document current OAuth reauthorization, quota state synchronization, response service tiers, transparent wire behavior, buffered observations, and deployment boundaries.

Co-authored-by: Codex <noreply@openai.com>
2026-07-29 01:38:03 +08:00
zyycnandCodex f5c1d773d7 fix(accounts): use current credential revisions
Load the current credential revision server-side for reauthorization and manual refresh so background token refreshes do not make admin mutations fail stale client fences.

Co-authored-by: Codex <noreply@openai.com>
2026-07-28 13:04:12 +08:00
ZyyandCodex 45903b684b fix(admin): remove config revision fences from API writes
Operator mutations no longer require callers to carry configRevision values through accounts, client keys, provider credentials, or settings. The store and admin use cases now apply current state directly, which removes stale-revision failures from normal create, update, and delete flows.

xAI Responses catalog entries now let the upstream validate feature support instead of rejecting requests locally when optional catalog metadata is absent, matching the Build routing behavior used by grok2api.

Co-authored-by: Codex <noreply@openai.com>
2026-07-27 11:30:59 +08:00
zyycnandClaude 8226089ade fix(api): resolve the admin request id independently of the header name
The request-id layer injects under the configured api.request_id_header,
but the admin extractor read the hardcoded x-request-id name, so pointing
that setting at any other header made every authenticated admin request
fail with an internal error and took the admin interface down. Read the
name-agnostic RequestId extension the layer also populates, keeping the
header lookup as a fallback for callers that run without the layer.

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-27 01:09:49 +08:00
zyycnandClaude 1bd40ffa67 docs: sync every document with the behavior at HEAD
Each document was verified claim by claim against the source. Corrections
that mattered: client API keys have no per-key model scoping; admin
requests never need to send x-request-id and the configurable header name
does not apply to admin authentication; GET /v1/models serves two distinct
response shapes depending on client_version; the crate dependency rules
are convention rather than machine-enforced across all crates; the HTTP
server and worker runtime live in gateway-host, not apps/gateway; the
OpenAI path forwards upstream bytes verbatim over both SSE and WebSocket
while xAI translates between the Grok and Responses wires. Document the
graceful-shutdown budget, the CORS contract, the migration freeze rule,
and the integration-test environment variables, and drop the stale login
throttling references.

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-27 01:05:33 +08:00
zyycnandCodex 90ce543295 docs: refresh v3 provider and deployment guides
Co-authored-by: Codex <noreply@openai.com>
2026-07-25 03:26:18 +08:00
zyycnandCodex b8c14f5dd1 chore: clean project test layout
Co-authored-by: Codex <noreply@openai.com>
2026-06-19 22:13:30 +08:00
zyycnandCodex 8763187266 docs: add architecture overview
Co-authored-by: Codex <noreply@openai.com>
2026-06-19 20:53:26 +08:00
zyycnandCodex 1f77bbda06 openai: align codex chain
Co-authored-by: Codex <noreply@openai.com>
2026-06-15 08:39:28 +08:00
zyycnandCodex bc8650c9cf refactor: remove legacy compatibility
Co-authored-by: Codex <noreply@openai.com>
2026-06-14 20:04:08 +08:00
zyycnandCodex f557cb17ba refactor: align backend names
Co-authored-by: Codex <noreply@openai.com>
2026-06-14 17:48:25 +08:00
zyycnandCodex dfcd30bd84 refactor: modernize logging
Co-authored-by: Codex <noreply@openai.com>
2026-06-14 02:53:29 +08:00
zyycnandCodex 161c8e60eb feat: add admin log filters
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 11:39:18 +08:00
zyycnandCodex 4fb58a4453 feat: add admin log state mutation
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 11:30:40 +08:00
zyycnandCodex 02f76b0477 feat: add admin diagnostics summary
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 11:24:28 +08:00
zyycnandCodex f66c69c7fa feat: add upstream diagnostics probe
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 11:16:34 +08:00
zyycnandCodex 9a8cbf51d7 feat: add local fingerprint diagnostics
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 11:06:55 +08:00
zyycnandCodex f3b37211a4 feat: add admin log management routes
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 11:00:48 +08:00
zyycnandCodex 23044393e4 feat: add local diagnostics summary
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 10:53:03 +08:00
zyycnandCodex 0119837770 feat: add admin settings writeback
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 10:45:46 +08:00
zyycnandCodex 53511d5c7a feat: add admin quota warnings route
Co-authored-by: Codex <noreply@openai.com>
2026-06-13 07:40:58 +08:00
ZyyandCodex 5393a67f6b feat: add local client API key import export
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 17:18:33 +08:00
ZyyandCodex a408195c41 fix: map HTTP SSE response failures
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 17:18:33 +08:00
zyycnandCodex 9ca5c7d0b8 fix: reconstruct non-stream response output
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 09:13:00 +08:00
zyycnandCodex 5bf012c64e feat: log token refresh failures
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 06:58:28 +08:00
zyycnandCodex fdb9374089 feat: add token refresh retry and usage stats
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 06:49:31 +08:00
zyycnandCodex ee0ed9036d feat: add v1 streaming and lifecycle logs
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 06:25:47 +08:00
zyycnandCodex e9fdea08d2 feat: add admin client api key management
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 01:58:08 +08:00
zyycnandCodex c2cf7a670f feat: wire v1 responses to codex upstream
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 01:40:25 +08:00
zyycnandCodex 228febde67 feat: add encrypted admin account import
Co-authored-by: Codex <noreply@openai.com>
2026-06-12 01:23:50 +08:00