From 1680f931e9d5ebb8c47efcebf3b794417adc7774 Mon Sep 17 00:00:00 2001 From: iven Date: Sat, 4 Apr 2026 21:25:50 +0800 Subject: [PATCH] fix(kernel): add map_err context to classroom LLM generation calls Stage 1 (outline) and Stage 2 (scene) LLM calls now provide descriptive error messages instead of propagating opaque driver errors. Closes M11-02 --- crates/zclaw-kernel/src/generation/mod.rs | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/crates/zclaw-kernel/src/generation/mod.rs b/crates/zclaw-kernel/src/generation/mod.rs index 6ade517..a4aaf68 100644 --- a/crates/zclaw-kernel/src/generation/mod.rs +++ b/crates/zclaw-kernel/src/generation/mod.rs @@ -428,7 +428,10 @@ impl GenerationPipeline { plan_mode: false, }; - let response = driver.complete(llm_request).await?; + let response = driver.complete(llm_request).await + .map_err(|e| zclaw_types::ZclawError::LlmError( + format!("Outline generation failed: {}", e) + ))?; let text = Self::extract_text_from_response_static(&response); self.parse_outline_from_text(&text, request) } @@ -500,7 +503,10 @@ Use Chinese if the topic is in Chinese. Include vivid metaphors and analogies."# plan_mode: false, }; - let response = driver.complete(llm_request).await?; + let response = driver.complete(llm_request).await + .map_err(|e| zclaw_types::ZclawError::LlmError( + format!("Scene '{}' generation failed: {}", item.title, e) + ))?; let text = Self::extract_text_from_response_static(&response); Self::parse_scene_from_text_static(&text, item, order) }