mirror of
https://github.com/openai/codex.git
synced 2026-11-11 14:32:25 +00:00
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
This commit is contained in:
1 parent
76f47103fe
commit
5037919777
76 files changed
+1907
-135
No files matched your search
@@ -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,
|
||||
|
||||
Reference in new issue
Block a user