This commit is contained in:
Ahmed Ibrahim
2025-10-16 22:23:57 -07:00
parent cafd08ab41
commit daf762f607
2 changed files with 18 additions and 9 deletions
+10 -7
View File
@@ -78,7 +78,8 @@ async fn run_compact_task_inner(
let mut trimmed_tails: Vec<Vec<ResponseItem>> = Vec::new();
let max_retries = turn_context.client.get_provider().stream_max_retries();
let mut retries = 0;
let mut context_retries = 0u64;
let mut stream_retries = 0u64;
let rollout_item = RolloutItem::TurnContext(TurnContextItem {
cwd: turn_context.cwd.clone(),
@@ -124,8 +125,7 @@ async fn run_compact_task_inner(
if !trimmed.is_empty() {
truncated_count += trimmed.len();
trimmed_tails.push(trimmed);
retries += 1;
if retries >= max_retries {
if context_retries >= max_retries {
sess.set_total_tokens_full(&sub_id, turn_context.as_ref())
.await;
let event = Event {
@@ -137,6 +137,9 @@ async fn run_compact_task_inner(
sess.send_event(event).await;
return;
}
context_retries += 1;
stream_retries = 0;
// Keep stream retry budget untouched; we trimmed context successfully.
continue;
}
}
@@ -152,12 +155,12 @@ async fn run_compact_task_inner(
return;
}
Err(e) => {
if retries < max_retries {
retries += 1;
let delay = backoff(retries);
if stream_retries < max_retries {
stream_retries += 1;
let delay = backoff(stream_retries);
sess.notify_stream_error(
&sub_id,
format!("Re-connecting... {retries}/{max_retries}"),
format!("Re-connecting... {stream_retries}/{max_retries}"),
)
.await;
tokio::time::sleep(delay).await;