agent: Fix issues with usage display sometimes showing initially fetched usage (#33125)
Having `Thread::last_usage` as an override of the initially fetched usage could cause the initial usage to be displayed when the current thread is empty or in text threads. Fix is to just store last usage info in `UserStore` and not have these overrides Release Notes: - Agent: Fixed request usage display to always include the most recently known usage - there were some cases where it would show the initially requested usage.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
use anthropic::{AnthropicModelMode, parse_prompt_too_long};
|
||||
use anyhow::{Context as _, Result, anyhow};
|
||||
use client::{Client, UserStore, zed_urls};
|
||||
use client::{Client, ModelRequestUsage, UserStore, zed_urls};
|
||||
use futures::{
|
||||
AsyncBufReadExt, FutureExt, Stream, StreamExt, future::BoxFuture, stream::BoxStream,
|
||||
};
|
||||
@@ -14,7 +14,7 @@ use language_model::{
|
||||
LanguageModelCompletionError, LanguageModelId, LanguageModelKnownError, LanguageModelName,
|
||||
LanguageModelProviderId, LanguageModelProviderName, LanguageModelProviderState,
|
||||
LanguageModelProviderTosView, LanguageModelRequest, LanguageModelToolChoice,
|
||||
LanguageModelToolSchemaFormat, ModelRequestLimitReachedError, RateLimiter, RequestUsage,
|
||||
LanguageModelToolSchemaFormat, ModelRequestLimitReachedError, RateLimiter,
|
||||
ZED_CLOUD_PROVIDER_ID,
|
||||
};
|
||||
use language_model::{
|
||||
@@ -530,7 +530,7 @@ pub struct CloudLanguageModel {
|
||||
|
||||
struct PerformLlmCompletionResponse {
|
||||
response: Response<AsyncBody>,
|
||||
usage: Option<RequestUsage>,
|
||||
usage: Option<ModelRequestUsage>,
|
||||
tool_use_limit_reached: bool,
|
||||
includes_status_messages: bool,
|
||||
}
|
||||
@@ -581,7 +581,7 @@ impl CloudLanguageModel {
|
||||
let usage = if includes_status_messages {
|
||||
None
|
||||
} else {
|
||||
RequestUsage::from_headers(response.headers()).ok()
|
||||
ModelRequestUsage::from_headers(response.headers()).ok()
|
||||
};
|
||||
|
||||
return Ok(PerformLlmCompletionResponse {
|
||||
@@ -1002,7 +1002,7 @@ where
|
||||
}
|
||||
|
||||
fn usage_updated_event<T>(
|
||||
usage: Option<RequestUsage>,
|
||||
usage: Option<ModelRequestUsage>,
|
||||
) -> impl Stream<Item = Result<CloudCompletionEvent<T>>> {
|
||||
futures::stream::iter(usage.map(|usage| {
|
||||
Ok(CloudCompletionEvent::Status(
|
||||
|
||||
Reference in New Issue
Block a user