mirror of
https://github.com/pchuan98/codex.git
synced 2026-07-01 00:31:56 +08:00
## Why Codex users can earn personal rate-limit reset credits, but app-server clients do not currently have an API for reading or redeeming them. This adds the backend and protocol foundation used by the `/usage` TUI flow in #28154. ## What changed - Extend `account/rateLimits/read` with a nullable `rateLimitResetCredits` summary sourced from the existing usage response. - Add backend-client and app-server support for consuming a reset with a caller-generated idempotency key. A UUID is recommended, and clients reuse the same key when retrying the same logical reset. - Return only the consume `outcome`; clients refetch `account/rateLimits/read` for updated window state. - Document the response field and each consume outcome, and regenerate the JSON and TypeScript schema fixtures. - Clarify in `AGENTS.md` that new app-server string enum values use camelCase on the wire. - Update the existing TUI response fixture for the expanded protocol shape. - Add coverage for authentication, response mapping, backend failures, consume outcomes, and request timeout behavior. ## Validation - `just test -p codex-app-server-protocol` — 231 passed. - `just test -p codex-backend-client` — 14 passed. - Focused `codex-app-server` reset-credit tests — 5 passed. - Focused `codex-tui` protocol response fixture test — passed. - `just fix -p codex-backend-client -p codex-app-server-protocol -p codex-app-server` — passed. - `just fmt` — passed.
79 lines
1.6 KiB
Rust
79 lines
1.6 KiB
Rust
mod account;
|
|
mod analytics;
|
|
mod app_list;
|
|
mod attestation;
|
|
mod client_metadata;
|
|
mod collaboration_mode_list;
|
|
#[cfg(unix)]
|
|
mod command_exec;
|
|
mod compaction;
|
|
mod config_rpc;
|
|
mod connection_handling_websocket;
|
|
#[cfg(unix)]
|
|
mod connection_handling_websocket_unix;
|
|
mod dynamic_tools;
|
|
#[cfg(not(target_os = "windows"))]
|
|
mod executor_mcp;
|
|
mod executor_skills;
|
|
mod experimental_api;
|
|
mod experimental_feature_list;
|
|
mod external_agent_config;
|
|
mod fs;
|
|
mod hooks_list;
|
|
mod imagegen_extension;
|
|
mod initialize;
|
|
mod marketplace_add;
|
|
mod marketplace_remove;
|
|
mod marketplace_upgrade;
|
|
mod mcp_resource;
|
|
mod mcp_server_elicitation;
|
|
mod mcp_server_status;
|
|
mod mcp_tool;
|
|
mod memory_reset;
|
|
mod model_list;
|
|
mod model_provider_capabilities_read;
|
|
mod output_schema;
|
|
mod permission_profile_list;
|
|
mod plan_item;
|
|
mod plugin_install;
|
|
mod plugin_list;
|
|
mod plugin_read;
|
|
mod plugin_share;
|
|
mod plugin_uninstall;
|
|
mod process_exec;
|
|
mod rate_limit_reset_credits;
|
|
mod rate_limits;
|
|
mod realtime_conversation;
|
|
mod remote_control;
|
|
#[cfg(debug_assertions)]
|
|
mod remote_thread_store;
|
|
mod request_permissions;
|
|
mod request_user_input;
|
|
mod review;
|
|
mod safety_check_downgrade;
|
|
mod skills_list;
|
|
mod thread_archive;
|
|
mod thread_delete;
|
|
mod thread_fork;
|
|
mod thread_inject_items;
|
|
mod thread_list;
|
|
mod thread_loaded_list;
|
|
mod thread_memory_mode_set;
|
|
mod thread_metadata_update;
|
|
mod thread_name_websocket;
|
|
mod thread_read;
|
|
mod thread_resume;
|
|
mod thread_rollback;
|
|
mod thread_settings_update;
|
|
mod thread_shell_command;
|
|
mod thread_start;
|
|
mod thread_status;
|
|
mod thread_unarchive;
|
|
mod thread_unsubscribe;
|
|
mod turn_interrupt;
|
|
mod turn_start;
|
|
mod turn_start_zsh_fork;
|
|
mod turn_steer;
|
|
mod web_search;
|
|
mod windows_sandbox_setup;
|