diff --git a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_project_turn_history.rs b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_project_turn_history.rs index 62e161d0b..c2c317692 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/agent/direct_project_turn_history.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/agent/direct_project_turn_history.rs @@ -41,8 +41,14 @@ pub(crate) fn persist_direct_project_partial_items_at( root: &Path, accumulator: &mut DirectProjectHistoryAccumulator, ) -> Result<(), String> { - for item in accumulator.take_partial_items() { - append_direct_project_history_item_at(root, &item)?; + let items = accumulator.take_partial_items().collect::>(); + let mut first_error = None; + for item in items { + if let Err(error) = append_direct_project_history_item_at(root, &item) { + if first_error.is_none() { + first_error = Some(error); + } + } } - Ok(()) + first_error.map_or(Ok(()), Err) }