@@ -410,8 +410,9 @@ export async function presentAssistantMessage(cline: Task) {
410410
411411 switch ( block . name ) {
412412 case "write_to_file" :
413- await checkpointSaveAndMark ( cline )
414413 await writeToFileTool ( cline , block , askApproval , handleError , pushToolResult , removeClosingTag )
414+ // Save checkpoint AFTER file edit
415+ await checkpointSaveAndMark ( cline )
415416 break
416417 case "update_todo_list" :
417418 await updateTodoListTool ( cline , block , askApproval , handleError , pushToolResult , removeClosingTag )
@@ -430,10 +431,8 @@ export async function presentAssistantMessage(cline: Task) {
430431 }
431432
432433 if ( isMultiFileApplyDiffEnabled ) {
433- await checkpointSaveAndMark ( cline )
434434 await applyDiffTool ( cline , block , askApproval , handleError , pushToolResult , removeClosingTag )
435435 } else {
436- await checkpointSaveAndMark ( cline )
437436 await applyDiffToolLegacy (
438437 cline ,
439438 block ,
@@ -443,15 +442,19 @@ export async function presentAssistantMessage(cline: Task) {
443442 removeClosingTag ,
444443 )
445444 }
445+ // Save checkpoint AFTER file edit
446+ await checkpointSaveAndMark ( cline )
446447 break
447448 }
448449 case "insert_content" :
449- await checkpointSaveAndMark ( cline )
450450 await insertContentTool ( cline , block , askApproval , handleError , pushToolResult , removeClosingTag )
451+ // Save checkpoint AFTER file edit
452+ await checkpointSaveAndMark ( cline )
451453 break
452454 case "search_and_replace" :
453- await checkpointSaveAndMark ( cline )
454455 await searchAndReplaceTool ( cline , block , askApproval , handleError , pushToolResult , removeClosingTag )
456+ // Save checkpoint AFTER file edit
457+ await checkpointSaveAndMark ( cline )
455458 break
456459 case "read_file" :
457460 await readFileTool ( cline , block , askApproval , handleError , pushToolResult , removeClosingTag )
0 commit comments