Route in-process update restarts through an explicit shutdown action so the runtime releases the listener and logging guard before exec, without waiting for the single instance's graceful drain.
Co-authored-by: Codex <noreply@openai.com>
Move account and dashboard read orchestration into their existing admin API modules, and remove the top-level admin_queries package and service wrapper.
Update composition wiring, dependency guards, and architecture documentation to reflect feature-local query ownership.
Co-authored-by: Codex <noreply@openai.com>
Remove frontend schemas and tests, keep API modules as thin GET/POST adapters, and replace manual SSE and browser helpers with existing VueUse and utility primitives.
Reorganize feature helpers, move unauthorized handling into an app plugin, align the admin key removal route, and satisfy the enabled accessibility rules.
Co-authored-by: Codex <noreply@openai.com>
Harden WebSocket ownership and capacity semantics, split the transport into focused modules, and move admin queries, quota observations, and upstream adapters behind explicit consumer-owned ports.
Parse frontend payloads at the API boundary, centralize SSE and store ownership, add latest-request-wins queries with inferred view types, and enforce dependency direction through lint and AST tests.
Co-authored-by: Codex <noreply@openai.com>
Remove request-path quota probes and consume account, request, and rate-limit facts from normal upstream responses, including 429 active-limit metadata.
Refresh model catalogs only at startup, on x-models-etag changes, or through the explicit account model refresh control in the connection test dialog.
Co-authored-by: Codex <noreply@openai.com>
Preserve Responses Lite and Memgen controls across HTTP and WebSocket transports without rewriting request bodies, and standardize continuation recovery signals.
Track cache-write usage and billing while applying appcast profile updates to new WebSocket generations without breaking exact continuations.
Co-authored-by: Codex <noreply@openai.com>
Sanitize every replay item envelope without maintaining an output-type allowlist, while preserving nested client and tool semantics.
Build connection snapshots from the actual successful attempt input so cleaned source-account state cannot return during target-account recovery.
Co-authored-by: Codex <noreply@openai.com>
Track connection transcripts by the actual response account and sanitize typed Responses output state before replaying across accounts.
Rebuild target auth, Cookie, installation metadata, and turn state boundaries, fail closed on malformed turn metadata, and persist only target-account state after replay.
Co-authored-by: Codex <noreply@openai.com>
Capture first semantic output and transport timing, then surface concise latency values with safe phase details in dashboard and usage records.
Keep the Codex Desktop request profile synchronized with successful appcast checks at runtime, without rewriting configuration or evicting existing WebSocket connections.
Co-authored-by: Codex <noreply@openai.com>
Measure TTFT from the first semantic response event across streaming, retry, scheduler, usage telemetry, and dashboard paths.
Expose first-token percentiles and concise UI labels, and isolate concurrent Redis-backed test runs.
Co-authored-by: Codex <noreply@openai.com>
Update redis to 1.4.0, rustls to 0.23.42, and uuid to 1.23.5 after full backend, security, container, and Trivy validation.
Co-authored-by: Codex <noreply@openai.com>
Notify foreground and shared waiters before awaiting pool cleanup so an observed WebSocket opening error cannot be replaced by a fast-path timeout and HTTP fallback.
Drive the half-open breaker test through explicit state transitions instead of timing sleeps.
Co-authored-by: Codex <noreply@openai.com>
Classify final request outcomes into success, failure, cancellation, and caller-error buckets so availability reflects only eligible requests. Expose structured 15-minute health points with focused coverage.
Redesign the health timeline, trend, wire-profile, and diagnostic surfaces with responsive shared interactions, and standardize configuration schema version 1.
Co-authored-by: Codex <noreply@openai.com>
Continue pool-owned WebSocket handshakes after the foreground budget expires, retain late successes for reuse, and cancel them on account eviction or shutdown. Keep breaker accounting and transport metrics aligned with the foreground decision.
Co-authored-by: Codex <noreply@openai.com>
Enforce pump-owned Pong deadlines without adding request-path probes, and pause watchdogs during inbound backpressure.
Refresh usage snapshots against the current time, expose account identities, preserve full plan badges, and source dashboard totals from global request buckets.
Co-authored-by: Codex <noreply@openai.com>
Move Cyber classification and retry decisions behind its controller-owned typed result.
Share feature failure owner ordering across attempt and committed stream paths, with architecture guards and documentation.
Co-authored-by: Codex <noreply@openai.com>
Classify deactivated_workspace as banned while preserving ordinary 402 quota behavior.
Track cyber_policy per client session so the next request avoids failed accounts, cap rotation at three accounts, guard success cleanup with ABA-safe token CAS, and document the Request/Attempt/Stream lifecycle controller target.
Co-authored-by: Codex <noreply@openai.com>
Use deploy/config.yaml as the structured source for application settings and service credentials, with strict validation and runtime-relative paths.
Consolidate Compose assets under deploy, remove obsolete environment and smoke files, keep terminal logs readable while retaining JSON file output, and refresh the Codex Desktop fingerprint.
Co-authored-by: Codex <noreply@openai.com>
Restore the official Ultra preset from the proactive multi-agent marker while preserving the max effort sent upstream. Show subagent requests with an inline icon in both usage tables and keep their wire effort visible.
Co-authored-by: Codex <noreply@openai.com>
Keep replay history within the active downstream WebSocket, rotate failed requests through the configured account scheduler, and retain only bounded response ownership metadata in Redis.\n\nRemove duplicate account retries, bound transport waits and runtime maps, defer noncritical stream persistence, and cover the recovery and timeout paths with integration tests.
Co-authored-by: Codex <noreply@openai.com>
Improve account and API key filtering, sorting, responsive layouts, table loading, usage reporting, and billing semantics across the admin interface.
Remove obsolete compact-route handling, normalize model metadata, and add process-wide draining for HTTP streams and WebSockets during restart.
Co-authored-by: Codex <noreply@openai.com>
Remove the import-sqlite command, bootstrap importer, migration fixtures and tests, and the SQLx SQLite feature.
Keep the runtime and project documentation focused exclusively on PostgreSQL and Redis storage.
Co-authored-by: Codex <noreply@openai.com>
Expose the official Responses WebSocket endpoint so Codex can retry interrupted turns without proxy-side response splicing.
Preserve upstream frames under backpressure, report pump exit reasons, organize Responses handlers by transport, and poll fingerprint updates daily. Keep the warning policy in the backend manifest instead of a repository-wide Cargo config.
Co-authored-by: Codex <noreply@openai.com>