fix: taking plan type from usage endpoint instead of thru auth token (#7610)

pull plan type from the usage endpoint, persist it in session state /
tui state, and propagate through rate limit snapshots
This commit is contained in:
zhao-oai
2025-12-04 23:34:13 -08:00
committed by GitHub
parent b1c918d8f7
commit b8eab7ce90
17 changed files with 224 additions and 35 deletions

View File

@@ -120,6 +120,7 @@ fn status_snapshot_includes_reasoning_details() {
resets_at: Some(reset_at_from(&captured_at, 1_200)),
}),
credits: None,
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
@@ -130,6 +131,7 @@ fn status_snapshot_includes_reasoning_details() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let mut rendered_lines = render_lines(&composite.display_lines(80));
@@ -171,6 +173,7 @@ fn status_snapshot_includes_monthly_limit() {
}),
secondary: None,
credits: None,
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
@@ -181,6 +184,7 @@ fn status_snapshot_includes_monthly_limit() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let mut rendered_lines = render_lines(&composite.display_lines(80));
@@ -211,6 +215,7 @@ fn status_snapshot_shows_unlimited_credits() {
unlimited: true,
balance: None,
}),
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
let composite = new_status_output(
@@ -220,6 +225,7 @@ fn status_snapshot_shows_unlimited_credits() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let rendered = render_lines(&composite.display_lines(120));
@@ -249,6 +255,7 @@ fn status_snapshot_shows_positive_credits() {
unlimited: false,
balance: Some("12.5".to_string()),
}),
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
let composite = new_status_output(
@@ -258,6 +265,7 @@ fn status_snapshot_shows_positive_credits() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let rendered = render_lines(&composite.display_lines(120));
@@ -287,6 +295,7 @@ fn status_snapshot_hides_zero_credits() {
unlimited: false,
balance: Some("0".to_string()),
}),
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
let composite = new_status_output(
@@ -296,6 +305,7 @@ fn status_snapshot_hides_zero_credits() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let rendered = render_lines(&composite.display_lines(120));
@@ -323,6 +333,7 @@ fn status_snapshot_hides_when_has_no_credits_flag() {
unlimited: true,
balance: None,
}),
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
let composite = new_status_output(
@@ -332,6 +343,7 @@ fn status_snapshot_hides_when_has_no_credits_flag() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let rendered = render_lines(&composite.display_lines(120));
@@ -369,6 +381,7 @@ fn status_card_token_usage_excludes_cached_tokens() {
Some(&usage),
&None,
None,
None,
now,
);
let rendered = render_lines(&composite.display_lines(120));
@@ -410,6 +423,7 @@ fn status_snapshot_truncates_in_narrow_terminal() {
}),
secondary: None,
credits: None,
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
@@ -420,6 +434,7 @@ fn status_snapshot_truncates_in_narrow_terminal() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let mut rendered_lines = render_lines(&composite.display_lines(70));
@@ -461,6 +476,7 @@ fn status_snapshot_shows_missing_limits_message() {
Some(&usage),
&None,
None,
None,
now,
);
let mut rendered_lines = render_lines(&composite.display_lines(80));
@@ -509,6 +525,7 @@ fn status_snapshot_includes_credits_and_limits() {
unlimited: false,
balance: Some("37.5".to_string()),
}),
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
@@ -519,6 +536,7 @@ fn status_snapshot_includes_credits_and_limits() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let mut rendered_lines = render_lines(&composite.display_lines(80));
@@ -551,6 +569,7 @@ fn status_snapshot_shows_empty_limits_message() {
primary: None,
secondary: None,
credits: None,
plan_type: None,
};
let captured_at = chrono::Local
.with_ymd_and_hms(2024, 6, 7, 8, 9, 10)
@@ -565,6 +584,7 @@ fn status_snapshot_shows_empty_limits_message() {
Some(&usage),
&None,
Some(&rate_display),
None,
captured_at,
);
let mut rendered_lines = render_lines(&composite.display_lines(80));
@@ -609,6 +629,7 @@ fn status_snapshot_shows_stale_limits_message() {
resets_at: Some(reset_at_from(&captured_at, 1_800)),
}),
credits: None,
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
let now = captured_at + ChronoDuration::minutes(20);
@@ -620,6 +641,7 @@ fn status_snapshot_shows_stale_limits_message() {
Some(&usage),
&None,
Some(&rate_display),
None,
now,
);
let mut rendered_lines = render_lines(&composite.display_lines(80));
@@ -668,6 +690,7 @@ fn status_snapshot_cached_limits_hide_credits_without_flag() {
unlimited: false,
balance: Some("80".to_string()),
}),
plan_type: None,
};
let rate_display = rate_limit_snapshot_display(&snapshot, captured_at);
let now = captured_at + ChronoDuration::minutes(20);
@@ -679,6 +702,7 @@ fn status_snapshot_cached_limits_hide_credits_without_flag() {
Some(&usage),
&None,
Some(&rate_display),
None,
now,
);
let mut rendered_lines = render_lines(&composite.display_lines(80));
@@ -725,6 +749,7 @@ fn status_context_window_uses_last_usage() {
Some(&last_usage),
&None,
None,
None,
now,
);
let rendered_lines = render_lines(&composite.display_lines(80));