diff --git a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/persistence.rs b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/persistence.rs index 5b663c609..a2f0728c4 100644 --- a/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/persistence.rs +++ b/apps/ai-game-creator-shell/src-tauri/src/ui_editor/commands/separation/persistence.rs @@ -66,6 +66,17 @@ fn write_separation_state_blocking(path: &Path, state: &SeparationState) -> Resu app_log!("ui_separation.error stage=state_write reason=serialize error={error}"); format!("序列化 separation state 失败:{error}") })?; + if bytes.len() > SEPARATION_STATE_MAX_BYTES { + app_log!( + "ui_separation.error stage=state_write reason=too_large bytes={} max_bytes={}", + bytes.len(), + SEPARATION_STATE_MAX_BYTES + ); + return Err(format!( + "separation state 超过 {} 字节上限", + SEPARATION_STATE_MAX_BYTES + )); + } let parent = path.parent().ok_or_else(|| { app_log!("ui_separation.error stage=state_write reason=missing_parent"); "separation state 路径缺少父目录".to_string()