diff --git a/crates/edit_prediction_cli/src/format_prompt.rs b/crates/edit_prediction_cli/src/format_prompt.rs index 3f00595081b0550e23354fa76fa1c943ee48053a..a58f0a7d9ad1862356260e99744e509d493159a4 100644 --- a/crates/edit_prediction_cli/src/format_prompt.rs +++ b/crates/edit_prediction_cli/src/format_prompt.rs @@ -295,9 +295,9 @@ impl TeacherPrompt { fn extract_editable_region(text: &str) -> String { let start = text - .find(Self::EDITABLE_REGION_START) + .rfind(Self::EDITABLE_REGION_START) .map_or(0, |pos| pos + Self::EDITABLE_REGION_START.len()); - let end = text.find(Self::EDITABLE_REGION_END).unwrap_or(text.len()); + let end = text.rfind(Self::EDITABLE_REGION_END).unwrap_or(text.len()); let region = &text[start..end]; let region = region.strip_suffix('\n').unwrap_or(region); diff --git a/crates/edit_prediction_cli/src/main.rs b/crates/edit_prediction_cli/src/main.rs index c7128fdefc2dc96e0cc131525771aeb94ea907d1..042ce6b1135f9e919dc8f8c6fbd7bdc66f660d05 100644 --- a/crates/edit_prediction_cli/src/main.rs +++ b/crates/edit_prediction_cli/src/main.rs @@ -364,8 +364,12 @@ async fn load_examples( } } - if let Some(path) = output_path { - resume_from_output(path, &mut examples); + // Skip resume logic for --in-place since input and output are the same file, + // which would incorrectly treat all input examples as already processed. + if !args.in_place { + if let Some(path) = output_path { + resume_from_output(path, &mut examples); + } } Progress::global().set_total_examples(examples.len()); diff --git a/crates/edit_prediction_cli/src/teacher.prompt.md b/crates/edit_prediction_cli/src/teacher.prompt.md index d161988dc74528802c66413638ad6a7c3d6a5123..11650f47446e5fece74a70a82f77c19e37f35b1e 100644 --- a/crates/edit_prediction_cli/src/teacher.prompt.md +++ b/crates/edit_prediction_cli/src/teacher.prompt.md @@ -71,7 +71,11 @@ The user is computing a sum based on a list of products. The only numeric field # 1. User Edits History +````` {{edit_history}} +````` + +# 2. Related excerpts {{context}}