fix(tui): clear all displayed cost state

This commit is contained in:
Hunter Bown
2026-05-21 00:13:02 +08:00
parent 6821f294e2
commit d065241c93
+26
View File
@@ -57,6 +57,11 @@ pub fn clear(app: &mut App) -> CommandResult {
app.session.total_conversation_tokens = 0;
app.session.session_cost = 0.0;
app.session.session_cost_cny = 0.0;
app.session.subagent_cost = 0.0;
app.session.subagent_cost_cny = 0.0;
app.session.subagent_cost_event_seqs.clear();
app.session.displayed_cost_high_water = 0.0;
app.session.displayed_cost_high_water_cny = 0.0;
let todos_cleared = app.clear_todos();
app.tool_log.clear();
app.tool_cells.clear();
@@ -69,7 +74,9 @@ pub fn clear(app: &mut App) -> CommandResult {
app.session.last_completion_tokens = None;
app.session.last_prompt_cache_hit_tokens = None;
app.session.last_prompt_cache_miss_tokens = None;
app.session.last_reasoning_replay_tokens = None;
app.session.turn_cache_history.clear();
app.session.last_cache_inspection = None;
app.current_session_id = None;
let locale = app.ui_locale;
let message = if todos_cleared {
@@ -370,6 +377,7 @@ pub fn translate(app: &mut App) -> CommandResult {
#[cfg(test)]
mod tests {
use super::*;
use crate::client::PromptInspection;
use crate::config::Config;
use crate::models::Message;
use crate::tui::app::{App, AppMode, TuiOptions, TurnCacheRecord};
@@ -523,8 +531,19 @@ mod tests {
app.session.total_conversation_tokens = 123;
app.session.session_cost = 0.42;
app.session.session_cost_cny = 3.05;
app.session.subagent_cost = 0.11;
app.session.subagent_cost_cny = 0.80;
app.session.subagent_cost_event_seqs.insert(7);
app.session.displayed_cost_high_water = 0.53;
app.session.displayed_cost_high_water_cny = 3.85;
app.session.last_prompt_cache_hit_tokens = Some(70);
app.session.last_prompt_cache_miss_tokens = Some(30);
app.session.last_reasoning_replay_tokens = Some(12);
app.session.last_cache_inspection = Some(PromptInspection {
base_static_prefix_hash: "base".to_string(),
full_request_prefix_hash: "full".to_string(),
layers: Vec::new(),
});
app.push_turn_cache_record(TurnCacheRecord {
input_tokens: 100,
output_tokens: 25,
@@ -540,9 +559,16 @@ mod tests {
assert_eq!(app.session.total_conversation_tokens, 0);
assert_eq!(app.session.session_cost, 0.0);
assert_eq!(app.session.session_cost_cny, 0.0);
assert_eq!(app.session.subagent_cost, 0.0);
assert_eq!(app.session.subagent_cost_cny, 0.0);
assert!(app.session.subagent_cost_event_seqs.is_empty());
assert_eq!(app.session.displayed_cost_high_water, 0.0);
assert_eq!(app.session.displayed_cost_high_water_cny, 0.0);
assert_eq!(app.session.last_prompt_cache_hit_tokens, None);
assert_eq!(app.session.last_prompt_cache_miss_tokens, None);
assert_eq!(app.session.last_reasoning_replay_tokens, None);
assert!(app.session.turn_cache_history.is_empty());
assert_eq!(app.session.last_cache_inspection, None);
}
#[test]