From 50379197779be0e5afcbddb014a34cd1fc08af53 Mon Sep 17 00:00:00 2001 From: dhruvgupta-oai Date: Wed, 2 Sep 2026 20:25:48 +0000 Subject: [PATCH] Add Luna Reserve usage fallback to the TUI (#42372) ## Why When ordinary included usage is exhausted, eligible users need a way to keep working with the backend-provided Luna Reserve quota and return to their previous model once ordinary usage recovers. ## What changed - Automatically switch eligible TUI tasks to Luna Reserve after an authoritative account usage read, preserving the prior model and reasoning effort per task. - Restrict model selection while on Reserve to its supported reasoning levels, keep queued turns on the accepted model, and restore the saved model after a fresh read confirms recovery. - Surface Reserve usage in the composer and `/status`, and expose `normalModelSlug` in app-server rate-limit snapshots so clients can use the associated model's display metadata without changing the request model. - Poll account limits more frequently near exhaustion and retain compatibility with app servers that only accept the legacy null request parameters. ## Testing - Added coverage for Reserve entry, queued-turn handling, task reconstruction, recovery authorization, account changes, model selection, usage rendering, and banner dismissal. GitOrigin-RevId: 46a435e9531051f8cec3f6a46c4b9f7cfa479747 --- .../schema/json/ServerNotification.json | 7 + .../codex_app_server_protocol.schemas.json | 7 + .../codex_app_server_protocol.v2.schemas.json | 7 + .../AccountRateLimitsUpdatedNotification.json | 7 + .../json/v2/GetAccountRateLimitsResponse.json | 7 + .../app-server-exports-experimental.json.zst | Bin 150679 -> 150754 bytes .../app-server-exports-stable.json.zst | Bin 147157 -> 147122 bytes .../schema/typescript/v2/RateLimitSnapshot.ts | 6 +- .../src/protocol/v2/account.rs | 3 + codex-rs/app-server/README.md | 1 + .../app-server/src/bespoke_event_handling.rs | 1 + codex-rs/app-server/src/outgoing_message.rs | 2 + .../app-server/tests/suite/v2/rate_limits.rs | 3 + codex-rs/backend-client/src/client.rs | 34 +- .../src/client/rate_limit_resets.rs | 16 +- codex-rs/backend-client/src/types.rs | 11 + codex-rs/codex-api/src/rate_limits.rs | 2 + codex-rs/core/src/session/tests.rs | 6 + codex-rs/core/src/state/session_tests.rs | 7 + codex-rs/memories/write/src/guard_tests.rs | 1 + codex-rs/protocol/src/error.rs | 3 + codex-rs/protocol/src/error_tests.rs | 1 + codex-rs/protocol/src/protocol.rs | 3 + .../thread_history_materialization_tests.rs | 1 + .../tui/src/app/backend_banner_fallback.rs | 69 +++- codex-rs/tui/src/app/background_requests.rs | 34 +- codex-rs/tui/src/app/event_dispatch.rs | 38 +- codex-rs/tui/src/app/rate_limit_refresh.rs | 35 ++ codex-rs/tui/src/app/startup.rs | 15 + codex-rs/tui/src/app/tests.rs | 2 + .../tests/backend_banner_fallback_tests.rs | 81 +++- .../tests/backend_banner_recovery_tests.rs | 79 ++++ .../app/tests/luna_reserve_recovery_tests.rs | 382 ++++++++++++++++++ codex-rs/tui/src/app/tests/rate_limits.rs | 11 +- ..._tests__backend_banner_after_fallback.snap | 4 +- ...ts__luna_reserve_settings_unavailable.snap | 10 + ...y_tests__luna_reserve_recovery_notice.snap | 5 + codex-rs/tui/src/app_event.rs | 13 + codex-rs/tui/src/app_server_session.rs | 1 + codex-rs/tui/src/backend_banners.rs | 3 + .../tui/src/bottom_pane/actionable_banner.rs | 10 +- codex-rs/tui/src/bottom_pane/chat_composer.rs | 16 + .../src/bottom_pane/list_selection_view.rs | 9 +- codex-rs/tui/src/bottom_pane/mod.rs | 6 + ..._tests__backend_banner_personal_limit.snap | 1 - ...ckend_banner_workspace_member_credits.snap | 1 - ...__inline_banner_wrapped_and_truncated.snap | 1 - codex-rs/tui/src/chatwidget.rs | 7 + .../tui/src/chatwidget/backend_banners.rs | 376 ++++++++++++++++- codex-rs/tui/src/chatwidget/constructor.rs | 2 + .../tui/src/chatwidget/luna_reserve_model.rs | 62 +++ .../tui/src/chatwidget/luna_reserve_return.rs | 48 +++ .../tui/src/chatwidget/model_popup_state.rs | 12 +- codex-rs/tui/src/chatwidget/model_popups.rs | 59 +-- codex-rs/tui/src/chatwidget/rate_limits.rs | 72 ++-- codex-rs/tui/src/chatwidget/session_flow.rs | 15 + codex-rs/tui/src/chatwidget/settings.rs | 13 +- .../tui/src/chatwidget/status_surfaces.rs | 3 + codex-rs/tui/src/chatwidget/tests.rs | 2 + .../chatwidget/tests/backend_banners_tests.rs | 5 +- codex-rs/tui/src/chatwidget/tests/helpers.rs | 1 + .../tests/luna_reserve_usage_tests.rs | 254 ++++++++++++ ...rs_tests__backend_banner_notification.snap | 4 +- ...__luna_reserve_selector_second_choice.snap | 12 + ...sage_tests__luna_reserve_usage_narrow.snap | 8 + ...age_tests__luna_reserve_usage_running.snap | 10 + ..._usage_tests__luna_reserve_usage_wide.snap | 8 + ...tests__luna_reserve_usage_with_upsell.snap | 12 + .../src/chatwidget/tests/status_and_layout.rs | 22 +- .../tests/status_surface_previews.rs | 2 + codex-rs/tui/src/chatwidget/turn_runtime.rs | 1 + codex-rs/tui/src/history_cell/session.rs | 2 +- codex-rs/tui/src/model_catalog.rs | 13 + codex-rs/tui/src/status/rate_limits.rs | 37 +- codex-rs/tui/src/status/tests.rs | 17 + codex-rs/tui/src/status/thread_usage.rs | 1 + 76 files changed, 1907 insertions(+), 135 deletions(-) create mode 100644 codex-rs/tui/src/app/tests/luna_reserve_recovery_tests.rs create mode 100644 codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__luna_reserve_settings_unavailable.snap create mode 100644 codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__luna_reserve_recovery_tests__luna_reserve_recovery_notice.snap create mode 100644 codex-rs/tui/src/chatwidget/luna_reserve_model.rs create mode 100644 codex-rs/tui/src/chatwidget/luna_reserve_return.rs create mode 100644 codex-rs/tui/src/chatwidget/tests/luna_reserve_usage_tests.rs create mode 100644 codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_selector_second_choice.snap create mode 100644 codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_narrow.snap create mode 100644 codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_running.snap create mode 100644 codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_wide.snap create mode 100644 codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_with_upsell.snap diff --git a/codex-rs/app-server-protocol/schema/json/ServerNotification.json b/codex-rs/app-server-protocol/schema/json/ServerNotification.json index b15474ffc7..c37466943a 100644 --- a/codex-rs/app-server-protocol/schema/json/ServerNotification.json +++ b/codex-rs/app-server-protocol/schema/json/ServerNotification.json @@ -3415,6 +3415,13 @@ "null" ] }, + "normalModelSlug": { + "description": "Normal model whose display name and reasoning options describe this quota alias.", + "type": [ + "string", + "null" + ] + }, "planType": { "anyOf": [ { diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json index b6f11c36b5..b0867382e5 100644 --- a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json +++ b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.schemas.json @@ -17482,6 +17482,13 @@ "null" ] }, + "normalModelSlug": { + "description": "Normal model whose display name and reasoning options describe this quota alias.", + "type": [ + "string", + "null" + ] + }, "planType": { "anyOf": [ { diff --git a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.v2.schemas.json b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.v2.schemas.json index 90df043826..b5e819cb47 100644 --- a/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.v2.schemas.json +++ b/codex-rs/app-server-protocol/schema/json/codex_app_server_protocol.v2.schemas.json @@ -13554,6 +13554,13 @@ "null" ] }, + "normalModelSlug": { + "description": "Normal model whose display name and reasoning options describe this quota alias.", + "type": [ + "string", + "null" + ] + }, "planType": { "anyOf": [ { diff --git a/codex-rs/app-server-protocol/schema/json/v2/AccountRateLimitsUpdatedNotification.json b/codex-rs/app-server-protocol/schema/json/v2/AccountRateLimitsUpdatedNotification.json index 89466118d6..1f5c3ccabd 100644 --- a/codex-rs/app-server-protocol/schema/json/v2/AccountRateLimitsUpdatedNotification.json +++ b/codex-rs/app-server-protocol/schema/json/v2/AccountRateLimitsUpdatedNotification.json @@ -88,6 +88,13 @@ "null" ] }, + "normalModelSlug": { + "description": "Normal model whose display name and reasoning options describe this quota alias.", + "type": [ + "string", + "null" + ] + }, "planType": { "anyOf": [ { diff --git a/codex-rs/app-server-protocol/schema/json/v2/GetAccountRateLimitsResponse.json b/codex-rs/app-server-protocol/schema/json/v2/GetAccountRateLimitsResponse.json index 1448eaf545..b949ebc32d 100644 --- a/codex-rs/app-server-protocol/schema/json/v2/GetAccountRateLimitsResponse.json +++ b/codex-rs/app-server-protocol/schema/json/v2/GetAccountRateLimitsResponse.json @@ -174,6 +174,13 @@ "null" ] }, + "normalModelSlug": { + "description": "Normal model whose display name and reasoning options describe this quota alias.", + "type": [ + "string", + "null" + ] + }, "planType": { "anyOf": [ { diff --git a/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-experimental.json.zst b/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-experimental.json.zst index 3c223b2cc1535e2c5591b031eb9d66d07ae7e3a6..cedcdc180678feaae4aa9784d77cbdd5704667da 100644 GIT binary patch delta 119542 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 delta 119516 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%0ATA~k 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 NPd5htxcQMgAEB#*f1CgS diff --git a/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-stable.json.zst b/codex-rs/app-server-protocol/schema/precomputed/app-server-exports-stable.json.zst index fc866601b479a2da38fc83c2c6d459a77667c5bc..719e533b6ab1fed3ffb0face4e40f9f3a05ab894 100644 GIT binary patch delta 116277 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%0AFS`aP9SlT+UGPY>vJ1aSYG@Z; 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
O&H{OHLfcl@ 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, pub limit_name: Option, + /// Normal model whose display name and reasoning options describe this quota alias. + pub normal_model_slug: Option, pub primary: Option, pub secondary: Option, pub credits: Option, @@ -600,6 +602,7 @@ impl From for RateLimitSnapshot { Self { limit_id: value.limit_id, limit_name: value.limit_name, + normal_model_slug: value.normal_model_slug, primary: value.primary.map(RateLimitWindow::from), secondary: value.secondary.map(RateLimitWindow::from), credits: value.credits.map(CreditsSnapshot::from), diff --git a/codex-rs/app-server/README.md b/codex-rs/app-server/README.md index f067c2bbec..7c46d1b327 100644 --- a/codex-rs/app-server/README.md +++ b/codex-rs/app-server/README.md @@ -2798,6 +2798,7 @@ Field notes: - `usedPercent` is current usage within the OpenAI quota window. - `windowDurationMins` is the quota window length. - `resetsAt` is a Unix timestamp (seconds) for the next reset. +- `normalModelSlug` optionally identifies the normal model associated with an additional quota, forwarded from `/wham/usage`'s `normal_model_slug`. Clients can use that model's catalog name and reasoning choices without changing the quota alias used for requests. Missing metadata is `null`; it does not grant model access. - `rateLimitReachedType` identifies the backend-classified limit state when one has been reached. - `individualLimit` describes the effective monthly credit limit when available. In an `account/rateLimits/read` response, `null` means no monthly limit is available. In a sparse `account/rateLimits/updated` notification, nullable account metadata may be unavailable and does not clear a previously observed value. - `accountId` identifies the account in the usage snapshot when the backend supplies it. diff --git a/codex-rs/app-server/src/bespoke_event_handling.rs b/codex-rs/app-server/src/bespoke_event_handling.rs index e7017f4fb9..52ef949436 100644 --- a/codex-rs/app-server/src/bespoke_event_handling.rs +++ b/codex-rs/app-server/src/bespoke_event_handling.rs @@ -3845,6 +3845,7 @@ mod tests { let rate_limits = RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 42.5, window_minutes: Some(15), diff --git a/codex-rs/app-server/src/outgoing_message.rs b/codex-rs/app-server/src/outgoing_message.rs index 6624df8230..6904cfb389 100644 --- a/codex-rs/app-server/src/outgoing_message.rs +++ b/codex-rs/app-server/src/outgoing_message.rs @@ -836,6 +836,7 @@ mod tests { rate_limits: RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 25, window_duration_mins: Some(15), @@ -857,6 +858,7 @@ mod tests { "rateLimits": { "limitId": "codex", "limitName": null, + "normalModelSlug": null, "primary": { "usedPercent": 25, "windowDurationMins": 15, diff --git a/codex-rs/app-server/tests/suite/v2/rate_limits.rs b/codex-rs/app-server/tests/suite/v2/rate_limits.rs index 6a9d6064ac..ab29fe850f 100644 --- a/codex-rs/app-server/tests/suite/v2/rate_limits.rs +++ b/codex-rs/app-server/tests/suite/v2/rate_limits.rs @@ -255,6 +255,7 @@ async fn get_account_rate_limits_returns_snapshot( rate_limits: RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 42, window_duration_mins: Some(60), @@ -283,6 +284,7 @@ async fn get_account_rate_limits_returns_snapshot( RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 42, window_duration_mins: Some(60), @@ -312,6 +314,7 @@ async fn get_account_rate_limits_returns_snapshot( RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: Some("codex_other".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 88, window_duration_mins: Some(30), diff --git a/codex-rs/backend-client/src/client.rs b/codex-rs/backend-client/src/client.rs index 0c4f96395f..811bd45d43 100644 --- a/codex-rs/backend-client/src/client.rs +++ b/codex-rs/backend-client/src/client.rs @@ -565,21 +565,30 @@ impl Client { rate_limit_reached_type, )]; if let Some(additional) = payload.additional_rate_limits.flatten() { - snapshots.extend(additional.into_iter().map(|details| { - Self::make_rate_limit_snapshot( - Some(details.metered_feature), - Some(details.limit_name), - details.rate_limit.flatten().map(|rate_limit| *rate_limit), - /*credits*/ None, - /*spend_control*/ None, - plan_type, - /*rate_limit_reached_type*/ None, - ) - })); + snapshots.extend( + additional + .into_iter() + .map(|details| Self::make_additional_rate_limit_snapshot(details, plan_type)), + ); } snapshots } + fn make_additional_rate_limit_snapshot( + details: codex_backend_openapi_models::models::AdditionalRateLimitDetails, + plan_type: Option, + ) -> RateLimitSnapshot { + Self::make_rate_limit_snapshot( + Some(details.metered_feature), + Some(details.limit_name), + details.rate_limit.flatten().map(|rate_limit| *rate_limit), + /*credits*/ None, + /*spend_control*/ None, + plan_type, + /*rate_limit_reached_type*/ None, + ) + } + fn make_rate_limit_snapshot( limit_id: Option, limit_name: Option, @@ -603,6 +612,7 @@ impl Client { RateLimitSnapshot { limit_id, limit_name, + normal_model_slug: None, primary, secondary, credits: Self::map_credits(credits), @@ -953,6 +963,7 @@ mod tests { RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: Some("codex_other".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 90.0, window_minutes: Some(60), @@ -968,6 +979,7 @@ mod tests { RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: Some("codex".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 10.0, window_minutes: Some(60), diff --git a/codex-rs/backend-client/src/client/rate_limit_resets.rs b/codex-rs/backend-client/src/client/rate_limit_resets.rs index 010fd744a4..07a6ecc5dc 100644 --- a/codex-rs/backend-client/src/client/rate_limit_resets.rs +++ b/codex-rs/backend-client/src/client/rate_limit_resets.rs @@ -42,8 +42,22 @@ impl Client { .as_ref() .and_then(|limit| limit.as_deref()) .map(|limit| limit.allowed); + let mut rate_limits = Self::rate_limit_snapshots_from_payload(payload.rate_limits); + let plan_type = rate_limits.first().and_then(|snapshot| snapshot.plan_type); + rate_limits.extend( + payload + .additional_rate_limits + .into_iter() + .flatten() + .map(|limit| { + let mut snapshot = + Self::make_additional_rate_limit_snapshot(limit.details, plan_type); + snapshot.normal_model_slug = limit.normal_model_slug; + snapshot + }), + ); Ok(RateLimitsWithResetCredits { - rate_limits: Self::rate_limit_snapshots_from_payload(payload.rate_limits), + rate_limits, ordinary_usage_allowed, rate_limit_reset_credits: payload.rate_limit_reset_credits, account_id: payload.account_id, diff --git a/codex-rs/backend-client/src/types.rs b/codex-rs/backend-client/src/types.rs index 4e1511c3b3..791f9c4ace 100644 --- a/codex-rs/backend-client/src/types.rs +++ b/codex-rs/backend-client/src/types.rs @@ -56,6 +56,9 @@ pub struct RateLimitsWithResetCredits { pub(crate) struct RateLimitStatusWithResetCredits { #[serde(flatten)] pub rate_limits: RateLimitStatusPayload, + // Capture the new optional metadata alongside the generated quota fields until the + // backend OpenAPI export includes it. This field owns additional_rate_limits on the wire. + pub additional_rate_limits: Option>, pub rate_limit_reset_credits: Option, pub account_id: Option, pub user_id: Option, @@ -63,6 +66,14 @@ pub(crate) struct RateLimitStatusWithResetCredits { pub rate_limit_upsell: Option, } +/// Additional quota details plus the normal model whose picker metadata should be used. +#[derive(Clone, Debug, Deserialize, PartialEq)] +pub(crate) struct AdditionalRateLimitWithNormalModel { + #[serde(flatten)] + pub details: codex_backend_openapi_models::models::AdditionalRateLimitDetails, + pub normal_model_slug: Option, +} + #[derive(Clone, Debug, Deserialize, PartialEq, Eq)] pub struct CodexWorkspaceMessagesResponse { #[serde(default)] diff --git a/codex-rs/codex-api/src/rate_limits.rs b/codex-rs/codex-api/src/rate_limits.rs index d0f936a81f..4fcfc4ccd6 100644 --- a/codex-rs/codex-api/src/rate_limits.rs +++ b/codex-rs/codex-api/src/rate_limits.rs @@ -90,6 +90,7 @@ pub fn parse_rate_limit_for_limit( Some(RateLimitSnapshot { limit_id: Some(normalized_limit_id), limit_name: parsed_limit_name, + normal_model_slug: None, primary, secondary, credits, @@ -156,6 +157,7 @@ pub fn parse_rate_limit_event(payload: &str) -> Option { Some(RateLimitSnapshot { limit_id: Some(limit_id.unwrap_or_else(|| "codex".to_string())), limit_name: None, + normal_model_slug: None, primary, secondary, credits, diff --git a/codex-rs/core/src/session/tests.rs b/codex-rs/core/src/session/tests.rs index 75dd964962..c1b00dfa26 100644 --- a/codex-rs/core/src/session/tests.rs +++ b/codex-rs/core/src/session/tests.rs @@ -4506,6 +4506,7 @@ async fn set_rate_limits_retains_previous_credits() { let initial = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 10.0, window_minutes: Some(15), @@ -4527,6 +4528,7 @@ async fn set_rate_limits_retains_previous_credits() { let update = RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: Some("codex_other".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 40.0, window_minutes: Some(30), @@ -4550,6 +4552,7 @@ async fn set_rate_limits_retains_previous_credits() { Some(RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: Some("codex_other".to_string()), + normal_model_slug: None, primary: update.primary.clone(), secondary: update.secondary, credits: initial.credits, @@ -4622,6 +4625,7 @@ async fn set_rate_limits_updates_plan_type_when_present() { let initial = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 15.0, window_minutes: Some(20), @@ -4647,6 +4651,7 @@ async fn set_rate_limits_updates_plan_type_when_present() { let update = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 35.0, window_minutes: Some(25), @@ -4666,6 +4671,7 @@ async fn set_rate_limits_updates_plan_type_when_present() { Some(RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: None, + normal_model_slug: None, primary: update.primary, secondary: update.secondary, credits: initial.credits, diff --git a/codex-rs/core/src/state/session_tests.rs b/codex-rs/core/src/state/session_tests.rs index 533bd2df26..5d3defeefe 100644 --- a/codex-rs/core/src/state/session_tests.rs +++ b/codex-rs/core/src/state/session_tests.rs @@ -89,6 +89,7 @@ async fn set_rate_limits_defaults_limit_id_to_codex_when_missing() { state.set_rate_limits(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 12.0, window_minutes: Some(60), @@ -135,6 +136,7 @@ async fn set_rate_limits_defaults_to_codex_when_limit_id_missing_after_other_buc state.set_rate_limits(RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: Some("codex_other".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 20.0, window_minutes: Some(60), @@ -150,6 +152,7 @@ async fn set_rate_limits_defaults_to_codex_when_limit_id_missing_after_other_buc state.set_rate_limits(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 30.0, window_minutes: Some(60), @@ -180,6 +183,7 @@ async fn set_rate_limits_carries_account_metadata_from_codex_to_codex_other() { state.set_rate_limits(RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: Some("codex".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 10.0, window_minutes: Some(60), @@ -205,6 +209,7 @@ async fn set_rate_limits_carries_account_metadata_from_codex_to_codex_other() { state.set_rate_limits(RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 30.0, window_minutes: Some(120), @@ -223,6 +228,7 @@ async fn set_rate_limits_carries_account_metadata_from_codex_to_codex_other() { Some(RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 30.0, window_minutes: Some(120), @@ -249,6 +255,7 @@ async fn set_rate_limits_carries_account_metadata_from_codex_to_codex_other() { state.set_rate_limits(RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: None, diff --git a/codex-rs/memories/write/src/guard_tests.rs b/codex-rs/memories/write/src/guard_tests.rs index 551f36a52b..5271070cc6 100644 --- a/codex-rs/memories/write/src/guard_tests.rs +++ b/codex-rs/memories/write/src/guard_tests.rs @@ -8,6 +8,7 @@ fn snapshot( RateLimitSnapshot { limit_id: Some(crate::guard_limits::CODEX_LIMIT_ID.to_string()), limit_name: None, + normal_model_slug: None, primary: primary_used_percent.map(window), secondary: secondary_used_percent.map(window), credits: None, diff --git a/codex-rs/protocol/src/error.rs b/codex-rs/protocol/src/error.rs index 1b4cf067fc..be0192f61a 100644 --- a/codex-rs/protocol/src/error.rs +++ b/codex-rs/protocol/src/error.rs @@ -650,6 +650,8 @@ pub struct UsageLimitReachedError { impl std::fmt::Display for UsageLimitReachedError { fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + // Reserve is a fallback for exhausted ordinary usage, so keep the standard + // promo/plan recovery copy below instead of suggesting another model. if let Some(limit_name) = self .rate_limits .as_ref() @@ -657,6 +659,7 @@ impl std::fmt::Display for UsageLimitReachedError { .map(str::trim) .filter(|name| !name.is_empty()) && !limit_name.eq_ignore_ascii_case("codex") + && !limit_name.eq_ignore_ascii_case("gpt-reserve") { return write!( f, diff --git a/codex-rs/protocol/src/error_tests.rs b/codex-rs/protocol/src/error_tests.rs index 2590994653..ca0b7b2cff 100644 --- a/codex-rs/protocol/src/error_tests.rs +++ b/codex-rs/protocol/src/error_tests.rs @@ -88,6 +88,7 @@ fn rate_limit_snapshot() -> RateLimitSnapshot { RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 50.0, window_minutes: Some(60), diff --git a/codex-rs/protocol/src/protocol.rs b/codex-rs/protocol/src/protocol.rs index ae2107b801..66e431551d 100644 --- a/codex-rs/protocol/src/protocol.rs +++ b/codex-rs/protocol/src/protocol.rs @@ -2324,6 +2324,9 @@ pub struct TokenCountEvent { pub struct RateLimitSnapshot { pub limit_id: Option, pub limit_name: Option, + /// Normal model metadata for a quota alias; never a replacement for the request model. + #[serde(default, skip_serializing_if = "Option::is_none")] + pub normal_model_slug: Option, pub primary: Option, pub secondary: Option, pub credits: Option, diff --git a/codex-rs/thread-store/src/local/thread_history_materialization_tests.rs b/codex-rs/thread-store/src/local/thread_history_materialization_tests.rs index 1a5a43d9b2..3ed9c360d9 100644 --- a/codex-rs/thread-store/src/local/thread_history_materialization_tests.rs +++ b/codex-rs/thread-store/src/local/thread_history_materialization_tests.rs @@ -1728,6 +1728,7 @@ async fn paginated_projection_accepts_float_rate_limits_and_later_final_answers( rate_limits: Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: primary.map(|used_percent| RateLimitWindow { used_percent, window_minutes: Some(60), diff --git a/codex-rs/tui/src/app/backend_banner_fallback.rs b/codex-rs/tui/src/app/backend_banner_fallback.rs index 287112d0a1..96f355cdc8 100644 --- a/codex-rs/tui/src/app/backend_banner_fallback.rs +++ b/codex-rs/tui/src/app/backend_banner_fallback.rs @@ -1,27 +1,71 @@ -//! Apply an accepted account usage response to the currently selected task and model. +//! Apply backend-authorized fallback and task-local Reserve settings without saving defaults. use super::App; use crate::app_server_session::AppServerSession; +use crate::chatwidget::AutomaticModelSwitchReason; +use crate::model_catalog::LUNA_RESERVE_MODEL; +use crate::model_catalog::model_display_name; use crate::service_tier_resolution; use codex_app_server_protocol::ThreadSettingsUpdateParams; +use codex_protocol::ThreadId; +use codex_protocol::config_types::ModeKind; +use codex_protocol::openai_models::ReasoningEffort; impl App { + pub(super) async fn update_luna_reserve_reasoning( + &mut self, + app_server: &mut AppServerSession, + thread_id: ThreadId, + effort: Option, + ) { + // A picker left open during recovery or a task switch must not affect the new model. + if self.active_thread_id != Some(thread_id) + || self.chat_widget.thread_id() != Some(thread_id) + || self.chat_widget.current_model() != LUNA_RESERVE_MODEL + { + return; + } + let mut mode = self.chat_widget.effective_collaboration_mode(); + mode.settings.reasoning_effort = effort.clone(); + let params = ThreadSettingsUpdateParams { + thread_id: thread_id.to_string(), + effort: effort.clone(), + collaboration_mode: Some(mode.clone()), + ..ThreadSettingsUpdateParams::default() + }; + if self.send_thread_settings_update(app_server, params).await { + self.chat_widget.set_reasoning_effort(effort.clone()); + if mode.mode == ModeKind::Plan { + self.chat_widget.set_plan_mode_reasoning_effort(effort); + } + } + } + pub(super) async fn apply_backend_banner_fallback( &mut self, app_server: &mut AppServerSession, ) { + // Reattached tasks must wait for the read that supersedes the latest hard stop. + if self.rate_limit_refresh_state.has_pending_recovery() { + return; + } let Some(thread_id) = self.active_thread_id else { return; }; if Some(thread_id) != self.chat_widget.thread_id() { return; } - let Some(target) = self.chat_widget.backend_banner_fallback() else { + let Some(switch) = self.chat_widget.backend_banner_fallback() else { return; }; - let effort = self - .chat_widget - .current_reasoning_effort() + let target = switch.model; + let entering_reserve = target.model == crate::model_catalog::LUNA_RESERVE_MODEL; + if entering_reserve && !self.chat_widget.prepare_luna_reserve_return() { + self.chat_widget.show_unavailable_reserve_recovery(); + return; + } + let effort = switch + .effort .filter(|effort| { target .supported_reasoning_efforts @@ -53,13 +97,24 @@ impl App { self.chat_widget.finish_backend_banner_fallback(mode); self.sync_active_thread_service_tier_to_cached_session() .await; - let mut message = format!("Automatically switched to {}", target.model); + let (prefix, suffix) = match switch.reason { + AutomaticModelSwitchReason::UsageLimit => { + ("Automatically switched to", " due to usage limits.") + } + AutomaticModelSwitchReason::UsageRecovered => ( + "Automatically switched back to", + " because ordinary usage is available again.", + ), + }; + let mut message = format!("{prefix} {}", model_display_name(&target.model)); if let Some(label) = Self::reasoning_label_for(&target.model, Some(&effort)) { message.push(' '); message.push_str(&label); } - message.push_str(" due to usage limits."); + message.push_str(suffix); self.chat_widget.add_info_message(message, /*hint*/ None); + } else if entering_reserve { + self.chat_widget.show_unavailable_reserve_recovery(); } } } diff --git a/codex-rs/tui/src/app/background_requests.rs b/codex-rs/tui/src/app/background_requests.rs index c39f5c6375..6ce76cebb1 100644 --- a/codex-rs/tui/src/app/background_requests.rs +++ b/codex-rs/tui/src/app/background_requests.rs @@ -14,6 +14,7 @@ use codex_app_server_protocol::AppsListParams; use codex_app_server_protocol::AppsListResponse; use codex_app_server_protocol::ConsumeAccountRateLimitResetCreditParams; use codex_app_server_protocol::ConsumeAccountRateLimitResetCreditResponse; +use codex_app_server_protocol::GetAccountRateLimitsParams; use codex_app_server_protocol::GetAccountTokenUsageParams; use codex_app_server_protocol::GetAccountTokenUsageResponse; use codex_app_server_protocol::MarketplaceAddParams; @@ -85,6 +86,7 @@ impl App { origin, RateLimitRefreshOrigin::Recovery | RateLimitRefreshOrigin::ResetConsume { .. } ) { + self.chat_widget.invalidate_ordinary_usage_recovery(); self.chat_widget.hold_rate_limit_recovery(); } let Some((request_id, hard_stop_generation)) = self @@ -96,9 +98,10 @@ impl App { let request_handle = app_server.request_handle(); let app_event_tx = self.app_event_tx.clone(); tokio::spawn(async move { - let request = fetch_account_rate_limits(request_handle); + let request = fetch_account_rate_limits(request_handle, origin); let result = match origin { RateLimitRefreshOrigin::Recovery + | RateLimitRefreshOrigin::Periodic | RateLimitRefreshOrigin::ResetConsume { .. } | RateLimitRefreshOrigin::ResetPicker { .. } => { tokio::time::timeout(RATE_LIMIT_RESET_REQUEST_TIMEOUT, request) @@ -798,15 +801,34 @@ pub(super) async fn fetch_all_mcp_server_statuses( pub(super) async fn fetch_account_rate_limits( request_handle: AppServerRequestHandle, + origin: RateLimitRefreshOrigin, ) -> Result { let request_id = RequestId::String(format!("account-rate-limits-{}", Uuid::new_v4())); - request_handle + let result = request_handle .request_typed(ClientRequest::GetAccountRateLimits { - request_id, - params: None, + request_id: request_id.clone(), + params: Some(GetAccountRateLimitsParams { + supports_luna_reserve: true, + exclude_reset_credit_details: origin == RateLimitRefreshOrigin::Periodic, + }), }) - .await - .wrap_err("account/rateLimits/read failed in TUI") + .await; + // Older remote app servers accept only null params. Keep their usage reads working + // without opting them into exposure or pretending that they support the new capability. + if matches!( + &result, + Err(codex_app_server_client::TypedRequestError::Server { source, .. }) + if matches!(source.code, -32600 | -32602) + ) { + return request_handle + .request_typed(ClientRequest::GetAccountRateLimits { + request_id, + params: None, + }) + .await + .wrap_err("account/rateLimits/read failed in TUI"); + } + result.wrap_err("account/rateLimits/read failed in TUI") } pub(super) async fn fetch_account_token_activity( diff --git a/codex-rs/tui/src/app/event_dispatch.rs b/codex-rs/tui/src/app/event_dispatch.rs index 7e4c8cf877..4e94ec6819 100644 --- a/codex-rs/tui/src/app/event_dispatch.rs +++ b/codex-rs/tui/src/app/event_dispatch.rs @@ -721,7 +721,16 @@ impl App { AppEvent::FatalExitRequest(message) => { return Ok(AppRunControl::Exit(ExitReason::Fatal(message))); } - AppEvent::CodexOp(op) => { + AppEvent::CodexOp(mut op) => { + if self.active_thread_id == self.chat_widget.thread_id() { + if matches!(&op, AppCommand::UserTurn { .. }) + && self.chat_widget.defer_pending_turn_for_luna_reserve() + { + return Ok(AppRunControl::Continue); + } + self.chat_widget + .apply_reserve_fallback_to_pending_turn(&mut op); + } let is_user_turn = matches!(&op, AppCommand::UserTurn { .. }); if is_user_turn { let screen_size = tui.terminal.last_known_screen_size; @@ -1219,6 +1228,17 @@ impl App { AppEvent::RefreshRateLimits { origin } => { self.refresh_rate_limits(app_server, origin); } + AppEvent::ApplyBackendBannerFallback { thread_id } => { + if self.active_thread_id == Some(thread_id) + && self.chat_widget.thread_id() == Some(thread_id) + { + self.apply_backend_banner_fallback(app_server).await; + if !self.rate_limit_refresh_state.has_pending_recovery() { + self.chat_widget.finish_rate_limit_recovery(); + } + self.refresh_rate_limits(app_server, RateLimitRefreshOrigin::Periodic); + } + } AppEvent::RefreshTokenActivity { request_id } => { self.refresh_token_activity(app_server, request_id); } @@ -1300,7 +1320,7 @@ impl App { Vec::new() }; match origin { - RateLimitRefreshOrigin::Recovery => { + RateLimitRefreshOrigin::Recovery | RateLimitRefreshOrigin::Periodic => { for snapshot in snapshots { self.chat_widget.on_rate_limit_snapshot(Some(snapshot)); } @@ -1361,7 +1381,11 @@ impl App { // A failed read is not authoritative recovery. Keep the last valid banner. tracing::warn!("account/rateLimits/read failed during TUI refresh: {err}"); match origin { - RateLimitRefreshOrigin::Recovery => {}, + RateLimitRefreshOrigin::Recovery | RateLimitRefreshOrigin::Periodic => { + // Re-evaluate snapshot age even when the backend cannot refresh it. + // This updates display freshness without authorizing model recovery. + self.chat_widget.refresh_status_surfaces(); + }, RateLimitRefreshOrigin::StartupPrefetch { reset_hint_request_id, } => { @@ -1399,10 +1423,10 @@ impl App { } } } - if matches!( + if (accepted || matches!( origin, RateLimitRefreshOrigin::Recovery | RateLimitRefreshOrigin::ResetConsume { .. } - ) && !self.rate_limit_refresh_state.has_pending_recovery() + )) && !self.rate_limit_refresh_state.has_pending_recovery() { self.chat_widget.finish_rate_limit_recovery(); } @@ -1541,6 +1565,10 @@ impl App { self.sync_active_thread_reasoning_setting(app_server, effort) .await; } + AppEvent::UpdateLunaReserveReasoning { thread_id, effort } => { + self.update_luna_reserve_reasoning(app_server, thread_id, effort) + .await; + } AppEvent::UpdateModel(model) => { let model_changed = self.chat_widget.current_model() != model || self.chat_widget.current_collaboration_mode().model() != model; diff --git a/codex-rs/tui/src/app/rate_limit_refresh.rs b/codex-rs/tui/src/app/rate_limit_refresh.rs index 51828e8d95..29a478a013 100644 --- a/codex-rs/tui/src/app/rate_limit_refresh.rs +++ b/codex-rs/tui/src/app/rate_limit_refresh.rs @@ -1,12 +1,17 @@ //! Orders full usage reads and coalesces recovery refreshes within an account/limit generation. +//! Periodic reads share that ordering and wait while another periodic read or recovery is pending. use crate::app_event::RateLimitRefreshOrigin; +use std::time::Duration; +use std::time::Instant; #[derive(Default)] pub(super) struct RateLimitRefreshState { next_id: u64, applied_id: u64, recovery: Option, + periodic: Option<(u64, u64)>, + last_requested_at: Option, } struct PendingRecovery { @@ -28,6 +33,17 @@ pub(super) enum RateLimitReadStatus { } impl RateLimitRefreshState { + pub(super) fn poll_deadline(&self, interval: Duration) -> Option { + if self.periodic.is_some() || self.recovery.is_some() { + return None; + } + Some( + self.last_requested_at + .map(|last| last + interval) + .unwrap_or_else(Instant::now), + ) + } + pub(super) fn has_pending_recovery(&self) -> bool { self.recovery.is_some() } @@ -37,6 +53,11 @@ impl RateLimitRefreshState { origin: RateLimitRefreshOrigin, generation: &mut u64, ) -> Option<(u64, u64)> { + if origin == RateLimitRefreshOrigin::Periodic + && (self.periodic.is_some() || self.recovery.is_some()) + { + return None; + } if matches!(origin, RateLimitRefreshOrigin::Recovery) { // A new hard error supersedes a post-reset read that started before the error. if self @@ -51,6 +72,10 @@ impl RateLimitRefreshState { } self.next_id = self.next_id.wrapping_add(1); let request = (self.next_id, *generation); + self.last_requested_at = Some(Instant::now()); + if origin == RateLimitRefreshOrigin::Periodic { + self.periodic = Some(request); + } // The post-reset read takes over the hold from the invalidated recovery request. if matches!( origin, @@ -64,6 +89,8 @@ impl RateLimitRefreshState { // Account changes and successful resets invalidate the need as well as the old response. pub(super) fn invalidate_recovery(&mut self) { self.recovery = None; + self.periodic = None; + self.last_requested_at = None; } pub(super) fn finish( @@ -73,6 +100,14 @@ impl RateLimitRefreshState { current_generation: u64, status: RateLimitReadStatus, ) -> RateLimitRefreshOutcome { + if self.periodic == Some((request_id, generation)) { + self.periodic = None; + } + if generation == current_generation && request_id == self.next_id { + // Completion starts the next wait, including after failures/timeouts, so errors + // cannot create a tight retry loop while the account is nearly exhausted. + self.last_requested_at = Some(Instant::now()); + } if self .recovery .as_ref() diff --git a/codex-rs/tui/src/app/startup.rs b/codex-rs/tui/src/app/startup.rs index 29bcd42b41..e08e3fad6f 100644 --- a/codex-rs/tui/src/app/startup.rs +++ b/codex-rs/tui/src/app/startup.rs @@ -765,6 +765,10 @@ See the Codex keymap documentation for supported actions and examples." && has_pending_app_events || (!waiting_for_initial_session_configured && app.has_queued_startup_protected_request()); + let rate_limit_poll_deadline = app + .chat_widget + .rate_limit_refresh_interval() + .and_then(|interval| app.rate_limit_refresh_state.poll_deadline(interval)); let control = select! { Some(event) = app_event_rx.recv() => { let is_initial_session_header = matches!( @@ -873,6 +877,17 @@ See the Codex keymap documentation for supported actions and examples." } AppRunControl::Continue } + () = async { + match rate_limit_poll_deadline { + Some(deadline) => { + tokio::time::sleep_until(tokio::time::Instant::from_std(deadline)).await; + } + None => std::future::pending().await, + } + }, if listen_for_app_server_events => { + app.refresh_rate_limits(&app_server, RateLimitRefreshOrigin::Periodic); + AppRunControl::Continue + } () = async { match app.chat_widget.terminal_title_next_refresh { Some(deadline) => { diff --git a/codex-rs/tui/src/app/tests.rs b/codex-rs/tui/src/app/tests.rs index e57a84f6e0..41fb39c9a1 100644 --- a/codex-rs/tui/src/app/tests.rs +++ b/codex-rs/tui/src/app/tests.rs @@ -20,6 +20,8 @@ mod connector_policy; mod disconnect; #[path = "tests/key_chords.rs"] mod key_chords; +#[path = "tests/luna_reserve_recovery_tests.rs"] +mod luna_reserve_recovery_tests; #[path = "tests/mcp_startup.rs"] mod mcp_startup; mod model_catalog; diff --git a/codex-rs/tui/src/app/tests/backend_banner_fallback_tests.rs b/codex-rs/tui/src/app/tests/backend_banner_fallback_tests.rs index c353384fb0..72f8550f71 100644 --- a/codex-rs/tui/src/app/tests/backend_banner_fallback_tests.rs +++ b/codex-rs/tui/src/app/tests/backend_banner_fallback_tests.rs @@ -29,7 +29,7 @@ fn configure_fallback_model(app: &mut App) { app.chat_widget.set_model("gpt-5.4"); } -async fn start_fallback_thread( +pub(super) async fn start_fallback_thread( app: &mut App, ) -> Result { let (mut server, requests, proxy) = session_lifecycle_requests::start_recording_app_server( @@ -268,13 +268,22 @@ async fn backend_banner_fallback_handles_settings_failure_and_queued_manual_sele use futures::StreamExt; use tokio_tungstenite::tungstenite::Message; - for error_code in [Some(-32601), Some(-32603), None] { + for (use_reserve, error_code) in [false, true] + .into_iter() + .flat_map(|reserve| [Some(-32601), Some(-32603), None].map(|error| (reserve, error))) + { let (mut app, mut events, _ops) = make_test_app_with_channels().await; let id = ThreadId::new(); app.active_thread_id = Some(id); app.chat_widget .handle_thread_session(test_thread_session(id, app.config.cwd.to_path_buf())); - configure_fallback_model(&mut app); + if use_reserve { + app.primary_session_configured = + Some(test_thread_session(id, app.config.cwd.to_path_buf())); + super::luna_reserve_recovery_tests::configure_reserve_catalog(&mut app); + } else { + configure_fallback_model(&mut app); + } let listener = tokio::net::TcpListener::bind("127.0.0.1:0").await?; let websocket_url = format!("ws://{}", listener.local_addr()?); let codex_home = app.config.codex_home.display().to_string(); @@ -322,7 +331,25 @@ async fn backend_banner_fallback_handles_settings_failure_and_queued_manual_sele crate::app_server_session::ThreadParamsMode::Embedded, ); while events.try_recv().is_ok() {} - app.chat_widget.update_backend_banner(&fallback_response()); + let pending_turn = if use_reserve && error_code.is_some() { + app.chat_widget + .restore_user_message_to_composer(UserMessage::from("queued before usage reply")); + app.chat_widget + .handle_key_event(KeyEvent::from(KeyCode::Enter)); + Some( + std::iter::from_fn(|| events.try_recv().ok()) + .find(|event| matches!(event, AppEvent::CodexOp(AppCommand::UserTurn { .. }))) + .expect("turn already queued before the failed switch"), + ) + } else { + None + }; + let response = if use_reserve { + super::luna_reserve_recovery_tests::reserve_response() + } else { + fallback_response() + }; + app.chat_widget.update_backend_banner(&response); app.apply_backend_banner_fallback(&mut server).await; let queued = std::iter::from_fn(|| events.try_recv().ok()).collect::>(); let switch_notices = queued @@ -337,7 +364,14 @@ async fn backend_banner_fallback_handles_settings_failure_and_queued_manual_sele .count(); assert_eq!(switch_notices, usize::from(error_code.is_none())); if error_code.is_none() { - assert_eq!(app.chat_widget.current_model(), "gpt-5.2"); + assert_eq!( + app.chat_widget.current_model(), + if use_reserve { + "gpt-reserve" + } else { + "gpt-5.2" + } + ); let manual_selection = queued .into_iter() .find(|event| matches!(event, AppEvent::UpdateModel(_))) @@ -348,6 +382,43 @@ async fn backend_banner_fallback_handles_settings_failure_and_queued_manual_sele } assert_eq!(app.chat_widget.current_model(), "gpt-5.4"); assert!(!render_bottom_popup(&app.chat_widget, /*width*/ 72).contains("View usage")); + if use_reserve && error_code.is_some() { + let rendered = render_bottom_popup(&app.chat_widget, /*width*/ 90); + assert!(rendered.contains("Add credits")); + assert!(!rendered.contains("You’re now using Luna")); + if error_code == Some(-32601) { + insta::assert_snapshot!( + "luna_reserve_settings_unavailable", + normalize_snapshot_paths(rendered) + ); + } + app.chat_widget + .handle_key_event(KeyEvent::new(KeyCode::Char('1'), KeyModifiers::NONE)); + assert!( + std::iter::from_fn(|| events.try_recv().ok()) + .any(|event| matches!(event, AppEvent::OpenUrlInBrowser { .. })) + ); + let mut tui = crate::tui::test_support::make_test_tui()?; + app.handle_event(&mut tui, &mut server, pending_turn.unwrap()) + .await?; + assert_eq!( + app.chat_widget.queued_user_message_texts(), + vec!["queued before usage reply"] + ); + app.chat_widget.finish_rate_limit_recovery(); + app.chat_widget + .restore_user_message_to_composer(UserMessage::from("after recovery")); + app.chat_widget + .handle_key_event(KeyEvent::from(KeyCode::Enter)); + assert_eq!( + app.chat_widget.queued_user_message_texts(), + vec!["queued before usage reply", "after recovery"] + ); + assert!( + !std::iter::from_fn(|| events.try_recv().ok()) + .any(|event| matches!(event, AppEvent::CodexOp(AppCommand::UserTurn { .. }))) + ); + } server.shutdown().await?; fake.await??; } diff --git a/codex-rs/tui/src/app/tests/backend_banner_recovery_tests.rs b/codex-rs/tui/src/app/tests/backend_banner_recovery_tests.rs index cf5f7113f6..60d8639af6 100644 --- a/codex-rs/tui/src/app/tests/backend_banner_recovery_tests.rs +++ b/codex-rs/tui/src/app/tests/backend_banner_recovery_tests.rs @@ -42,6 +42,85 @@ async fn next_rate_limits_loaded( ) } +#[tokio::test] +async fn luna_reserve_periodic_refresh_adapts_without_an_experiment_banner() -> Result<()> { + let backend = MockServer::start().await; + let home = tempdir()?; + write_chatgpt_auth( + home.path(), + ChatGptAuthFixture::new("local-test-token") + .account_id("workspace-a") + .chatgpt_user_id("user-a") + .plan_type("plus"), + AuthCredentialsStoreMode::File, + ) + .expect("write synthetic auth"); + std::fs::write( + home.path().join("config.toml"), + format!( + "chatgpt_base_url = {:?}\ncli_auth_credentials_store = \"file\"\n", + backend.uri() + ), + )?; + let (mut app, mut events, _ops) = make_test_app_with_channels().await; + app.config.codex_home = home.path().to_path_buf().abs(); + app.config.chatgpt_base_url = backend.uri(); + app.config.sqlite = codex_state::SqliteConfig::new_for_testing(home.path().abs()); + set_chatgpt_auth(&mut app.chat_widget); + let mut session = Box::pin(crate::start_embedded_app_server_for_picker(&app.config)).await?; + let mut tui = crate::tui::test_support::make_test_tui()?; + for (used, seconds) in [(10, 60), (75, 30), (90, 15), (99, 5), (20, 60)] { + backend.reset().await; + Mock::given(method("GET")) + .and(path("/api/codex/usage")) + .respond_with(ResponseTemplate::new(/*s*/ 200).set_body_json(json!({ + "account_id": "workspace-a", "user_id": "user-a", "plan_type": "plus", + "rate_limit": {"allowed": true, "limit_reached": false, + "primary_window": {"used_percent": used, "limit_window_seconds": 18000, + "reset_after_seconds": 1800, "reset_at": 2000000000}}, + "rate_limit_reset_credits": {"available_count": 1} + }))) + .expect(/*r*/ 1) + .mount(&backend) + .await; + Mock::given(method("GET")) + .and(path("/api/codex/rate-limit-reset-credits")) + .respond_with(ResponseTemplate::new(/*s*/ 200)) + .expect(/*r*/ 0) + .mount(&backend) + .await; + app.refresh_rate_limits(&session, RateLimitRefreshOrigin::Periodic); + // A second timer tick while this RPC is pending must not add another request. + app.refresh_rate_limits(&session, RateLimitRefreshOrigin::Periodic); + assert!( + app.rate_limit_refresh_state + .poll_deadline(Duration::from_secs(/*secs*/ 60)) + .is_none() + ); + let loaded = next_rate_limits_loaded(&mut events).await?; + assert_matches!(&loaded, AppEvent::RateLimitsLoaded { result: Ok(_), .. }); + let before = std::time::Instant::now(); + app.handle_event(&mut tui, &mut session, loaded).await?; + let after = std::time::Instant::now(); + let interval = app.chat_widget.rate_limit_refresh_interval().unwrap(); + assert_eq!(interval, Duration::from_secs(seconds)); + let deadline = app + .rate_limit_refresh_state + .poll_deadline(interval) + .unwrap(); + assert!(deadline >= before + interval && deadline <= after + interval); + let requests = backend.received_requests().await.unwrap(); + let usage = requests + .iter() + .find(|request| request.url.path() == "/api/codex/usage") + .unwrap(); + assert!(usage.headers.contains_key("x-openai-codex-luna-reserve")); + backend.verify().await; + } + session.shutdown().await?; + Ok(()) +} + #[tokio::test] async fn backend_banner_limit_error_refreshes_again_after_intervening_rolling_hard_stop() -> Result<()> { diff --git a/codex-rs/tui/src/app/tests/luna_reserve_recovery_tests.rs b/codex-rs/tui/src/app/tests/luna_reserve_recovery_tests.rs new file mode 100644 index 0000000000..9545a95469 --- /dev/null +++ b/codex-rs/tui/src/app/tests/luna_reserve_recovery_tests.rs @@ -0,0 +1,382 @@ +//! Verify Reserve recovery through accepted usage reads and the task settings RPC. + +use super::*; +use crate::chatwidget::UserMessage; +use codex_app_server_protocol::GetAccountRateLimitsResponse; +use codex_app_server_protocol::ThreadSettingsUpdateParams; +use pretty_assertions::assert_eq; +use serde_json::json; + +pub(super) fn reserve_response() -> GetAccountRateLimitsResponse { + serde_json::from_value(json!({ + "accountId": "workspace-a", "ordinaryUsageAllowed": false, + "rateLimits": {"limitId": "codex", "primary": {"usedPercent": 100}}, + "rateLimitsByLimitId": {"base_model_inference": { + "limitId": "base_model_inference", "limitName": "gpt-reserve", + "primary": {"usedPercent": 48, "windowDurationMins": 10080} + }}, + "rateLimitUpsell": { + "banner_type": "luna_reserve", "presentation": "dismissible", + "title": "You’re now using Luna, a faster model for simpler tasks.", + "description": "Add credits or upgrade to continue using the most advanced models.", + "ctas": [{"action": "add_credits", "label": "Add credits"}] + } + })) + .unwrap() +} + +pub(super) fn configure_reserve_catalog(app: &mut App) { + let mut models = app.model_catalog.try_list_models().unwrap(); + let mut reserve = models + .iter() + .find(|model| model.model == "gpt-5.4") + .unwrap() + .clone(); + reserve.model = "gpt-reserve".into(); + reserve.show_in_picker = false; + models.push(reserve); + let original = models + .iter_mut() + .find(|model| model.model == "gpt-5.4") + .unwrap(); + let mut high = original.supported_reasoning_efforts[0].clone(); + high.effort = ReasoningEffortConfig::High; + original.supported_reasoning_efforts.push(high); + app.model_catalog = Arc::new(ModelCatalog::new(models)); + let mut tui = crate::tui::test_support::make_test_tui().unwrap(); + let mut init = app.chatwidget_init_for_forked_or_resumed_thread( + &mut tui, + app.config.clone(), + /*initial_user_message*/ None, + ); + init.has_chatgpt_account = true; + init.has_codex_backend_auth = true; + app.replace_chat_widget(ChatWidget::new_with_app_event(init)); + app.chat_widget + .handle_thread_session(app.primary_session_configured.clone().unwrap()); + app.chat_widget.set_model("gpt-5.4"); +} + +#[tokio::test] +async fn luna_reserve_recovery_survives_task_reconstruction() -> Result<()> { + let (mut app, _events, _ops) = make_test_app_with_channels().await; + let (mut server, requests, proxy) = + backend_banner_fallback_tests::start_fallback_thread(&mut app).await?; + configure_reserve_catalog(&mut app); + app.chat_widget + .set_reasoning_effort(Some(ReasoningEffortConfig::High)); + app.chat_widget.update_backend_banner(&reserve_response()); + app.apply_backend_banner_fallback(&mut server).await; + let mut resumed = app.primary_session_configured.clone().unwrap(); + resumed.model = "gpt-reserve".into(); + resumed.collaboration_mode = Some(Box::new(app.chat_widget.effective_collaboration_mode())); + let mut tui = crate::tui::test_support::make_test_tui()?; + let mut init = app.chatwidget_init_for_forked_or_resumed_thread( + &mut tui, + app.config.clone(), + /*initial_user_message*/ None, + ); + init.has_chatgpt_account = true; + init.has_codex_backend_auth = true; + // No in-memory transition state is inherited: resume must recover the persisted target. + app.replace_chat_widget(ChatWidget::new_with_app_event(init)); + app.chat_widget.handle_thread_session(resumed); + assert_eq!(app.chat_widget.current_model(), "gpt-reserve"); + let mut recovered = reserve_response(); + recovered.ordinary_usage_allowed = Some(true); + recovered.rate_limit_upsell = None; + app.chat_widget.update_backend_banner(&recovered); + app.apply_backend_banner_fallback(&mut server).await; + assert_eq!(app.chat_widget.current_model(), "gpt-5.4"); + assert_eq!( + app.chat_widget.current_reasoning_effort(), + Some(ReasoningEffortConfig::High) + ); + assert_eq!( + requests + .lock() + .unwrap() + .iter() + .filter(|request| request.method == "thread/settings/update") + .count(), + 2 + ); + assert!( + !app.config + .codex_home + .join("tui-luna-reserve") + .join(format!("{}.json", app.active_thread_id.unwrap())) + .exists() + ); + server.shutdown().await?; + proxy.await??; + Ok(()) +} + +#[tokio::test] +async fn luna_reserve_entry_dispatches_an_already_queued_turn_with_accepted_settings() -> Result<()> +{ + for mode in [ModeKind::Default, ModeKind::Plan] { + let (mut app, mut events, _ops) = make_test_app_with_channels().await; + let (mut server, requests, proxy) = + backend_banner_fallback_tests::start_fallback_thread(&mut app).await?; + configure_reserve_catalog(&mut app); + app.chat_widget + .set_feature_enabled(Feature::FastMode, /*enabled*/ true); + app.chat_widget.set_service_tier(Some("fast".into())); + if mode == ModeKind::Plan { + app.chat_widget + .handle_key_event(KeyEvent::from(KeyCode::BackTab)); + } + app.chat_widget + .restore_user_message_to_composer(UserMessage::from("continue")); + app.chat_widget + .handle_key_event(KeyEvent::from(KeyCode::Enter)); + let pending = std::iter::from_fn(|| events.try_recv().ok()) + .find(|event| matches!(event, AppEvent::CodexOp(AppCommand::UserTurn { .. }))) + .expect("queued turn before the usage response"); + requests.lock().unwrap().clear(); + let mut tui = crate::tui::test_support::make_test_tui()?; + let generation = app.rate_limit_hard_stop_generation; + app.handle_event( + &mut tui, + &mut server, + AppEvent::RateLimitsLoaded { + request_id: 1, + origin: RateLimitRefreshOrigin::Periodic, + hard_stop_generation: generation, + result: Ok(reserve_response()), + }, + ) + .await?; + app.handle_event(&mut tui, &mut server, pending).await?; + let sent = requests.lock().unwrap().clone(); + let methods: Vec<_> = sent.iter().map(|request| request.method.as_str()).collect(); + assert_eq!(methods, ["thread/settings/update", "turn/start"]); + let settings: ThreadSettingsUpdateParams = + serde_json::from_value(sent[0].params.clone().unwrap())?; + let turn: codex_app_server_protocol::TurnStartParams = + serde_json::from_value(sent[1].params.clone().unwrap())?; + assert_eq!( + ( + turn.model, + turn.effort, + turn.service_tier, + turn.collaboration_mode + ), + ( + settings.model, + settings.effort, + settings.service_tier, + settings.collaboration_mode + ) + ); + assert_eq!(app.chat_widget.effective_collaboration_mode().mode, mode); + server.shutdown().await?; + proxy.await??; + } + Ok(()) +} + +#[tokio::test] +async fn luna_reserve_recovery_restores_task_and_pending_turn_after_fresh_backend_read() +-> Result<()> { + for has_credits in [false, true] { + let (mut app, mut events, _ops) = make_test_app_with_channels().await; + let (mut server, requests, proxy) = + backend_banner_fallback_tests::start_fallback_thread(&mut app).await?; + configure_reserve_catalog(&mut app); + app.chat_widget + .set_feature_enabled(Feature::FastMode, /*enabled*/ false); + app.chat_widget + .set_reasoning_effort(Some(ReasoningEffortConfig::High)); + let original_mode = app.chat_widget.effective_collaboration_mode(); + let config_path = app.config.codex_home.join("config.toml"); + let saved_config = std::fs::read(&config_path).ok(); + let mut tui = crate::tui::test_support::make_test_tui()?; + requests.lock().unwrap().clear(); + let generation = app.rate_limit_hard_stop_generation; + app.handle_event( + &mut tui, + &mut server, + AppEvent::RateLimitsLoaded { + request_id: 1, + origin: RateLimitRefreshOrigin::Periodic, + hard_stop_generation: generation, + result: Ok(reserve_response()), + }, + ) + .await?; + assert_eq!(app.chat_widget.current_model(), "gpt-reserve"); + + // A prompt composed before the next accepted read must use the recovered model, once. + app.chat_widget + .handle_key_event(KeyEvent::from(KeyCode::Esc)); + app.chat_widget + .restore_user_message_to_composer(UserMessage::from("continue")); + app.chat_widget + .handle_key_event(KeyEvent::from(KeyCode::Enter)); + let mut pending = std::iter::from_fn(|| events.try_recv().ok()) + .find_map(|event| match event { + AppEvent::CodexOp(op @ AppCommand::UserTurn { .. }) => Some(op), + _ => None, + }) + .expect("queued user turn"); + assert_matches!(&pending, AppCommand::UserTurn {model, ..} if model == "gpt-reserve"); + while events.try_recv().is_ok() {} + + let mut recovered = reserve_response(); + recovered.ordinary_usage_allowed = Some(!has_credits); + recovered.rate_limits.credits = Some(codex_app_server_protocol::CreditsSnapshot { + has_credits, + unlimited: false, + balance: None, + }); + recovered.rate_limit_upsell = None; + // A rounded percentage is not an authorization decision; backend allowed=true wins. + for (request_id, hard_stop_generation, expected) in [ + (2, generation.wrapping_sub(1), "gpt-reserve"), + (3, generation, "gpt-5.4"), + (4, generation, "gpt-5.4"), + ] { + app.handle_event( + &mut tui, + &mut server, + AppEvent::RateLimitsLoaded { + request_id, + origin: RateLimitRefreshOrigin::Periodic, + hard_stop_generation, + result: Ok(recovered.clone()), + }, + ) + .await?; + assert_eq!(app.chat_widget.current_model(), expected); + } + assert_eq!( + app.chat_widget.effective_collaboration_mode(), + original_mode + ); + assert!(!render_bottom_popup(&app.chat_widget, /*width*/ 100).contains("Luna Reserve")); + app.chat_widget + .apply_reserve_fallback_to_pending_turn(&mut pending); + assert_matches!(pending, AppCommand::UserTurn { model, effort, collaboration_mode, .. } + if model == "gpt-5.4" && effort == original_mode.reasoning_effort() + && collaboration_mode == Some(original_mode.clone())); + let sent = requests.lock().unwrap().clone(); + assert_eq!(sent.len(), 2); + let restored: ThreadSettingsUpdateParams = + serde_json::from_value(sent[1].params.clone().unwrap())?; + assert_eq!( + restored, + ThreadSettingsUpdateParams { + thread_id: app.active_thread_id.unwrap().to_string(), + model: Some("gpt-5.4".into()), + effort: Some(ReasoningEffortConfig::High), + collaboration_mode: Some(original_mode), + service_tier: None, + ..Default::default() + } + ); + assert_eq!(std::fs::read(&config_path).ok(), saved_config); + let queued = std::iter::from_fn(|| events.try_recv().ok()).collect::>(); + assert!( + !queued.iter().any(|event| matches!( + event, + AppEvent::CodexOp(_) | AppEvent::PersistModelSelection { .. } + )), + "recovery must not replay a turn or change global defaults" + ); + let notice = queued + .iter() + .find_map(|event| match event { + AppEvent::InsertHistoryCell(cell) => { + Some(lines_to_single_string(&cell.display_lines(/*width*/ 100))) + } + _ => None, + }) + .expect("recovery notice"); + insta::assert_snapshot!("luna_reserve_recovery_notice", notice); + server.shutdown().await?; + proxy.await??; + } + Ok(()) +} + +#[tokio::test] +async fn luna_reserve_recovery_requires_permission_and_no_remaining_blocker() -> Result<()> { + let (mut app, _events, _ops) = make_test_app_with_channels().await; + let (mut server, requests, proxy) = + backend_banner_fallback_tests::start_fallback_thread(&mut app).await?; + configure_reserve_catalog(&mut app); + app.chat_widget.update_backend_banner(&reserve_response()); + app.apply_backend_banner_fallback(&mut server).await; + requests.lock().unwrap().clear(); + let mut recovered = reserve_response(); + recovered.rate_limit_upsell = None; + recovered.rate_limits.primary.as_mut().unwrap().used_percent = 0; + recovered.rate_limits.primary.as_mut().unwrap().resets_at = Some(0); + for allowed in [None, Some(false)] { + recovered.ordinary_usage_allowed = allowed; + app.chat_widget.update_backend_banner(&recovered); + app.apply_backend_banner_fallback(&mut server).await; + assert_eq!(app.chat_widget.current_model(), "gpt-reserve"); + } + recovered.ordinary_usage_allowed = Some(true); + for blocker in [ + json!({"accountId": null, "ordinaryUsageAllowed": null}), + json!({"rateLimitUpsell": {"unsupported": true}}), + json!({"rateLimits": {"spendControlReached": true}}), + json!({"rateLimits": {"rateLimitReachedType": "workspace_owner_usage_limit_reached"}}), + ] { + let mut raw = serde_json::to_value(&recovered)?; + for (key, value) in blocker.as_object().unwrap() { + raw[key] = value.clone(); + } + app.chat_widget + .update_backend_banner(&serde_json::from_value(raw)?); + app.apply_backend_banner_fallback(&mut server).await; + assert_eq!(app.chat_widget.current_model(), "gpt-reserve"); + } + // Reset redemption clears presentation before the authoritative follow-up read. + app.chat_widget.clear_backend_banner(); + app.chat_widget.update_backend_banner(&recovered); + app.apply_backend_banner_fallback(&mut server).await; + assert_eq!(app.chat_widget.current_model(), "gpt-5.4"); + assert_eq!(requests.lock().unwrap().len(), 1); + server.shutdown().await?; + proxy.await??; + Ok(()) +} + +#[tokio::test] +async fn luna_reserve_recovery_does_not_override_manual_choice_or_account_change() -> Result<()> { + for change_account in [false, true] { + let (mut app, _events, _ops) = make_test_app_with_channels().await; + let (mut server, requests, proxy) = + backend_banner_fallback_tests::start_fallback_thread(&mut app).await?; + configure_reserve_catalog(&mut app); + app.chat_widget.update_backend_banner(&reserve_response()); + app.apply_backend_banner_fallback(&mut server).await; + requests.lock().unwrap().clear(); + let mut recovered = reserve_response(); + recovered.ordinary_usage_allowed = Some(true); + recovered.rate_limit_upsell = None; + let expected = if change_account { + recovered.account_id = Some("workspace-b".into()); + "gpt-reserve" + } else { + app.chat_widget.set_model("gpt-5.2"); + "gpt-5.2" + }; + app.chat_widget.update_backend_banner(&recovered); + app.apply_backend_banner_fallback(&mut server).await; + recovered.account_id = Some("workspace-a".into()); + app.chat_widget.update_backend_banner(&recovered); + app.apply_backend_banner_fallback(&mut server).await; + assert_eq!(app.chat_widget.current_model(), expected); + assert!(requests.lock().unwrap().is_empty()); + server.shutdown().await?; + proxy.await??; + } + Ok(()) +} diff --git a/codex-rs/tui/src/app/tests/rate_limits.rs b/codex-rs/tui/src/app/tests/rate_limits.rs index d3bfd7a49b..344c703aea 100644 --- a/codex-rs/tui/src/app/tests/rate_limits.rs +++ b/codex-rs/tui/src/app/tests/rate_limits.rs @@ -20,6 +20,7 @@ fn rate_limit_snapshot( RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent, window_duration_mins: Some(300), @@ -224,6 +225,12 @@ async fn stale_rate_limit_reads_preserve_newer_workspace_hard_stop_for_every_ori )) .await?; + app.chat_widget + .on_rate_limit_snapshot(Some(rate_limit_snapshot( + /*used_percent*/ 20, + /*rate_limit_reached_type*/ None, + Some(false), + ))); let origin = match origin_name { "startup" => RateLimitRefreshOrigin::StartupPrefetch { reset_hint_request_id: app.chat_widget.start_rate_limit_reset_startup_check(), @@ -309,8 +316,8 @@ async fn stale_rate_limit_reads_preserve_newer_workspace_hard_stop_for_every_ori let status = render_status_output(&mut app, &mut app_event_rx); assert!( - status.contains("5% left"), - "expected {origin_name} to preserve rolling limits, got: {status}" + status.contains("80% left"), + "expected {origin_name} to preserve the last account usage snapshot, got: {status}" ); deliver_usage_limit_error(&mut app); let popup = render_bottom_popup(&app.chat_widget, /*width*/ 100); diff --git a/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__backend_banner_after_fallback.snap b/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__backend_banner_after_fallback.snap index a39f4fd236..a94c50ce49 100644 --- a/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__backend_banner_after_fallback.snap +++ b/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__backend_banner_after_fallback.snap @@ -1,11 +1,9 @@ --- source: tui/src/app/tests/backend_banner_fallback_tests.rs -assertion_line: 76 -expression: rendered +expression: normalize_snapshot_paths(rendered) --- Selected model usage exhausted Add credits to use this model again. - › 1. View usage Press a number to choose · esc to dismiss · type to continue diff --git a/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__luna_reserve_settings_unavailable.snap b/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__luna_reserve_settings_unavailable.snap new file mode 100644 index 0000000000..bae8c11321 --- /dev/null +++ b/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__backend_banner_fallback_tests__luna_reserve_settings_unavailable.snap @@ -0,0 +1,10 @@ +--- +source: tui/src/app/tests/backend_banner_fallback_tests.rs +expression: normalize_snapshot_paths(rendered) +--- + Usage limit reached + Your included usage is exhausted. Choose an option below to continue. + +› 1. Add credits + + Press enter to confirm or esc to go back diff --git a/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__luna_reserve_recovery_tests__luna_reserve_recovery_notice.snap b/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__luna_reserve_recovery_tests__luna_reserve_recovery_notice.snap new file mode 100644 index 0000000000..a61bfc5b10 --- /dev/null +++ b/codex-rs/tui/src/app/tests/snapshots/codex_tui__app__tests__luna_reserve_recovery_tests__luna_reserve_recovery_notice.snap @@ -0,0 +1,5 @@ +--- +source: tui/src/app/tests/luna_reserve_recovery_tests.rs +expression: notice +--- +• Automatically switched back to gpt-5.4 high because ordinary usage is available again. diff --git a/codex-rs/tui/src/app_event.rs b/codex-rs/tui/src/app_event.rs index 1592aef9af..89270a947a 100644 --- a/codex-rs/tui/src/app_event.rs +++ b/codex-rs/tui/src/app_event.rs @@ -175,6 +175,8 @@ pub(crate) enum RateLimitRefreshOrigin { ResetConsume { request_id: u64 }, /// Refresh backend recovery after an inference limit error. Recovery, + /// Background account usage read, scheduled more frequently near exhaustion. + Periodic, } #[derive(Debug, Clone, PartialEq, Eq)] @@ -502,6 +504,11 @@ pub(crate) enum AppEvent { origin: RateLimitRefreshOrigin, }, + /// Reconcile inherited account usage with an attached task before its queued input runs. + ApplyBackendBannerFallback { + thread_id: ThreadId, + }, + /// Open the current thread goal summary/action menu. OpenThreadGoalMenu { thread_id: ThreadId, @@ -962,6 +969,12 @@ pub(crate) enum AppEvent { /// Update the current reasoning effort in the running app and widget. UpdateReasoningEffort(Option), + /// Change Reserve effort only on the task that opened the picker, without saving defaults. + UpdateLunaReserveReasoning { + thread_id: ThreadId, + effort: Option, + }, + /// Update the current model slug in the running app and widget. UpdateModel(String), diff --git a/codex-rs/tui/src/app_server_session.rs b/codex-rs/tui/src/app_server_session.rs index 693b4c735b..cd596e030a 100644 --- a/codex-rs/tui/src/app_server_session.rs +++ b/codex-rs/tui/src/app_server_session.rs @@ -2420,6 +2420,7 @@ mod tests { RateLimitSnapshot { limit_id: Some(limit_id.to_string()), limit_name: None, + normal_model_slug: None, primary: Some(codex_app_server_protocol::RateLimitWindow { used_percent: 0, window_duration_mins: Some(10_080), diff --git a/codex-rs/tui/src/backend_banners.rs b/codex-rs/tui/src/backend_banners.rs index 18c3a17c4f..4109b8965e 100644 --- a/codex-rs/tui/src/backend_banners.rs +++ b/codex-rs/tui/src/backend_banners.rs @@ -8,6 +8,9 @@ use serde::Deserialize; mod actions; mod render; +pub(crate) const LUNA_RESERVE_BANNER: &str = "luna_reserve"; +pub(crate) const LUNA_RESERVE_RECOVERY_VIEW_ID: &str = "luna-reserve-recovery"; + #[cfg(test)] #[path = "backend_banners_tests.rs"] mod tests; diff --git a/codex-rs/tui/src/bottom_pane/actionable_banner.rs b/codex-rs/tui/src/bottom_pane/actionable_banner.rs index d1e12a6257..65750afcfa 100644 --- a/codex-rs/tui/src/bottom_pane/actionable_banner.rs +++ b/codex-rs/tui/src/bottom_pane/actionable_banner.rs @@ -11,6 +11,8 @@ use super::list_selection_view::ListSelectionView; use crate::render::Insets; use crate::render::RectExt; use crate::render::renderable::Renderable; +use crate::terminal_palette::best_color; +use crate::terminal_palette::default_fg; use crate::wrapping::word_wrap_lines; use crossterm::event::KeyCode; use crossterm::event::KeyEvent; @@ -18,6 +20,7 @@ use crossterm::event::KeyEventKind; use crossterm::event::KeyModifiers; use ratatui::buffer::Buffer; use ratatui::layout::Rect; +use ratatui::style::Color; use ratatui::style::Stylize; use ratatui::text::Line; use ratatui::widgets::Paragraph; @@ -122,7 +125,9 @@ impl BannerContent { impl Renderable for BannerContent { fn render(&self, area: Rect, buf: &mut Buffer) { let lines = self.wrapped_lines(area.width); - Widget::render(Paragraph::new(lines), area, buf); + // Explicit foreground avoids a terminal's separate bold color washing out the title. + let foreground = default_fg().map(best_color).unwrap_or(Color::Reset); + Widget::render(Paragraph::new(lines).fg(foreground), area, buf); } fn desired_height(&self, width: u16) -> u16 { @@ -140,7 +145,7 @@ impl From for SelectionViewParams { banner .description .lines() - .map(|line| Line::from(line.to_owned().dim())), + .map(|line| Line::from(line.to_owned())), ) .collect(); Self { @@ -164,6 +169,7 @@ impl BottomPane { let dismissal = banner.dismissal; let has_actions = !banner.actions.is_empty(); let mut params: SelectionViewParams = banner.into(); + params.header_gap = 0; params.allow_cancel = dismissal == BannerDismissal::Dismissible; for item in &mut params.items { item.dismiss_on_select = false; diff --git a/codex-rs/tui/src/bottom_pane/chat_composer.rs b/codex-rs/tui/src/bottom_pane/chat_composer.rs index 2735840aae..1f67d2a593 100644 --- a/codex-rs/tui/src/bottom_pane/chat_composer.rs +++ b/codex-rs/tui/src/bottom_pane/chat_composer.rs @@ -6,6 +6,7 @@ //! - Routing keys to the active popup (slash commands, file search, skill/apps/task mentions). //! - Promoting typed slash commands into atomic elements when the command name is completed. //! - Handling submit vs newline on Enter. +//! - Showing a single yellow prompt arrow while the active model is Luna Reserve. //! - Turning raw key streams into explicit paste operations on platforms where terminals //! don't provide reliable bracketed paste (notably Windows). //! @@ -518,6 +519,7 @@ pub(crate) struct ChatComposer { effort_ignition: Option, effort_status_line_transition: Option, effort_observed: bool, + luna_reserve_active: bool, attachments: AttachmentState, placeholder_text: String, blocks_direct_input: bool, @@ -697,6 +699,7 @@ impl ChatComposer { effort_ignition: None, effort_status_line_transition: None, effort_observed: false, + luna_reserve_active: false, attachments: AttachmentState::default(), placeholder_text, blocks_direct_input: false, @@ -4626,6 +4629,14 @@ impl Renderable for ChatComposer { } impl ChatComposer { + pub(crate) fn set_luna_reserve_active(&mut self, active: bool) -> bool { + if self.luna_reserve_active == active { + return false; + } + self.luna_reserve_active = active; + true + } + pub(crate) fn desired_height_with_textarea_right_reserve( &self, width: u16, @@ -4949,6 +4960,11 @@ impl ChatComposer { let prompt = if self.draft.input_enabled { if self.draft.is_bash_mode { Span::from("!").light_red().bold() + } else if self.luna_reserve_active { + // Reserve keeps one arrow at every reasoning effort; only its foreground changes. + "›" + .fg(crate::terminal_palette::best_color((246, 197, 67))) + .bold() } else if let Some(tier) = self.effort_tier { let charge = self .effort_ignition diff --git a/codex-rs/tui/src/bottom_pane/list_selection_view.rs b/codex-rs/tui/src/bottom_pane/list_selection_view.rs index 2993540424..a908b00c2b 100644 --- a/codex-rs/tui/src/bottom_pane/list_selection_view.rs +++ b/codex-rs/tui/src/bottom_pane/list_selection_view.rs @@ -183,6 +183,8 @@ pub(crate) struct SelectionViewParams { /// Rendered left-column width to use for auto-sized rows. pub name_column_width: Option, pub header: Box, + /// Blank rows after the header; defaults to one. Inline banners use zero. + pub header_gap: u16, pub initial_selected_idx: Option, /// Rich content rendered beside (wide terminals) or below (narrow terminals) @@ -234,6 +236,7 @@ impl Default for SelectionViewParams { description_layout: SelectionDescriptionLayout::Columns, name_column_width: None, header: Box::new(()), + header_gap: 1, initial_selected_idx: None, side_content: Box::new(()), side_content_width: SideContentWidth::default(), @@ -275,6 +278,7 @@ pub(crate) struct ListSelectionView { last_selected_actual_idx: Option, rendered_item_count: std::cell::Cell, header: Box, + header_gap: u16, initial_selected_idx: Option, side_content: Box, side_content_width: SideContentWidth, @@ -411,6 +415,7 @@ impl ListSelectionView { last_selected_actual_idx: None, rendered_item_count: std::cell::Cell::new(0), header, + header_gap: params.header_gap, initial_selected_idx: params.initial_selected_idx, side_content: params.side_content, side_content_width: params.side_content_width, @@ -1170,7 +1175,7 @@ impl Renderable for ListSelectionView { let tab_height = tab_bar_height(&self.tabs, self.active_tab_idx.unwrap_or(0), inner_width); let mut height = header.desired_height(inner_width); height = height.saturating_add(tab_height + u16::from(tab_height > 0)); - height = height.saturating_add(rows_height + 3); + height = height.saturating_add(rows_height + 2 + self.header_gap); if self.is_searchable { height = height.saturating_add(1); } @@ -1265,7 +1270,7 @@ impl Renderable for ListSelectionView { stacked_side_area, ] = Layout::vertical([ Constraint::Max(header_height), - Constraint::Max(1), + Constraint::Max(self.header_gap), Constraint::Length(tab_height), Constraint::Length(u16::from(tab_height > 0)), Constraint::Length(if self.is_searchable { 1 } else { 0 }), diff --git a/codex-rs/tui/src/bottom_pane/mod.rs b/codex-rs/tui/src/bottom_pane/mod.rs index 6c8deb17fe..c6c86e74b0 100644 --- a/codex-rs/tui/src/bottom_pane/mod.rs +++ b/codex-rs/tui/src/bottom_pane/mod.rs @@ -1967,6 +1967,12 @@ impl BottomPane { } } + pub(crate) fn set_luna_reserve_active(&mut self, active: bool) { + if self.composer.set_luna_reserve_active(active) { + self.request_redraw(); + } + } + pub(crate) fn set_status_line_hyperlink(&mut self, url: Option) { if self.composer.set_status_line_hyperlink(url) { self.request_redraw(); diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_personal_limit.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_personal_limit.snap index c0eed8e3c8..1b90357356 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_personal_limit.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_personal_limit.snap @@ -6,7 +6,6 @@ expression: "render_snapshot(&pane, area)" Usage limit reached Your included usage is depleted. Choose an action to continue. - › 1. Open usage settings 2. View usage 3. Extra action diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_workspace_member_credits.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_workspace_member_credits.snap index 5a94128004..faf38fd585 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_workspace_member_credits.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__backend_banner_workspace_member_credits.snap @@ -6,7 +6,6 @@ expression: "render_snapshot(&pane, area)" Usage limit reached Your included usage is depleted. Choose an action to continue. - › 1. Open usage settings 2. Notify owner 3. Extra action diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__inline_banner_wrapped_and_truncated.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__inline_banner_wrapped_and_truncated.snap index 9f72caad92..04967785ba 100644 --- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__inline_banner_wrapped_and_truncated.snap +++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__inline_banner_wrapped_and_truncated.snap @@ -11,7 +11,6 @@ expression: "render_snapshot(&pane, area)" A long description wraps to fit the available terminal width. … - › 1. Open usage settings 2. Notify owner diff --git a/codex-rs/tui/src/chatwidget.rs b/codex-rs/tui/src/chatwidget.rs index 0780e64a68..8737e6f1b6 100644 --- a/codex-rs/tui/src/chatwidget.rs +++ b/codex-rs/tui/src/chatwidget.rs @@ -396,6 +396,9 @@ pub(crate) use self::permissions_menu::auto_review_available; pub(crate) use self::permissions_menu::cyber_model_approval_reviewer; mod backend_banners; mod compaction; +mod luna_reserve_model; +mod luna_reserve_return; +pub(crate) use backend_banners::AutomaticModelSwitchReason; mod protocol; mod protocol_requests; mod rate_limits; @@ -583,6 +586,7 @@ pub(crate) struct ChatWidget { pub(crate) remote_connection: Option, token_info: Option, token_usage_pending: bool, + // Status and polling use account usage reads; response streams may identify meters differently. rate_limit_snapshots_by_limit_id: BTreeMap, refreshing_status_outputs: Vec<(u64, StatusHistoryHandle)>, next_status_refresh_request_id: u64, @@ -602,7 +606,10 @@ pub(crate) struct ChatWidget { codex_spend_control_reached: Option, rate_limit_warnings: RateLimitWarningState, backend_banner_state: backend_banners::BackendBannerState, + automatic_model_switch_state: backend_banners::AutomaticModelSwitchState, backend_banner_notice_model: Option, + // Remember the account's Reserve entry notice across chats and transient banner refreshes. + luna_reserve_notice_account_id: Option, warning_display_state: WarningDisplayState, rate_limit_switch_prompt: RateLimitSwitchPromptState, add_credits_nudge_email_in_flight: Option, diff --git a/codex-rs/tui/src/chatwidget/backend_banners.rs b/codex-rs/tui/src/chatwidget/backend_banners.rs index a989f477b9..98192e8d57 100644 --- a/codex-rs/tui/src/chatwidget/backend_banners.rs +++ b/codex-rs/tui/src/chatwidget/backend_banners.rs @@ -1,70 +1,328 @@ -//! Account banner state, independent of the current model and the lifetime of its rendered view. +//! Account banners and response-driven model transitions for the selected task. //! //! Only explicitly dismissible, previously shown occurrences can be dismissed. Model changes hide //! content without dismissing it; an authoritative replacement/absence starts a new occurrence. +//! Reserve recovery uses a focused picker and a persisted task-local return model. +//! Its entry notice is shared across chats until the backend confirms ordinary usage has recovered. use super::ChatWidget; +use super::luna_reserve_return::ReserveReturnModel; +use crate::app_command::AppCommand; use crate::backend_banners::BackendBanner; use crate::backend_banners::BannerPresentation; +use crate::backend_banners::LUNA_RESERVE_BANNER; +use crate::backend_banners::LUNA_RESERVE_RECOVERY_VIEW_ID; +use crate::bottom_pane::SelectionItem; +use crate::bottom_pane::SelectionViewParams; +use crate::bottom_pane::popup_consts::accept_cancel_hint_line; +use crate::keymap::ListAction; +use crate::model_catalog::LUNA_RESERVE_MODEL; use codex_app_server_protocol::GetAccountRateLimitsResponse; use codex_protocol::config_types::CollaborationMode; use codex_protocol::config_types::ModeKind; use codex_protocol::openai_models::ModelPreset; +use codex_protocol::openai_models::ReasoningEffort; +use std::sync::Arc; +use std::sync::atomic::AtomicBool; +use std::sync::atomic::Ordering; + +#[derive(Debug, PartialEq)] +pub(crate) enum AutomaticModelSwitchReason { + UsageLimit, + UsageRecovered, +} + +#[derive(Debug, PartialEq)] +pub(crate) struct AutomaticModelSwitch { + pub model: ModelPreset, + pub effort: Option, + pub reason: AutomaticModelSwitchReason, +} + +/// Live transition state; the return target is also persisted per task for reconstruction. +#[derive(Default)] +pub(super) struct AutomaticModelSwitchState { + reserve_return: Option, + replaced_model: Option, +} #[derive(Default)] pub(super) struct BackendBannerState { + account_id: Option, + ordinary_usage_recovered: bool, banner: Option, presented: Option, shown: bool, dismissed: bool, + picker_dismissed: Arc, } impl ChatWidget { - pub(crate) fn backend_banner_fallback(&self) -> Option { - let banner = self.backend_banner_state.banner.as_ref()?; - if !self.has_chatgpt_account - || !self.requires_openai_auth - || banner.blocked_model_slug.as_deref() != Some(self.current_model()) - { + pub(super) fn restrict_model_picker_to_luna_reserve(&self) -> bool { + // A fresh account read can allow manual recovery even without a valid saved return model. + self.current_model() == LUNA_RESERVE_MODEL + && !self.backend_banner_state.ordinary_usage_recovered + } + + pub(crate) fn invalidate_ordinary_usage_recovery(&mut self) { + // Keep the current banner, but never reuse permission from before a new hard stop. + self.backend_banner_state.ordinary_usage_recovered = false; + } + + pub(super) fn waiting_for_luna_reserve(&self) -> bool { + self.current_model() != LUNA_RESERVE_MODEL + && self + .backend_banner_state + .banner + .as_ref() + .is_some_and(|banner| banner.banner_type == LUNA_RESERVE_BANNER) + } + + pub(crate) fn backend_banner_fallback(&mut self) -> Option { + if !self.has_chatgpt_account || !self.requires_openai_auth { return None; } + if self.current_model() == LUNA_RESERVE_MODEL + && self.automatic_model_switch_state.reserve_return.is_none() + { + self.automatic_model_switch_state.reserve_return = + self.thread_id().and_then(|thread_id| { + ReserveReturnModel::load(self.config.codex_home.as_path(), thread_id).or_else( + || { + // Forks inherit Reserve settings, but need their own return target: + // the parent's recovery will delete the parent's saved target. + let previous = ReserveReturnModel::load( + self.config.codex_home.as_path(), + self.forked_from?, + )?; + if self.backend_banner_state.account_id.as_deref() + != Some(previous.account_id.as_str()) + { + return None; + } + previous + .save(self.config.codex_home.as_path(), thread_id) + .ok()?; + Some(previous) + }, + ) + }); + } + if self + .automatic_model_switch_state + .reserve_return + .as_ref() + .is_some_and(|previous| { + self.backend_banner_state + .account_id + .as_ref() + .is_some_and(|account_id| account_id != &previous.account_id) + }) + { + self.clear_reserve_return(); + } let models = self.model_catalog.try_list_models().ok()?; - banner.fallback_model_slugs.iter().find_map(|candidate| { - models - .iter() - .find(|model| { - model.show_in_picker - && model.model == *candidate - && model.model != self.current_model() - }) - .cloned() + if self.current_model() == LUNA_RESERVE_MODEL + && self.backend_banner_state.ordinary_usage_recovered + { + let previous = self.automatic_model_switch_state.reserve_return.as_ref()?; + if self.backend_banner_state.account_id.as_deref() != Some(previous.account_id.as_str()) + { + return None; + } + let model = models + .into_iter() + .find(|model| model.show_in_picker && model.model == previous.model)?; + return Some(AutomaticModelSwitch { + model, + effort: previous.effort.clone(), + reason: AutomaticModelSwitchReason::UsageRecovered, + }); + } + let banner = self.backend_banner_state.banner.as_ref()?; + // The backend emits this banner only after ordinary usage is exhausted and Reserve + // is available. Reserve is deliberately hidden from manual model selection. + let model = if banner.banner_type == LUNA_RESERVE_BANNER { + models.into_iter().find(|model| { + model.model == LUNA_RESERVE_MODEL + && model.model != self.current_model() + && banner + .blocked_model_slug + .as_deref() + .is_none_or(|blocked| blocked == self.current_model()) + }) + } else { + if banner.blocked_model_slug.as_deref() != Some(self.current_model()) { + return None; + } + banner.fallback_model_slugs.iter().find_map(|candidate| { + models + .iter() + .find(|model| { + model.show_in_picker + && model.model == *candidate + && model.model != self.current_model() + }) + .cloned() + }) + }?; + Some(AutomaticModelSwitch { + model, + effort: self.current_reasoning_effort(), + reason: AutomaticModelSwitchReason::UsageLimit, }) } + /// Save the return target before changing server state, including before any turn is sent. + pub(crate) fn prepare_luna_reserve_return(&mut self) -> bool { + let Some((account_id, thread_id)) = self + .backend_banner_state + .account_id + .clone() + .zip(self.thread_id()) + else { + return false; + }; + let previous = ReserveReturnModel { + account_id, + model: self.current_model().to_string(), + effort: self.current_reasoning_effort(), + }; + previous + .save(self.config.codex_home.as_path(), thread_id) + .is_ok() + } + + pub(super) fn clear_reserve_return(&mut self) { + if let Some(thread_id) = self.thread_id() { + ReserveReturnModel::clear(self.config.codex_home.as_path(), thread_id); + } + self.automatic_model_switch_state = AutomaticModelSwitchState::default(); + } + + pub(crate) fn show_unavailable_reserve_recovery(&mut self) { + self.clear_reserve_return(); + // A failed switch still needs recovery actions, even if another chat used Reserve. + self.backend_banner_state.dismissed = false; + self.backend_banner_state.picker_dismissed = Arc::default(); + self.backend_banner_state.presented = None; + self.refresh_backend_banner_visibility(); + } + + /// A composer submission can already be in the app queue when a Reserve switch fails. + /// Reuse the retained prompt/steer rather than sending it on the blocked model. + pub(crate) fn defer_pending_turn_for_luna_reserve(&mut self) -> bool { + if !self.waiting_for_luna_reserve() { + return false; + } + if self.input_queue.user_turn_pending_start + && let Some(prompt) = self.safety_buffering_prompt.take() + { + self.finalize_turn(); + self.input_queue + .queued_user_messages + .push_front(prompt.into()); + self.input_queue + .queued_user_message_history_records + .push_front(super::UserMessageHistoryRecord::UserMessageText); + self.refresh_pending_input_preview(); + return true; + } + !self.input_queue.pending_steers.is_empty() && self.enqueue_rejected_steer() + } + /// Commit a successfully applied task setting and keep its recovery notice visible together. pub(crate) fn finish_backend_banner_fallback(&mut self, mode: CollaborationMode) { + let previous_model = self.current_model().to_string(); + let reserve_return = (mode.model() == LUNA_RESERVE_MODEL) + .then(|| self.backend_banner_state.account_id.clone()) + .flatten() + .map(|account_id| ReserveReturnModel { + account_id, + model: previous_model.clone(), + effort: self.current_reasoning_effort(), + }); + let involves_reserve = + mode.model() == LUNA_RESERVE_MODEL || previous_model == LUNA_RESERVE_MODEL; self.set_model(mode.model()); self.set_reasoning_effort(mode.reasoning_effort()); if mode.mode == ModeKind::Plan { self.set_plan_mode_reasoning_effort(mode.reasoning_effort()); } self.set_effective_collaboration_mode(mode); + self.automatic_model_switch_state = AutomaticModelSwitchState { + reserve_return, + replaced_model: involves_reserve.then_some(previous_model), + }; // Showing the post-switch notice is distinct from having seen the original blocked state. self.backend_banner_state.shown = false; - self.backend_banner_state.dismissed = false; + self.backend_banner_state.dismissed = self.reserve_notice_already_shown(); + self.backend_banner_state.picker_dismissed = Arc::default(); + self.bottom_pane + .dismiss_view_by_id(LUNA_RESERVE_RECOVERY_VIEW_ID); + self.backend_banner_state.presented = None; self.backend_banner_notice_model = Some(self.current_model().to_string()); self.refresh_backend_banner_visibility(); } + /// A queued command may have been composed before the account read switched this task. + pub(crate) fn apply_reserve_fallback_to_pending_turn(&self, op: &mut AppCommand) { + let AppCommand::UserTurn { + model, + effort, + service_tier, + collaboration_mode, + .. + } = op + else { + return; + }; + if self.automatic_model_switch_state.replaced_model.as_deref() != Some(model.as_str()) { + return; + } + *model = self.current_model().to_string(); + *effort = self.current_reasoning_effort(); + *service_tier = self.service_tier_update_for_core(); + if let Some(mode) = collaboration_mode { + mode.settings.model = model.clone(); + mode.settings.reasoning_effort = effort.clone(); + } + } + pub(crate) fn inherit_backend_banner_state(&mut self, previous: &mut ChatWidget) { previous.observe_backend_banner_view(); self.backend_banner_state = std::mem::take(&mut previous.backend_banner_state); + self.luna_reserve_notice_account_id = previous.luna_reserve_notice_account_id.take(); + self.backend_banner_state.dismissed |= self.reserve_notice_already_shown(); + // Usage belongs to the account, so switching tasks must not reset the polling cadence + // or discard the already-known limits shown by /status. + self.rate_limit_snapshots_by_limit_id = + std::mem::take(&mut previous.rate_limit_snapshots_by_limit_id); + self.codex_rate_limit_reached_type = previous.codex_rate_limit_reached_type; + self.codex_spend_control_reached = previous.codex_spend_control_reached; self.backend_banner_state.presented = None; self.refresh_backend_banner_visibility(); } pub(crate) fn update_backend_banner(&mut self, response: &GetAccountRateLimitsResponse) { self.observe_backend_banner_view(); + self.backend_banner_state.account_id = response.account_id.clone(); + // Only a full, identity-validated backend read can authorize recovery. Unknown banners + // still block it; percentages, sparse notifications and reset timestamps cannot prove it. + let has_usable_credits = response + .rate_limits + .credits + .as_ref() + .is_some_and(|credits| credits.unlimited || credits.has_credits); + self.backend_banner_state.ordinary_usage_recovered = + response.ordinary_usage_allowed.is_some() + && (response.ordinary_usage_allowed == Some(true) || has_usable_credits) + && response.rate_limit_upsell.is_none() + && response.rate_limits.spend_control_reached != Some(true) + && response.rate_limits.rate_limit_reached_type.is_none(); + if self.backend_banner_state.ordinary_usage_recovered { + self.luna_reserve_notice_account_id = None; + } let banner = response .rate_limit_upsell .as_ref() @@ -88,23 +346,47 @@ impl ChatWidget { == new.blocked_model_slug.as_ref().or(new.model_slug.as_ref()) && old.fallback_model_slugs == new.fallback_model_slugs }); + self.backend_banner_state.banner = banner; if !same_occurrence { self.backend_banner_state.shown = false; - self.backend_banner_state.dismissed = false; + self.backend_banner_state.dismissed = self.reserve_notice_already_shown(); + self.backend_banner_state.picker_dismissed = Arc::default(); self.backend_banner_notice_model = None; } - self.backend_banner_state.banner = banner; + if self.waiting_for_luna_reserve() { + self.hold_rate_limit_recovery(); + } self.refresh_backend_banner_visibility(); } + fn reserve_notice_already_shown(&self) -> bool { + self.backend_banner_state + .banner + .as_ref() + .is_some_and(|banner| { + banner.banner_type == LUNA_RESERVE_BANNER + && self.luna_reserve_notice_account_id.as_deref() + == Some(banner.account_id.as_str()) + }) + } + fn observe_backend_banner_view(&mut self) { let (shown, dismissed) = self.bottom_pane.inline_banner_lifecycle(); self.backend_banner_state.shown |= shown; self.backend_banner_state.dismissed |= dismissed; + self.backend_banner_state.dismissed |= self + .backend_banner_state + .picker_dismissed + .load(Ordering::Relaxed); } pub(super) fn refresh_backend_banner_visibility(&mut self) { let banner = self.backend_banner_state.banner.as_ref().filter(|banner| { + // Keep recovery actions available while switching, including on older servers + // without settings/update. The copy below describes the accepted model only. + if banner.banner_type == LUNA_RESERVE_BANNER { + return !self.backend_banner_state.dismissed; + } // Explicit fallback payloads describe the selected replacement, not a pending switch. let matches_selected_model = match banner.blocked_model_slug.as_deref() { Some(blocked) if !banner.fallback_model_slugs.is_empty() => { @@ -127,7 +409,19 @@ impl ChatWidget { if banner == self.backend_banner_state.presented.as_ref() { return; } - let content = banner.map(BackendBanner::actionable_banner); + let is_reserve = banner.is_some_and(|banner| banner.banner_type == LUNA_RESERVE_BANNER); + let content = banner.map(|banner| { + let mut content = banner.actionable_banner(); + if banner.banner_type == LUNA_RESERVE_BANNER + && self.current_model() != LUNA_RESERVE_MODEL + { + content.title = "Usage limit reached".to_string(); + content.description = + "Your included usage is exhausted. Choose an option below to continue." + .to_string(); + } + content + }); self.backend_banner_state.presented = banner.cloned(); if content.is_some() { self.bottom_pane @@ -140,7 +434,45 @@ impl ChatWidget { self.rate_limit_switch_prompt = super::RateLimitSwitchPromptState::Pending; } } - self.bottom_pane.set_inline_banner(content); + self.bottom_pane + .dismiss_view_by_id(LUNA_RESERVE_RECOVERY_VIEW_ID); + match (is_reserve, content) { + (true, Some(content)) => { + self.bottom_pane.set_inline_banner(/*banner*/ None); + let mut params: SelectionViewParams = content.into(); + params.view_id = Some(LUNA_RESERVE_RECOVERY_VIEW_ID); + if self.current_model() == LUNA_RESERVE_MODEL { + self.luna_reserve_notice_account_id = + self.backend_banner_state.account_id.clone(); + // Continuing is a local dismissal, separate from the backend's purchase CTAs. + params.items.push(SelectionItem { + name: "Continue with Luna Reserve".to_string(), + ..Default::default() + }); + let list_keymap = self.bottom_pane.list_keymap(); + params.footer_hint = Some(accept_cancel_hint_line( + list_keymap.primary_hint(ListAction::Accept), + "to confirm", + list_keymap.primary_hint(ListAction::Cancel), + "to continue working", + )); + } + // Use the standard focused picker: arrows/Enter and numeric shortcuts select, + // Escape returns to the unchanged composer and its saved draft. + let dismissed = Arc::clone(&self.backend_banner_state.picker_dismissed); + params.on_cancel = + Some(Box::new(move |_| dismissed.store(true, Ordering::Relaxed))); + for item in &mut params.items { + item.dismiss_on_select = true; + let dismissed = Arc::clone(&self.backend_banner_state.picker_dismissed); + item.actions + .push(Box::new(move |_| dismissed.store(true, Ordering::Relaxed))); + } + self.backend_banner_state.shown = true; + self.bottom_pane.show_selection_view(params); + } + (_, content) => self.bottom_pane.set_inline_banner(content), + } if self.backend_banner_state.presented.is_none() && !self.bottom_pane.is_task_running() && self.bottom_pane.no_modal_or_popup_active() @@ -175,6 +507,8 @@ impl ChatWidget { pub(crate) fn clear_backend_banner(&mut self) { self.backend_banner_state = BackendBannerState::default(); self.backend_banner_notice_model = None; + self.bottom_pane + .dismiss_view_by_id(LUNA_RESERVE_RECOVERY_VIEW_ID); self.bottom_pane.set_inline_banner(/*banner*/ None); } } diff --git a/codex-rs/tui/src/chatwidget/constructor.rs b/codex-rs/tui/src/chatwidget/constructor.rs index c04a210d94..fcdf83a9e2 100644 --- a/codex-rs/tui/src/chatwidget/constructor.rs +++ b/codex-rs/tui/src/chatwidget/constructor.rs @@ -153,7 +153,9 @@ impl ChatWidget { codex_spend_control_reached: None, rate_limit_warnings: RateLimitWarningState::default(), backend_banner_state: backend_banners::BackendBannerState::default(), + automatic_model_switch_state: backend_banners::AutomaticModelSwitchState::default(), backend_banner_notice_model: None, + luna_reserve_notice_account_id: None, warning_display_state: WarningDisplayState::default(), rate_limit_switch_prompt: RateLimitSwitchPromptState::default(), add_credits_nudge_email_in_flight: None, diff --git a/codex-rs/tui/src/chatwidget/luna_reserve_model.rs b/codex-rs/tui/src/chatwidget/luna_reserve_model.rs new file mode 100644 index 0000000000..8634932b72 --- /dev/null +++ b/codex-rs/tui/src/chatwidget/luna_reserve_model.rs @@ -0,0 +1,62 @@ +//! The Reserve-only /model picker uses normal-model metadata while keeping Reserve routing. + +use super::*; +use crate::model_catalog::LUNA_MODEL; +use crate::model_catalog::LUNA_RESERVE_MODEL; + +impl ChatWidget { + pub(super) fn open_luna_reserve_model_popup( + &mut self, + presets: Vec, + view_id: &'static str, + ) { + let normal_model_slug = self + .rate_limit_snapshots_by_limit_id + .values() + .find(|snapshot| snapshot.limit_name == LUNA_RESERVE_MODEL) + .and_then(|snapshot| snapshot.normal_model_slug.as_deref()); + let preset = normal_model_slug + .and_then(|slug| presets.iter().find(|preset| preset.model == slug)) + .or_else(|| presets.iter().find(|preset| preset.model == LUNA_MODEL)); + let Some(mut preset) = preset.cloned() else { + self.bottom_pane.dismiss_view_by_id(view_id); + self.add_info_message( + "Luna model settings are unavailable; please try /model again in a moment." + .to_string(), + /*hint*/ None, + ); + return; + }; + + // Only borrow the normal model's presentation and supported efforts. Selecting an + // effort must keep the authorized Reserve model and the saved ordinary return target. + preset.model = LUNA_RESERVE_MODEL.to_string(); + let single_supported_effort = preset.supported_reasoning_efforts.len() == 1; + let name = preset.display_name.clone(); + let description = (!preset.description.is_empty()).then_some(preset.description.clone()); + let actions: Vec = vec![Box::new(move |tx| { + tx.send(AppEvent::OpenReasoningPopup { + model: preset.clone(), + }); + })]; + let header = self.model_menu_header( + "Select Model", + "Other models return when ordinary usage is available again.", + ); + self.show_model_selection_view(SelectionViewParams { + view_id: Some(view_id), + header, + footer_hint: Some(self.bottom_pane.standard_popup_hint_line()), + items: vec![SelectionItem { + name, + description, + is_current: true, + actions, + dismiss_on_select: single_supported_effort, + dismiss_parent_on_child_accept: !single_supported_effort, + ..Default::default() + }], + ..Default::default() + }); + } +} diff --git a/codex-rs/tui/src/chatwidget/luna_reserve_return.rs b/codex-rs/tui/src/chatwidget/luna_reserve_return.rs new file mode 100644 index 0000000000..36a7da02a3 --- /dev/null +++ b/codex-rs/tui/src/chatwidget/luna_reserve_return.rs @@ -0,0 +1,48 @@ +//! Persist the account-bound return model for a task before automatically entering Reserve. +//! Task IDs scope the cache across reconnects/resumes without changing global model defaults. + +use codex_protocol::ThreadId; +use codex_protocol::openai_models::ReasoningEffort; +use serde::Deserialize; +use serde::Serialize; +use std::io; +use std::io::Read; +use std::path::Path; +use std::path::PathBuf; + +#[derive(Clone, Serialize, Deserialize)] +pub(super) struct ReserveReturnModel { + pub account_id: String, + pub model: String, + pub effort: Option, +} + +impl ReserveReturnModel { + fn path(codex_home: &Path, thread_id: ThreadId) -> PathBuf { + codex_home + .join("tui-luna-reserve") + .join(format!("{thread_id}.json")) + } + + pub(super) fn load(codex_home: &Path, thread_id: ThreadId) -> Option { + let file = std::fs::File::open(Self::path(codex_home, thread_id)).ok()?; + // A corrupt or unrelated cache file must not cause an unbounded read. + serde_json::from_reader(file.take(/*limit*/ 4096)).ok() + } + + pub(super) fn save(&self, codex_home: &Path, thread_id: ThreadId) -> io::Result<()> { + let path = Self::path(codex_home, thread_id); + let directory = path.parent().ok_or(io::ErrorKind::InvalidInput)?; + std::fs::create_dir_all(directory)?; + let mut file = tempfile::NamedTempFile::new_in(directory)?; + serde_json::to_writer(&mut file, self)?; + file.as_file().sync_all()?; + file.persist(path).map_err(|error| error.error)?; + Ok(()) + } + + pub(super) fn clear(codex_home: &Path, thread_id: ThreadId) { + // A missing cache needs no cleanup; the live model is authoritative after leaving Reserve. + let _ = std::fs::remove_file(Self::path(codex_home, thread_id)); + } +} diff --git a/codex-rs/tui/src/chatwidget/model_popup_state.rs b/codex-rs/tui/src/chatwidget/model_popup_state.rs index ebc6a4111e..a85480e1bb 100644 --- a/codex-rs/tui/src/chatwidget/model_popup_state.rs +++ b/codex-rs/tui/src/chatwidget/model_popup_state.rs @@ -36,16 +36,22 @@ impl ChatWidget { { return false; } - self.model_catalog = Arc::new(ModelCatalog::new(presets.clone())); + self.model_catalog = Arc::new(ModelCatalog::new(presets)); self.refresh_effective_service_tier(); self.refresh_model_dependent_surfaces(); + true + } + + /// Keep a present model picker aligned with the active task, including Reserve entry/exit. + pub(super) fn refresh_open_model_picker(&mut self) { // Refresh an existing parent without reopening it or interrupting its reasoning child. match self.model_popup_view_id() { - Some(MODEL_SELECTION_VIEW_ID) => self.open_model_popup_with_presets(presets), + Some(MODEL_SELECTION_VIEW_ID) => self.open_model_popup_with_presets( + self.model_catalog.try_list_models().unwrap_or_default(), + ), Some(ALL_MODELS_SELECTION_VIEW_ID) => self.open_all_models_popup(), _ => {} } - true } pub(super) fn show_model_selection_view(&mut self, mut params: SelectionViewParams) { diff --git a/codex-rs/tui/src/chatwidget/model_popups.rs b/codex-rs/tui/src/chatwidget/model_popups.rs index 0210428f4f..2155103740 100644 --- a/codex-rs/tui/src/chatwidget/model_popups.rs +++ b/codex-rs/tui/src/chatwidget/model_popups.rs @@ -4,6 +4,7 @@ //! into another, especially while Plan mode is active. use super::*; +use crate::model_catalog::LUNA_RESERVE_MODEL; const ULTRA_REASONING_CONCURRENCY_WARNING_THRESHOLD: usize = 8; pub(super) const MODEL_SELECTION_VIEW_ID: &str = "model-selection"; @@ -38,7 +39,7 @@ impl ChatWidget { self.app_event_tx.send(AppEvent::FetchModels { request_id }); } - fn model_menu_header(&self, title: &str, subtitle: &str) -> Box { + pub(super) fn model_menu_header(&self, title: &str, subtitle: &str) -> Box { let title = title.to_string(); let subtitle = subtitle.to_string(); let mut header = ColumnRenderable::new(); @@ -78,6 +79,10 @@ impl ChatWidget { } pub(crate) fn open_model_popup_with_presets(&mut self, presets: Vec) { + if self.restrict_model_picker_to_luna_reserve() { + self.open_luna_reserve_model_popup(presets, MODEL_SELECTION_VIEW_ID); + return; + } let presets: Vec = presets .into_iter() .filter(|preset| preset.show_in_picker) @@ -191,6 +196,13 @@ impl ChatWidget { } pub(crate) fn open_all_models_popup(&mut self) { + if self.restrict_model_picker_to_luna_reserve() { + self.open_luna_reserve_model_popup( + self.model_catalog.try_list_models().unwrap_or_default(), + ALL_MODELS_SELECTION_VIEW_ID, + ); + return; + } let presets = self .model_catalog .try_list_models() @@ -262,8 +274,17 @@ impl ChatWidget { let warning = effort_for_action .as_ref() .and_then(|effort| self.ultra_reasoning_concurrency_warning(effort)); + let thread_id = self.thread_id(); vec![Box::new(move |tx| { - if effort_for_action == Some(ReasoningEffortConfig::Ultra) { + if model_for_action == LUNA_RESERVE_MODEL { + // Reserve is temporary: update the active task without persisting a model default. + if let Some(thread_id) = thread_id { + tx.send(AppEvent::UpdateLunaReserveReasoning { + thread_id, + effort: effort_for_action.clone(), + }); + } + } else if effort_for_action == Some(ReasoningEffortConfig::Ultra) { tx.send(AppEvent::ApplyAdvancedReasoning { model: model_for_action.clone(), effort: ReasoningEffortConfig::Ultra, @@ -295,6 +316,7 @@ impl ChatWidget { selected_effort: Option, ) -> bool { if !self.collaboration_modes_enabled() + || selected_model == LUNA_RESERVE_MODEL || self.active_mode_kind() != ModeKind::Plan || selected_model != self.current_model() { @@ -478,6 +500,11 @@ impl ChatWidget { .then(|| default_effort.clone()); let model_slug = preset.model.to_string(); + let model_label = if model_slug == LUNA_RESERVE_MODEL { + preset.display_name.clone() + } else { + model_slug.clone() + }; let is_current_model = self.current_model() == preset.model.as_str(); let highlight_choice = if is_current_model { if in_plan_mode { @@ -575,7 +602,7 @@ impl ChatWidget { let mut header = ColumnRenderable::new(); header.push(Line::from( - format!("Select Reasoning Level for {model_slug}").bold(), + format!("Select Reasoning Level for {model_label}").bold(), )); self.bottom_pane.show_selection_view(SelectionViewParams { @@ -704,27 +731,11 @@ impl ChatWidget { )) } - pub(super) fn apply_model_and_effort_without_persist( - &self, - model: String, - effort: Option, - ) { - let warning = effort - .as_ref() - .and_then(|effort| self.ultra_reasoning_concurrency_warning(effort)); - self.app_event_tx.send(AppEvent::UpdateModel(model)); - self.app_event_tx - .send(AppEvent::UpdateReasoningEffort(effort)); - if let Some(warning) = warning { - self.app_event_tx.send(AppEvent::InsertHistoryCell(Box::new( - history_cell::new_warning_event(warning), - ))); + fn apply_model_and_effort(&self, model: String, effort: Option) { + for action in self + .model_selection_actions(model, effort, /*should_prompt_plan_mode_scope*/ false) + { + action(&self.app_event_tx); } } - - fn apply_model_and_effort(&self, model: String, effort: Option) { - self.apply_model_and_effort_without_persist(model.clone(), effort.clone()); - self.app_event_tx - .send(AppEvent::PersistModelSelection { model, effort }); - } } diff --git a/codex-rs/tui/src/chatwidget/rate_limits.rs b/codex-rs/tui/src/chatwidget/rate_limits.rs index 70c54e1a72..cd88e565aa 100644 --- a/codex-rs/tui/src/chatwidget/rate_limits.rs +++ b/codex-rs/tui/src/chatwidget/rate_limits.rs @@ -1,8 +1,9 @@ -//! Rate-limit warning, prompt, and notice surfaces for `ChatWidget`. +//! Rate-limit warning, prompt, and notice surfaces, plus quota-aware account refresh cadence. use super::*; pub(super) const WORKSPACE_NUDGE_VIEW_ID: &str = "workspace-usage-nudge"; use crate::bottom_pane::ActionableBanner; +use crate::model_catalog::LUNA_RESERVE_MODEL; use codex_app_server_protocol::CodexErrorInfo as AppServerCodexErrorInfo; use uuid::Uuid; @@ -11,7 +12,7 @@ pub(super) struct PendingCreditsNudge { credit_type: AddCreditsNudgeCreditType, } -pub(super) const NUDGE_MODEL_SLUG: &str = "gpt-5.6-luna"; +pub(super) const NUDGE_MODEL_SLUG: &str = crate::model_catalog::LUNA_MODEL; pub(super) const RATE_LIMIT_SWITCH_PROMPT_THRESHOLD: f64 = 90.0; pub(super) const RATE_LIMIT_SWITCH_PROMPT_VIEW_ID: &str = "rate-limit-switch-prompt"; @@ -185,11 +186,43 @@ fn has_usable_workspace_credits(credits: &CreditsSnapshot) -> bool { } impl ChatWidget { + /// Poll more often near exhaustion for every ChatGPT account, independently of experiments. + pub(crate) fn rate_limit_refresh_interval(&self) -> Option { + if !self.should_prefetch_rate_limits() { + return None; + } + // Ignore unrelated model buckets; watch ordinary usage and the selected model's bucket. + let used_percent = self + .rate_limit_snapshots_by_limit_id + .iter() + .filter(|(limit_id, snapshot)| { + limit_id.as_str() == "codex" || snapshot.limit_name == self.current_model() + }) + .flat_map(|(_, snapshot)| snapshot.primary.iter().chain(snapshot.secondary.iter())) + .map(|window| window.used_percent) + .filter(|percent| percent.is_finite()) + .max_by(f64::total_cmp) + .unwrap_or_default(); + let seconds = if used_percent >= 99.0 { + 5 + } else if used_percent >= 90.0 { + 15 + } else if used_percent >= 75.0 { + 30 + } else { + 60 + }; + Some(std::time::Duration::from_secs(seconds)) + } + pub(crate) fn hold_rate_limit_recovery(&mut self) -> bool { std::mem::replace(&mut self.input_queue.rate_limit_recovery_pending, true) } pub(crate) fn finish_rate_limit_recovery(&mut self) { + if self.waiting_for_luna_reserve() { + return; + } if std::mem::take(&mut self.input_queue.rate_limit_recovery_pending) { self.submit_initial_user_message_if_pending(); self.maybe_send_next_queued_input(); @@ -224,10 +257,6 @@ impl ChatWidget { .limit_id .clone() .unwrap_or_else(|| "codex".to_string()); - let limit_label = snapshot - .limit_name - .clone() - .unwrap_or_else(|| limit_id.clone()); if matches!(source, RateLimitSnapshotSource::RollingUpdate) && snapshot.credits.is_none() { @@ -241,16 +270,6 @@ impl ChatWidget { balance: credits.balance.clone(), }); } - let preserved_individual_limit = - if matches!(source, RateLimitSnapshotSource::RollingUpdate) - && snapshot.individual_limit.is_none() - { - self.rate_limit_snapshots_by_limit_id - .get(&limit_id) - .and_then(|display| display.individual_limit.clone()) - } else { - None - }; self.plan_type = snapshot.plan_type.or(self.plan_type); let is_codex_limit = limit_id.eq_ignore_ascii_case("codex"); @@ -341,13 +360,18 @@ impl ChatWidget { self.rate_limit_switch_prompt = RateLimitSwitchPromptState::Pending; } - let mut display = - rate_limit_snapshot_display_for_limit(&snapshot, limit_label, Local::now()); - if display.individual_limit.is_none() { - display.individual_limit = preserved_individual_limit; + // /wham/usage identifies ordinary and additional model limits separately. Streamed + // updates still drive warnings/recovery above, but must not overwrite status data. + if matches!(source, RateLimitSnapshotSource::AccountUsage) { + let limit_label = snapshot + .limit_name + .clone() + .unwrap_or_else(|| limit_id.clone()); + let display = + rate_limit_snapshot_display_for_limit(&snapshot, limit_label, Local::now()); + self.rate_limit_snapshots_by_limit_id + .insert(limit_id, display); } - self.rate_limit_snapshots_by_limit_id - .insert(limit_id, display); if !warnings.is_empty() { for warning in warnings { @@ -394,7 +418,9 @@ impl ChatWidget { if self.has_applicable_backend_banner() { return; } - if self.rate_limit_switch_prompt_hidden() || self.current_model() == NUDGE_MODEL_SLUG { + if self.rate_limit_switch_prompt_hidden() + || matches!(self.current_model(), NUDGE_MODEL_SLUG | LUNA_RESERVE_MODEL) + { self.rate_limit_switch_prompt = RateLimitSwitchPromptState::Idle; return; } diff --git a/codex-rs/tui/src/chatwidget/session_flow.rs b/codex-rs/tui/src/chatwidget/session_flow.rs index f45df6992e..adfbf5625d 100644 --- a/codex-rs/tui/src/chatwidget/session_flow.rs +++ b/codex-rs/tui/src/chatwidget/session_flow.rs @@ -26,6 +26,8 @@ impl ChatWidget { .set_queue_submissions(/*queue_submissions*/ false); if previous_thread_id != self.thread_id { self.backend_banner_notice_model = None; + self.automatic_model_switch_state = + backend_banners::AutomaticModelSwitchState::default(); self.pending_automatic_thread_names.clear(); self.review.recent_auto_review_denials = RecentAutoReviewDenials::default(); self.clear_thread_usage_state(); @@ -114,6 +116,19 @@ impl ChatWidget { .set_active_reasoning_effort_baseline(effort.as_ref()); self.refresh_model_display(); self.refresh_status_surfaces(); + if previous_thread_id != self.thread_id + && self.should_prefetch_rate_limits() + && (self.current_model() == crate::model_catalog::LUNA_RESERVE_MODEL + || self.backend_banner_fallback().is_some()) + { + // Reconcile this task with retained account state before sending its initial/queued + // prompt. Do not wait for the next usage poll after /new, /resume or a thread switch. + self.hold_rate_limit_recovery(); + self.app_event_tx + .send(AppEvent::ApplyBackendBannerFallback { + thread_id: session.thread_id, + }); + } self.sync_service_tier_commands(); self.sync_personality_command_enabled(); self.sync_plugins_command_enabled(); diff --git a/codex-rs/tui/src/chatwidget/settings.rs b/codex-rs/tui/src/chatwidget/settings.rs index 6422f6f7c8..89461c5051 100644 --- a/codex-rs/tui/src/chatwidget/settings.rs +++ b/codex-rs/tui/src/chatwidget/settings.rs @@ -221,6 +221,8 @@ impl ChatWidget { self.clear_pending_token_activity_refreshes(); self.clear_pending_rate_limit_reset_requests(); self.clear_backend_banner(); + self.luna_reserve_notice_account_id = None; + self.automatic_model_switch_state = backend_banners::AutomaticModelSwitchState::default(); self.input_queue.rate_limit_recovery_pending = false; self.add_credits_nudge_email_in_flight = None; self.codex_rate_limit_reached_type = None; @@ -261,6 +263,14 @@ impl ChatWidget { /// Set the model in the widget's config copy and stored collaboration mode. pub(crate) fn set_model(&mut self, model: &str) { + if model != self.current_model() { + if self.current_model() == crate::model_catalog::LUNA_RESERVE_MODEL { + self.clear_reserve_return(); + } else { + self.automatic_model_switch_state = + backend_banners::AutomaticModelSwitchState::default(); + } + } self.current_collaboration_mode = self.current_collaboration_mode.with_updates( Some(model.to_string()), /*effort*/ None, @@ -452,6 +462,7 @@ impl ChatWidget { self.sync_backend_banner_view(); self.refresh_model_display(); self.refresh_status_line(); + self.refresh_open_model_picker(); } fn apply_thread_settings(&mut self, mut settings: ThreadSettings) { @@ -551,7 +562,7 @@ impl ChatWidget { if model.is_empty() { DEFAULT_MODEL_DISPLAY_NAME } else { - model + crate::model_catalog::model_display_name(model) } } diff --git a/codex-rs/tui/src/chatwidget/status_surfaces.rs b/codex-rs/tui/src/chatwidget/status_surfaces.rs index 1b5402c4cf..3cf584cffb 100644 --- a/codex-rs/tui/src/chatwidget/status_surfaces.rs +++ b/codex-rs/tui/src/chatwidget/status_surfaces.rs @@ -9,6 +9,7 @@ use crate::branch_summary; use crate::chatwidget::limit_label_for_window; use crate::chatwidget::rate_limits::get_limits_duration; use crate::legacy_core::config::Config; +use crate::model_catalog::LUNA_RESERVE_MODEL; use crate::status::format_credit_micros; use crate::status::format_estimated_usd_micros; use crate::status::format_tokens_compact; @@ -293,6 +294,8 @@ impl ChatWidget { /// warnings once, synchronizes shared cached state (such as git-branch /// lookup), then renders each surface from that shared snapshot. pub(crate) fn refresh_status_surfaces(&mut self) { + self.bottom_pane + .set_luna_reserve_active(self.current_model() == LUNA_RESERVE_MODEL); let selections = self.status_surface_selections(); self.warn_invalid_status_line_items_once(&selections.invalid_status_line_items); self.warn_invalid_terminal_title_items_once(&selections.invalid_terminal_title_items); diff --git a/codex-rs/tui/src/chatwidget/tests.rs b/codex-rs/tui/src/chatwidget/tests.rs index 33efb56033..af379dc148 100644 --- a/codex-rs/tui/src/chatwidget/tests.rs +++ b/codex-rs/tui/src/chatwidget/tests.rs @@ -246,6 +246,8 @@ mod goal_validation; mod guardian; pub(crate) mod helpers; mod history_replay; +#[path = "tests/luna_reserve_usage_tests.rs"] +mod luna_reserve_usage_tests; mod mcp_startup; #[path = "tests/misalignment_policy_tests.rs"] mod misalignment_policy; diff --git a/codex-rs/tui/src/chatwidget/tests/backend_banners_tests.rs b/codex-rs/tui/src/chatwidget/tests/backend_banners_tests.rs index bdb3ff9067..5244de15a4 100644 --- a/codex-rs/tui/src/chatwidget/tests/backend_banners_tests.rs +++ b/codex-rs/tui/src/chatwidget/tests/backend_banners_tests.rs @@ -319,7 +319,10 @@ async fn backend_banner_fallback_candidates_and_notice_follow_selected_model() { response.rate_limit_upsell.as_mut().unwrap()["fallback_model_slugs"] = json!(["hidden-model", "test-model-c", "test-model-b"]); chat.update_backend_banner(&response); - assert_eq!(chat.backend_banner_fallback(), Some(models[2].clone())); + assert_eq!( + chat.backend_banner_fallback().map(|switch| switch.model), + Some(models[2].clone()) + ); // A retained ChatGPT login must not change a task whose server does not require auth. chat.requires_openai_auth = false; assert_eq!(chat.backend_banner_fallback(), None); diff --git a/codex-rs/tui/src/chatwidget/tests/helpers.rs b/codex-rs/tui/src/chatwidget/tests/helpers.rs index e0dc255ae4..9ac2070bec 100644 --- a/codex-rs/tui/src/chatwidget/tests/helpers.rs +++ b/codex-rs/tui/src/chatwidget/tests/helpers.rs @@ -107,6 +107,7 @@ pub(super) fn snapshot(percent: f64) -> RateLimitSnapshot { RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: percent.round() as i32, window_duration_mins: Some(60), diff --git a/codex-rs/tui/src/chatwidget/tests/luna_reserve_usage_tests.rs b/codex-rs/tui/src/chatwidget/tests/luna_reserve_usage_tests.rs new file mode 100644 index 0000000000..fb042b7640 --- /dev/null +++ b/codex-rs/tui/src/chatwidget/tests/luna_reserve_usage_tests.rs @@ -0,0 +1,254 @@ +//! Exercise Reserve picker focus, its status label, and the composer palette across entry and exit. + +use super::helpers::normalize_snapshot_paths; +use super::*; +use crate::terminal_palette::with_test_default_colors; +use crate::terminal_probe::DefaultColors; +use pretty_assertions::assert_eq; +use serde_json::json; + +fn reserve_snapshot(primary_used: i32, weekly_used: i32) -> RateLimitSnapshot { + RateLimitSnapshot { + limit_id: Some("base_model_inference".into()), + limit_name: Some("gpt-reserve".into()), + normal_model_slug: None, + primary: Some(RateLimitWindow { + used_percent: primary_used, + window_duration_mins: Some(300), + resets_at: None, + }), + secondary: Some(RateLimitWindow { + used_percent: weekly_used, + window_duration_mins: Some(10080), + resets_at: None, + }), + ..snapshot(/*percent*/ 0.0) + } +} + +#[tokio::test] +async fn luna_reserve_selector_supports_arrows_enter_shortcuts_and_escape_without_losing_draft() { + for (keys, destination) in [ + ( + vec![KeyCode::Down, KeyCode::Enter], + Some("https://chatgpt.com/?cta_tab=personal&highlight_plan=plus#pricing"), + ), + ( + vec![KeyCode::Down, KeyCode::Up, KeyCode::Enter], + Some("https://chatgpt.com/codex/settings/usage?credits_modal=true"), + ), + ( + vec![KeyCode::Char('1')], + Some("https://chatgpt.com/codex/settings/usage?credits_modal=true"), + ), + ( + vec![KeyCode::Char('2')], + Some("https://chatgpt.com/?cta_tab=personal&highlight_plan=plus#pricing"), + ), + (vec![KeyCode::Down, KeyCode::Esc], None), + ] { + let (mut chat, mut events, _ops) = make_chatwidget_manual(Some("gpt-reserve")).await; + chat.has_chatgpt_account = true; + chat.apply_external_edit("saved draft".into()); + chat.on_rate_limit_snapshot(Some(reserve_snapshot( + /*primary_used*/ 48, /*weekly_used*/ 20, + ))); + let response = serde_json::from_value(json!({ + "accountId": "account-preview", "rateLimits": {}, + "rateLimitUpsell": { + "banner_type": "luna_reserve", "presentation": "dismissible", + "title": "You’re now using Luna, a faster model for simpler tasks.", + "description": "Add credits or upgrade to continue using the most advanced models.", + "ctas": [{"action": "add_credits", "label": "Add credits"}, + {"action": "open_pricing_dialog", "label": "Upgrade"}] + } + })) + .unwrap(); + chat.update_backend_banner(&response); + let rendered = normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 90)); + assert!( + !rendered.contains("saved draft"), + "selector owns input focus" + ); + assert!(rendered.contains("esc to continue working")); + while events.try_recv().is_ok() {} + for key in keys { + chat.handle_key_event(KeyEvent::from(key)); + if key == KeyCode::Down { + insta::assert_snapshot!( + "luna_reserve_selector_second_choice", + normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 90)) + ); + } + } + let queued = std::iter::from_fn(|| events.try_recv().ok()).collect::>(); + let urls: Vec<_> = queued + .iter() + .filter_map(|event| match event { + AppEvent::OpenUrlInBrowser { url } => Some(url.as_str()), + _ => None, + }) + .collect(); + assert_eq!(urls, destination.into_iter().collect::>()); + assert!( + !queued + .iter() + .any(|event| matches!(event, AppEvent::CodexOp(AppCommand::UserTurn { .. }))) + ); + assert_eq!(chat.composer_text_with_pending(), "saved draft"); + // A periodic usage reply must not reopen a selector the user just closed. + chat.update_backend_banner(&response); + let rendered = normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 90)); + assert!(!rendered.contains("You’re now using Luna")); + assert!(rendered.contains("saved draft")); + assert!(rendered.contains("Luna Reserve")); + } +} + +#[tokio::test] +async fn luna_reserve_status_tracks_the_active_model() { + let (mut chat, _rx, _ops) = make_chatwidget_manual(Some("gpt-5.6-sol")).await; + chat.has_chatgpt_account = true; + chat.on_rate_limit_snapshot(Some(reserve_snapshot( + /*primary_used*/ 25, /*weekly_used*/ 60, + ))); + assert!( + !normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 80)) + .contains("Luna Reserve") + ); + + chat.set_model("gpt-reserve"); + let rendered = normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 80)); + assert!(rendered.contains("Luna Reserve default")); + insta::assert_snapshot!("luna_reserve_usage_wide", rendered); + insta::assert_snapshot!( + "luna_reserve_usage_narrow", + normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 34)) + ); + + chat.set_model("gpt-5.6-sol"); + assert!( + !normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 80)) + .contains("Luna Reserve") + ); + chat.set_model("gpt-reserve"); + assert!( + normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 80)).contains("Luna Reserve") + ); +} + +#[tokio::test] +async fn luna_reserve_usage_survives_banner_dismissal_and_typing_during_a_turn() { + let (mut chat, _rx, _ops) = make_chatwidget_manual(Some("gpt-reserve")).await; + chat.has_chatgpt_account = true; + chat.on_rate_limit_snapshot(Some(reserve_snapshot( + /*primary_used*/ 48, /*weekly_used*/ 20, + ))); + let response = codex_app_server_protocol::GetAccountRateLimitsResponse { + ordinary_usage_allowed: Some(false), + account_id: Some("account-preview".into()), + rate_limits: snapshot(/*percent*/ 100.0), + rate_limits_by_limit_id: None, + rate_limit_reset_credits: None, + rate_limit_upsell: Some(json!({ + "banner_type": "luna_reserve", "presentation": "dismissible", + "title": "You’re now using Luna, a faster model for simpler tasks.", + "description": "Add credits or upgrade to continue using the most advanced models.", + "ctas": [ + {"action": "add_credits", "label": "Add credits"}, + {"action": "open_pricing_dialog", "label": "Upgrade"} + ] + })), + }; + chat.update_backend_banner(&response); + for colors in [ + DefaultColors { + fg: (230, 230, 230), + bg: (20, 20, 20), + }, + DefaultColors { + fg: (25, 25, 25), + bg: (255, 255, 255), + }, + ] { + with_test_default_colors(colors, || { + let area = Rect::new(0, 0, 80, chat.bottom_pane.desired_height(/*width*/ 80)); + let mut buffer = Buffer::empty(area); + chat.bottom_pane.render(area, &mut buffer); + // Do not rely on the terminal's bold default foreground or dim important copy. + for (y, text) in buffer + .content + .chunks(80) + .enumerate() + .filter_map(|(y, row)| { + let text: String = row.iter().map(ratatui::buffer::Cell::symbol).collect(); + (text.contains("You’re now using Luna") + || text.contains("Add credits or upgrade")) + .then_some((y as u16, text)) + }) + { + let copy = &buffer[(2, y)]; + assert_eq!(copy.fg, crate::terminal_palette::rgb_color(colors.fg)); + assert!( + !copy.modifier.contains(ratatui::style::Modifier::DIM), + "{text}" + ); + } + }); + } + insta::assert_snapshot!( + "luna_reserve_usage_with_upsell", + normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 80)) + ); + chat.handle_key_event(KeyEvent::new(KeyCode::Esc, KeyModifiers::NONE)); + assert!( + !normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 80)) + .contains("You’re now using Luna") + ); + chat.bottom_pane.set_task_running(/*running*/ true); + chat.handle_key_event(KeyEvent::new(KeyCode::Char('x'), KeyModifiers::NONE)); + chat.handle_key_event(KeyEvent::new(KeyCode::Left, KeyModifiers::NONE)); + let rendered = normalize_snapshot_paths(render_bottom_popup(&chat, /*width*/ 80)); + assert_eq!(chat.composer_text_with_pending(), "x"); + insta::assert_snapshot!("luna_reserve_usage_running", rendered); +} + +#[tokio::test] +async fn luna_reserve_prompt_preserves_the_composer_palette_on_exit() { + let (mut chat, _rx, _ops) = make_chatwidget_manual(Some("gpt-reserve")).await; + chat.has_chatgpt_account = true; + chat.on_rate_limit_snapshot(Some(reserve_snapshot( + /*primary_used*/ 25, /*weekly_used*/ 60, + ))); + for colors in [ + DefaultColors { + fg: (230, 230, 230), + bg: (20, 20, 20), + }, + DefaultColors { + fg: (25, 25, 25), + bg: (255, 255, 255), + }, + ] { + with_test_default_colors(colors, || { + chat.set_model("gpt-reserve"); + let area = Rect::new(0, 0, 80, chat.bottom_pane.desired_height(/*width*/ 80)); + let mut active = Buffer::empty(area); + chat.bottom_pane.render(area, &mut active); + let cursor = chat.bottom_pane.cursor_pos(area).expect("composer cursor"); + let ordinary_style = crate::style::user_message_style(); + assert_eq!(active[(0, cursor.1)].bg, ordinary_style.bg.unwrap()); + assert_eq!(active[(0, cursor.1)].bg, active[(0, cursor.1 - 1)].bg); + chat.set_model("gpt-5.6-sol"); + let area = Rect::new(0, 0, 80, chat.bottom_pane.desired_height(/*width*/ 80)); + let mut inactive = Buffer::empty(area); + chat.bottom_pane.render(area, &mut inactive); + let restored_cursor = chat.bottom_pane.cursor_pos(area).expect("composer cursor"); + assert_eq!( + inactive[(0, restored_cursor.1)].bg, + ordinary_style.bg.unwrap() + ); + assert_eq!(restored_cursor.1, cursor.1); + }); + } +} diff --git a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__backend_banners_tests__backend_banner_notification.snap b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__backend_banners_tests__backend_banner_notification.snap index 7f16786846..49046392aa 100644 --- a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__backend_banners_tests__backend_banner_notification.snap +++ b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__backend_banners_tests__backend_banner_notification.snap @@ -1,11 +1,9 @@ --- source: tui/src/chatwidget/tests/backend_banners_tests.rs -assertion_line: 50 -expression: "render_bottom_popup(&chat, 70)" +expression: "normalize_snapshot_paths(render_bottom_popup(&chat, 70))" --- Selected model usage exhausted Ask your owner for credits or switch to another model. - › 1. Notify owner Press a number to choose diff --git a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_selector_second_choice.snap b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_selector_second_choice.snap new file mode 100644 index 0000000000..6c12866001 --- /dev/null +++ b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_selector_second_choice.snap @@ -0,0 +1,12 @@ +--- +source: tui/src/chatwidget/tests/luna_reserve_usage_tests.rs +expression: "normalize_snapshot_paths(render_bottom_popup(&chat, 90))" +--- + You’re now using Luna, a faster model for simpler tasks. + Add credits or upgrade to continue using the most advanced models. + + 1. Add credits +› 2. Upgrade + 3. Continue with Luna Reserve + + Press enter to confirm or esc to continue working diff --git a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_narrow.snap b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_narrow.snap new file mode 100644 index 0000000000..0644d12b6f --- /dev/null +++ b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_narrow.snap @@ -0,0 +1,8 @@ +--- +source: tui/src/chatwidget/tests/luna_reserve_usage_tests.rs +expression: "render_bottom_popup(&chat, 34)" +--- + +› Ask Codex to do anything + + Luna Reserve default · /tmp/pro… diff --git a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_running.snap b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_running.snap new file mode 100644 index 0000000000..4f4664d17a --- /dev/null +++ b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_running.snap @@ -0,0 +1,10 @@ +--- +source: tui/src/chatwidget/tests/luna_reserve_usage_tests.rs +expression: rendered +--- +• Working (0s • esc to interrupt) + + +› x + + tab to queue message 100% context left diff --git a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_wide.snap b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_wide.snap new file mode 100644 index 0000000000..d6537e354d --- /dev/null +++ b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_wide.snap @@ -0,0 +1,8 @@ +--- +source: tui/src/chatwidget/tests/luna_reserve_usage_tests.rs +expression: rendered +--- + +› Ask Codex to do anything + + Luna Reserve default · /tmp/project diff --git a/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_with_upsell.snap b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_with_upsell.snap new file mode 100644 index 0000000000..2159b29177 --- /dev/null +++ b/codex-rs/tui/src/chatwidget/tests/snapshots/codex_tui__chatwidget__tests__luna_reserve_usage_tests__luna_reserve_usage_with_upsell.snap @@ -0,0 +1,12 @@ +--- +source: tui/src/chatwidget/tests/luna_reserve_usage_tests.rs +expression: "normalize_snapshot_paths(render_bottom_popup(&chat, 80))" +--- + You’re now using Luna, a faster model for simpler tasks. + Add credits or upgrade to continue using the most advanced models. + +› 1. Add credits + 2. Upgrade + 3. Continue with Luna Reserve + + Press enter to confirm or esc to continue working diff --git a/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs b/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs index 300dcb55e2..19fcf63bf8 100644 --- a/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs +++ b/codex-rs/tui/src/chatwidget/tests/status_and_layout.rs @@ -706,6 +706,7 @@ async fn status_line_uses_secondary_fallback_for_unsupported_window() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: Some(RateLimitWindow { used_percent: 50, @@ -732,6 +733,7 @@ async fn status_line_legacy_limit_items_prefer_matching_windows() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 94, window_duration_mins: Some(7 * 24 * 60), @@ -766,6 +768,7 @@ async fn status_line_shows_secondary_non_weekly_when_primary_is_weekly() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 94, window_duration_mins: Some(7 * 24 * 60), @@ -800,6 +803,7 @@ async fn status_line_five_hour_item_omits_weekly_only_limit() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 9, window_duration_mins: Some(7 * 24 * 60), @@ -830,6 +834,7 @@ async fn status_line_single_monthly_primary_omits_weekly_limit_item() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 35, window_duration_mins: Some(30 * 24 * 60), @@ -860,6 +865,7 @@ async fn status_line_secondary_only_non_weekly_limit_omits_primary_limit_item() chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: Some(RateLimitWindow { used_percent: 35, @@ -890,7 +896,12 @@ async fn rate_limit_snapshot_keeps_prior_credits_when_missing_from_headers() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, - primary: None, + normal_model_slug: None, + primary: Some(RateLimitWindow { + used_percent: 10, + window_duration_mins: Some(60), + resets_at: Some(123), + }), secondary: None, credits: Some(CreditsSnapshot { has_credits: true, @@ -912,6 +923,7 @@ async fn rate_limit_snapshot_keeps_prior_credits_when_missing_from_headers() { chat.on_rolling_rate_limit_snapshot(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 80, window_duration_mins: Some(60), @@ -938,7 +950,7 @@ async fn rate_limit_snapshot_keeps_prior_credits_when_missing_from_headers() { assert!(!credits.unlimited); assert_eq!( display.primary.as_ref().map(|window| window.used_percent), - Some(80.0) + Some(10.0) ); } @@ -983,6 +995,7 @@ async fn rate_limit_snapshot_updates_and_retains_plan_type() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 10, window_duration_mins: Some(60), @@ -1004,6 +1017,7 @@ async fn rate_limit_snapshot_updates_and_retains_plan_type() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 25, window_duration_mins: Some(30), @@ -1025,6 +1039,7 @@ async fn rate_limit_snapshot_updates_and_retains_plan_type() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 30, window_duration_mins: Some(60), @@ -1051,6 +1066,7 @@ async fn rate_limit_snapshots_keep_separate_entries_per_limit_id() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: Some("codex".to_string()), limit_name: Some("codex".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 20, window_duration_mins: Some(300), @@ -1071,6 +1087,7 @@ async fn rate_limit_snapshots_keep_separate_entries_per_limit_id() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: Some("codex_other".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 90, window_duration_mins: Some(60), @@ -1126,6 +1143,7 @@ async fn rate_limit_switch_prompt_skips_non_codex_limit() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: Some("codex_other".to_string()), limit_name: Some("codex_other".to_string()), + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 95, window_duration_mins: Some(60), diff --git a/codex-rs/tui/src/chatwidget/tests/status_surface_previews.rs b/codex-rs/tui/src/chatwidget/tests/status_surface_previews.rs index ef7e122ff8..2e8a8a5b29 100644 --- a/codex-rs/tui/src/chatwidget/tests/status_surface_previews.rs +++ b/codex-rs/tui/src/chatwidget/tests/status_surface_previews.rs @@ -67,6 +67,7 @@ fn cache_rate_limit_snapshot(chat: &mut ChatWidget) { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 35, window_duration_mins: Some(30 * 24 * 60), @@ -353,6 +354,7 @@ async fn status_surface_preview_omits_unavailable_rate_limit_items() { chat.on_rate_limit_snapshot(Some(RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 9, window_duration_mins: Some(7 * 24 * 60), diff --git a/codex-rs/tui/src/chatwidget/turn_runtime.rs b/codex-rs/tui/src/chatwidget/turn_runtime.rs index 5f2ea9ed28..d57546436e 100644 --- a/codex-rs/tui/src/chatwidget/turn_runtime.rs +++ b/codex-rs/tui/src/chatwidget/turn_runtime.rs @@ -401,6 +401,7 @@ impl ChatWidget { } pub(super) fn on_rate_limit_error(&mut self, error_kind: RateLimitErrorKind, message: String) { + self.invalidate_ordinary_usage_recovery(); // on_error can drain queued input, before the asynchronous recovery read completes. self.input_queue.rate_limit_recovery_pending = self.has_chatgpt_account; let usage_limit_error = matches!(error_kind, RateLimitErrorKind::UsageLimit); diff --git a/codex-rs/tui/src/history_cell/session.rs b/codex-rs/tui/src/history_cell/session.rs index 87e0c7326c..4af9a17fee 100644 --- a/codex-rs/tui/src/history_cell/session.rs +++ b/codex-rs/tui/src/history_cell/session.rs @@ -266,7 +266,7 @@ impl SessionHeaderHistoryCell { ) -> Self { Self { version, - model, + model: crate::model_catalog::model_display_name(&model).to_string(), model_style, reasoning_effort, show_fast_status, diff --git a/codex-rs/tui/src/model_catalog.rs b/codex-rs/tui/src/model_catalog.rs index 69c9ded566..bbef579e81 100644 --- a/codex-rs/tui/src/model_catalog.rs +++ b/codex-rs/tui/src/model_catalog.rs @@ -1,6 +1,19 @@ +//! TUI model inventory and user-facing labels; wire requests retain their original model slugs. + use codex_protocol::openai_models::ModelPreset; use std::convert::Infallible; +pub(crate) const LUNA_RESERVE_MODEL: &str = "gpt-reserve"; +pub(crate) const LUNA_MODEL: &str = "gpt-5.6-luna"; + +pub(crate) fn model_display_name(model: &str) -> &str { + if model.eq_ignore_ascii_case(LUNA_RESERVE_MODEL) { + "Luna Reserve" + } else { + model + } +} + #[derive(Debug, Clone)] pub(crate) struct ModelCatalog { models: Vec, diff --git a/codex-rs/tui/src/status/rate_limits.rs b/codex-rs/tui/src/status/rate_limits.rs index aaf54df448..2099647d7b 100644 --- a/codex-rs/tui/src/status/rate_limits.rs +++ b/codex-rs/tui/src/status/rate_limits.rs @@ -95,6 +95,8 @@ impl RateLimitWindowDisplay { pub(crate) struct RateLimitSnapshotDisplay { /// Canonical limit identifier (for example: `codex` or `codex_other`). pub limit_name: String, + /// Optional normal model associated with this account-read quota alias. + pub normal_model_slug: Option, /// Local timestamp representing when this display snapshot was captured. pub captured_at: DateTime, /// Primary usage window. @@ -147,6 +149,7 @@ pub(crate) fn rate_limit_snapshot_display_for_limit( captured_at: DateTime, ) -> RateLimitSnapshotDisplay { RateLimitSnapshotDisplay { + normal_model_slug: snapshot.normal_model_slug.clone(), limit_name, captured_at, primary: snapshot @@ -216,7 +219,19 @@ pub(crate) fn compose_rate_limit_data_many( let mut rows = Vec::with_capacity(snapshots.len().saturating_mul(3)); let mut stale = false; - for snapshot in snapshots { + // Show ordinary plan usage before model-specific quotas, regardless of backend bucket IDs. + let mut ordered_snapshots = snapshots.iter().collect::>(); + ordered_snapshots.sort_by_key(|snapshot| !snapshot.limit_name.eq_ignore_ascii_case("codex")); + for snapshot in ordered_snapshots { + let credit_row = snapshot.credits.as_ref().and_then(credit_status_row); + // Metadata-only buckets have no visible values and should not leave an empty heading. + if snapshot.primary.is_none() + && snapshot.secondary.is_none() + && credit_row.is_none() + && snapshot.individual_limit.is_none() + { + continue; + } stale |= now.signed_duration_since(snapshot.captured_at) > ChronoDuration::minutes(RATE_LIMIT_STALE_THRESHOLD_MINUTES); stale |= snapshot @@ -228,7 +243,7 @@ pub(crate) fn compose_rate_limit_data_many( }) .unwrap_or(false); - let limit_bucket_label = snapshot.limit_name.clone(); + let limit_bucket_label = crate::model_catalog::model_display_name(&snapshot.limit_name); let show_limit_prefix = !limit_bucket_label.eq_ignore_ascii_case("codex"); let primary_label = snapshot .primary @@ -307,9 +322,7 @@ pub(crate) fn compose_rate_limit_data_many( }); } - if let Some(credits) = snapshot.credits.as_ref() - && let Some(row) = credit_status_row(credits) - { + if let Some(row) = credit_row { rows.push(row); } if let Some(individual_limit) = snapshot.individual_limit.as_ref() { @@ -341,10 +354,15 @@ pub(crate) fn compose_rate_limit_data_many( /// This function expects a remaining value in the `0..=100` range and clamps out-of-range input. /// Passing a used percentage by mistake will invert the bar and mislead users. pub(crate) fn render_status_limit_progress_bar(percent_remaining: f64) -> String { + render_limit_progress_bar(percent_remaining, STATUS_LIMIT_BAR_SEGMENTS) +} + +/// Shared bar geometry for the status card and compact composer usage indicators. +pub(crate) fn render_limit_progress_bar(percent_remaining: f64, segments: usize) -> String { let ratio = (percent_remaining / 100.0).clamp(0.0, 1.0); - let filled = (ratio * STATUS_LIMIT_BAR_SEGMENTS as f64).round() as usize; - let filled = filled.min(STATUS_LIMIT_BAR_SEGMENTS); - let empty = STATUS_LIMIT_BAR_SEGMENTS.saturating_sub(filled); + let filled = (ratio * segments as f64).round() as usize; + let filled = filled.min(segments); + let empty = segments.saturating_sub(filled); format!( "[{}{}]", STATUS_LIMIT_BAR_FILLED.repeat(filled), @@ -438,6 +456,7 @@ mod tests { let now = Local::now(); let codex = RateLimitSnapshotDisplay { limit_name: "codex".to_string(), + normal_model_slug: None, captured_at: now, primary: Some(window(/*used_percent*/ 10.0)), secondary: None, @@ -450,6 +469,7 @@ mod tests { }; let other = RateLimitSnapshotDisplay { limit_name: "codex-other".to_string(), + normal_model_slug: None, captured_at: now, primary: Some(window(/*used_percent*/ 20.0)), secondary: None, @@ -484,6 +504,7 @@ mod tests { let now = Local::now(); let other = RateLimitSnapshotDisplay { limit_name: "codex-other".to_string(), + normal_model_slug: None, captured_at: now, primary: Some(RateLimitWindowDisplay { used_percent: 20.0, diff --git a/codex-rs/tui/src/status/tests.rs b/codex-rs/tui/src/status/tests.rs index f8e23fd730..6a408c1434 100644 --- a/codex-rs/tui/src/status/tests.rs +++ b/codex-rs/tui/src/status/tests.rs @@ -64,6 +64,7 @@ fn stale_monthly_limit_marks_fresh_rolling_snapshot_stale() { let now = Local::now(); let snapshot = RateLimitSnapshotDisplay { limit_name: "codex".to_string(), + normal_model_slug: None, captured_at: now, primary: Some(RateLimitWindowDisplay { used_percent: 20.0, @@ -306,6 +307,7 @@ async fn status_snapshot_includes_reasoning_details() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 72, window_duration_mins: Some(300), @@ -999,6 +1001,7 @@ async fn status_snapshot_includes_monthly_limit() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 12, window_duration_mins: Some(43_200), @@ -1063,6 +1066,7 @@ async fn status_snapshot_includes_enterprise_monthly_credit_limit() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: None, @@ -1141,6 +1145,7 @@ async fn status_snapshot_uses_generic_limit_labels_for_unsupported_windows() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 35, window_duration_mins: Some(2 * 60), @@ -1199,6 +1204,7 @@ async fn status_snapshot_shows_unlimited_credits() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: Some(CreditsSnapshot { @@ -1251,6 +1257,7 @@ async fn status_snapshot_shows_positive_credits() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: Some(CreditsSnapshot { @@ -1312,6 +1319,7 @@ async fn status_snapshot_shows_available_credits_without_display_balance() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: Some(CreditsSnapshot { @@ -1363,6 +1371,7 @@ async fn status_snapshot_respects_unlimited_without_has_credits_flag() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: Some(CreditsSnapshot { @@ -1473,6 +1482,7 @@ async fn status_snapshot_truncates_in_narrow_terminal() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 72, window_duration_mins: Some(300), @@ -1678,6 +1688,7 @@ async fn status_snapshot_shows_refreshing_limits_notice() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 45, window_duration_mins: Some(300), @@ -1769,6 +1780,7 @@ async fn transcript_overlay_remeasures_status_after_rate_limit_refresh() { handle.finish_rate_limit_refresh( &[RateLimitSnapshotDisplay { limit_name: "spark".to_string(), + normal_model_slug: None, captured_at: now, primary: Some(RateLimitWindowDisplay { used_percent: 45.0, @@ -1831,6 +1843,7 @@ async fn status_snapshot_includes_credits_and_limits() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 45, window_duration_mins: Some(300), @@ -1899,6 +1912,7 @@ async fn status_snapshot_shows_unavailable_limits_message() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: None, @@ -1958,6 +1972,7 @@ async fn status_snapshot_treats_refreshing_empty_limits_as_unavailable() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: None, secondary: None, credits: None, @@ -2023,6 +2038,7 @@ async fn status_snapshot_shows_stale_limits_message() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 72, window_duration_mins: Some(300), @@ -2092,6 +2108,7 @@ async fn status_snapshot_cached_limits_hide_credits_without_flag() { let snapshot = RateLimitSnapshot { limit_id: None, limit_name: None, + normal_model_slug: None, primary: Some(RateLimitWindow { used_percent: 60, window_duration_mins: Some(300), diff --git a/codex-rs/tui/src/status/thread_usage.rs b/codex-rs/tui/src/status/thread_usage.rs index 49fd4c6c3d..60948689fd 100644 --- a/codex-rs/tui/src/status/thread_usage.rs +++ b/codex-rs/tui/src/status/thread_usage.rs @@ -263,6 +263,7 @@ fn grouped_usage( } fn format_model_display_name(model: &str) -> String { + let model = crate::model_catalog::model_display_name(model); let Some((prefix, remainder)) = model.split_once('-') else { return model.to_string(); };