This commit is contained in:
parent
ce0bf8dafd
commit
0558ac5c4f
1 changed files with 9 additions and 13 deletions
|
|
@ -62,33 +62,29 @@ pub(crate) async fn review_findings(
|
|||
show_progress,
|
||||
format!("{REVIEW_EMOJI} Reviewing findings..."),
|
||||
);
|
||||
|
||||
let prompt = format!("Topic: {topic}\n\nResearch findings to review:\n{findings}");
|
||||
|
||||
let mut last_error = None;
|
||||
let mut review = None;
|
||||
let mut extracted_review = None;
|
||||
|
||||
for attempt in 0..=REVIEW_RETRIES {
|
||||
match reviewer.prompt_typed::<Review>(prompt.clone()).await {
|
||||
match reviewer.prompt_typed(prompt.clone()).await {
|
||||
Ok(r) => {
|
||||
review = Some(r);
|
||||
extracted_review = Some(r);
|
||||
break;
|
||||
}
|
||||
Err(e) => {
|
||||
let suffix = if attempt < REVIEW_RETRIES {
|
||||
" Retrying..."
|
||||
} else {
|
||||
""
|
||||
};
|
||||
tracing::warn!("Attempt {attempt} to extract JSON failed: {e:?}.{suffix}");
|
||||
tracing::warn!("Attempt {attempt} to extract JSON failed: {e:?}.");
|
||||
last_error = Some(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
drop(spinner);
|
||||
|
||||
let review = match review {
|
||||
Some(review) => review,
|
||||
None => return Err(last_error.expect("loop always sets last_error on failure").into()),
|
||||
};
|
||||
let review: Review = extracted_review
|
||||
.ok_or_else(|| last_error.expect("loop always sets last_error on failure"))?;
|
||||
|
||||
tracing::info!(approved = review.approved, gaps = %review.gaps, "review complete");
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue