diff --git a/components/canvas/CanvasChatPanel.tsx b/components/canvas/CanvasChatPanel.tsx
index 8e2747266..87187dca8 100644
--- a/components/canvas/CanvasChatPanel.tsx
+++ b/components/canvas/CanvasChatPanel.tsx
@@ -5,7 +5,7 @@ import { DefaultChatTransport } from "ai";
import { useEffect, useRef, useState, useCallback, useMemo } from "react";
import { createPortal } from "react-dom";
import useSWR from "swr";
-import { Send, Loader2, ImagePlus, Paperclip, X, User, Bot, Plus, History, LayoutGrid, Maximize2, RefreshCw, Globe, Box, ArrowUp, Video, Sparkles, Check, ChevronDown, AlertCircle, CheckCircle2 } from "lucide-react";
+import { Send, Loader2, ImagePlus, Paperclip, X, User, Bot, Plus, History, LayoutGrid, Maximize2, RefreshCw, Globe, Box, ArrowUp, Video, Sparkles, Check, ChevronDown, ChevronUp, AlertCircle, CheckCircle2 } from "lucide-react";
import { Button } from "@/components/ui/button";
import { Textarea } from "@/components/ui/textarea";
import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar";
@@ -735,6 +735,7 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
assets: true,
archives: true,
});
+ const [isDetailWorkbenchCollapsed, setIsDetailWorkbenchCollapsed] = useState(false);
const [detailProgress, setDetailProgress] = useState<{
status: "idle" | "running" | "done" | "error";
stage: string;
@@ -2481,6 +2482,12 @@ export function CanvasChatPanel({ chatId, initialMessages = [], onClose, onOpenF
selectedImageNodes.length,
]);
+ useEffect(() => {
+ if (!isDetailGenerationMode) {
+ setIsDetailWorkbenchCollapsed(false);
+ }
+ }, [isDetailGenerationMode]);
+
const handleDetailSlotFileChange = useCallback(
async (slotIndex: number, event: React.ChangeEvent