From 9c346ed6fb0a318518b6f547581475601595335a Mon Sep 17 00:00:00 2001 From: iven Date: Mon, 6 Apr 2026 12:31:44 +0800 Subject: [PATCH] fix(P2-10): is_placeholder now reflects actual LLM driver availability Previously hardcoded to false in Tauri bridge. Now checks whether kernel provided a driver before building classroom, correctly flagging placeholder content when LLM is unavailable. Co-Authored-By: Claude Opus 4.6 --- desktop/src-tauri/src/classroom_commands/generate.rs | 8 ++++---- desktop/src/types/classroom.ts | 2 ++ 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/desktop/src-tauri/src/classroom_commands/generate.rs b/desktop/src-tauri/src/classroom_commands/generate.rs index 3f38d0b..d77f9ca 100644 --- a/desktop/src-tauri/src/classroom_commands/generate.rs +++ b/desktop/src-tauri/src/classroom_commands/generate.rs @@ -129,12 +129,12 @@ pub async fn classroom_generate( } // Get LLM driver from kernel if available, otherwise use placeholder mode - let pipeline = { + let (pipeline, has_driver) = { let ks = kernel_state.lock().await; if let Some(kernel) = ks.as_ref() { - GenerationPipeline::with_driver(kernel.driver(), kernel.config().model().to_string()) + (GenerationPipeline::with_driver(kernel.driver(), kernel.config().model().to_string()), true) } else { - GenerationPipeline::new() + (GenerationPipeline::new(), false) } }; @@ -211,7 +211,7 @@ pub async fn classroom_generate( source_document: kernel_request.document.map(|_| "user_document".to_string()), model: None, version: "2.0.0".to_string(), - is_placeholder: false, // P2-10: Tauri layer always has a driver + is_placeholder: !has_driver, // P2-10: true when no LLM driver available custom: serde_json::Map::new(), }, }; diff --git a/desktop/src/types/classroom.ts b/desktop/src/types/classroom.ts index 850910d..99be858 100644 --- a/desktop/src/types/classroom.ts +++ b/desktop/src/types/classroom.ts @@ -109,6 +109,8 @@ export interface ClassroomMetadata { sourceDocument?: string; model?: string; version: string; + /** P2-10: marks content generated by placeholder fallback when LLM fails */ + is_placeholder?: boolean; custom: Record; }