worktree-fix-ollama-json-extraction #12

Merged
schaefera merged 4 commits from worktree-fix-ollama-json-extraction into master 2026-08-19 12:19:47 +00:00
Showing only changes of commit 0558ac5c4f - Show all commits

View file

@ -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");