agent: Log errors from token counting APIs (#29626)

Release Notes:

- N/A
This commit is contained in:
Michael Sloan 2025-04-29 15:55:54 -06:00 committed by GitHub
parent f7a3e00074
commit 33abf1ee7c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 100 additions and 86 deletions

View file

@ -702,7 +702,7 @@ struct EditMessageState {
editor: Entity<Editor>, editor: Entity<Editor>,
last_estimated_token_count: Option<usize>, last_estimated_token_count: Option<usize>,
_subscription: Subscription, _subscription: Subscription,
_update_token_count_task: Option<Task<anyhow::Result<()>>>, _update_token_count_task: Option<Task<()>>,
} }
impl ActiveThread { impl ActiveThread {
@ -1268,7 +1268,8 @@ impl ActiveThread {
.await; .await;
} }
let token_count = if let Some(task) = cx.update(|cx| { let token_count = if let Some(task) = cx
.update(|cx| {
let Some(message) = thread.read(cx).message(message_id) else { let Some(message) = thread.read(cx).message(message_id) else {
log::error!("Message that was being edited no longer exists"); log::error!("Message that was being edited no longer exists");
return None; return None;
@ -1306,12 +1307,16 @@ impl ActiveThread {
}; };
Some(configured_model.model.count_tokens(request, cx)) Some(configured_model.model.count_tokens(request, cx))
})? { })
task.await? .ok()
.flatten()
{
task.await.log_err()
} else { } else {
0 Some(0)
}; };
if let Some(token_count) = token_count {
this.update(cx, |this, cx| { this.update(cx, |this, cx| {
let Some((_message_id, state)) = this.editing_message.as_mut() else { let Some((_message_id, state)) = this.editing_message.as_mut() else {
return; return;
@ -1320,6 +1325,8 @@ impl ActiveThread {
state.last_estimated_token_count = Some(token_count); state.last_estimated_token_count = Some(token_count);
cx.emit(ActiveThreadEvent::EditingMessageTokenCountChanged); cx.emit(ActiveThreadEvent::EditingMessageTokenCountChanged);
}) })
.ok();
};
})); }));
} }

View file

@ -63,7 +63,7 @@ pub struct MessageEditor {
edits_expanded: bool, edits_expanded: bool,
editor_is_expanded: bool, editor_is_expanded: bool,
last_estimated_token_count: Option<usize>, last_estimated_token_count: Option<usize>,
update_token_count_task: Option<Task<anyhow::Result<()>>>, update_token_count_task: Option<Task<()>>,
_subscriptions: Vec<Subscription>, _subscriptions: Vec<Subscription>,
} }
@ -1088,7 +1088,8 @@ impl MessageEditor {
.await; .await;
} }
let token_count = if let Some(task) = this.update(cx, |this, cx| { let token_count = if let Some(task) = this
.update(cx, |this, cx| {
let loaded_context = this let loaded_context = this
.last_loaded_context .last_loaded_context
.as_ref() .as_ref()
@ -1128,17 +1129,23 @@ impl MessageEditor {
}; };
Some(model.model.count_tokens(request, cx)) Some(model.model.count_tokens(request, cx))
})? { })
task.await? .ok()
.flatten()
{
task.await.log_err()
} else { } else {
0 Some(0)
}; };
if let Some(token_count) = token_count {
this.update(cx, |this, cx| { this.update(cx, |this, cx| {
this.last_estimated_token_count = Some(token_count); this.last_estimated_token_count = Some(token_count);
cx.emit(MessageEditorEvent::EstimatedTokenCount); cx.emit(MessageEditorEvent::EstimatedTokenCount);
this.update_token_count_task.take(); this.update_token_count_task.take();
}) })
.ok();
}
})); }));
} }
} }