Cherry-pick "agent_ui: Fix token count not getting shown in the TextThread (#34485)" into v0.195.x (#34550)

Manual cherry-pick of #34485 into v0.195.x

Release Notes:

- Fix token count not getting shown in the TextThread

Co-authored-by: Umesh Yadav <23421535+imumesh18@users.noreply.github.com>
This commit is contained in:
Cole Miller 2025-07-16 12:01:15 -04:00 committed by GitHub
parent fa815dbf70
commit 662a13f034
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1888,16 +1888,14 @@ impl AgentPanel {
} }
fn render_token_count(&self, cx: &App) -> Option<AnyElement> { fn render_token_count(&self, cx: &App) -> Option<AnyElement> {
let (active_thread, message_editor) = match &self.active_view { match &self.active_view {
ActiveView::Thread { ActiveView::Thread {
thread, thread,
message_editor, message_editor,
.. ..
} => (thread.read(cx), message_editor.read(cx)), } => {
ActiveView::TextThread { .. } | ActiveView::History | ActiveView::Configuration => { let active_thread = thread.read(cx);
return None; let message_editor = message_editor.read(cx);
}
};
let editor_empty = message_editor.is_editor_fully_empty(cx); let editor_empty = message_editor.is_editor_fully_empty(cx);
@ -1910,23 +1908,25 @@ impl AgentPanel {
let conversation_token_usage = thread.total_token_usage()?; let conversation_token_usage = thread.total_token_usage()?;
let (total_token_usage, is_estimating) = let (total_token_usage, is_estimating) =
if let Some((editing_message_id, unsent_tokens)) = active_thread.editing_message_id() { if let Some((editing_message_id, unsent_tokens)) =
active_thread.editing_message_id()
{
let combined = thread let combined = thread
.token_usage_up_to_message(editing_message_id) .token_usage_up_to_message(editing_message_id)
.add(unsent_tokens); .add(unsent_tokens);
(combined, unsent_tokens > 0) (combined, unsent_tokens > 0)
} else { } else {
let unsent_tokens = message_editor.last_estimated_token_count().unwrap_or(0); let unsent_tokens =
message_editor.last_estimated_token_count().unwrap_or(0);
let combined = conversation_token_usage.add(unsent_tokens); let combined = conversation_token_usage.add(unsent_tokens);
(combined, unsent_tokens > 0) (combined, unsent_tokens > 0)
}; };
let is_waiting_to_update_token_count = message_editor.is_waiting_to_update_token_count(); let is_waiting_to_update_token_count =
message_editor.is_waiting_to_update_token_count();
match &self.active_view {
ActiveView::Thread { .. } => {
if total_token_usage.total == 0 { if total_token_usage.total == 0 {
return None; return None;
} }