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>
Scope the onion lifecycle model to v1 proxy APIs and establish single-feature ownership across controllers, lifecycle, adapters, API, and storage.
Document the target dispatch directory and mechanical boundary checks for future controller migrations.
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>
Prepare ephemeral CI bind roots as sticky hand-off directories so image-specific database users can initialize storage on user-namespaced runners.
Keep PostgreSQL data permissions image-managed and verify PostgreSQL and Redis persistence across container recreation.
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>
Track the target update version and poll the version endpoint through process replacement. Reload as soon as the new backend is ready without requiring the browser to observe a brief shutdown window.
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>
Set the runtime image and PostgreSQL service to Asia/Shanghai while preserving UTC timestamptz storage semantics.
Verify the application and PostgreSQL timezone contracts in the container workflow and document the display behavior.
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>