diff --git a/frontend-web/src/open-canvas/components/ai-writing/ResearchSidebar.tsx b/frontend-web/src/open-canvas/components/ai-writing/ResearchSidebar.tsx index 73627792..f43106b7 100644 --- a/frontend-web/src/open-canvas/components/ai-writing/ResearchSidebar.tsx +++ b/frontend-web/src/open-canvas/components/ai-writing/ResearchSidebar.tsx @@ -12,6 +12,7 @@ import { Newspaper, PanelLeftClose, Pencil, + Play, Plus, RefreshCw, Search, @@ -109,12 +110,17 @@ const WRITING_STATUS_PILL: Record void; onShowProgress?: () => void; + /** 继续这条未完成的会话(从 checkpoint 续跑当前阶段 / 显示确认卡)。 */ + onContinue?: () => void; onDelete: () => void; onRename: (title: string) => void; }) { @@ -129,8 +137,10 @@ function WritingHistoryItem({ const [value, setValue] = useState(session.title); const inputRef = useRef(null); const isBackground = session.status === "background"; - // 「挂起中」点击看进度(流程图弹窗),其余打开历史回看。 - const open = isBackground && onShowProgress ? onShowProgress : onSelect; + const canContinue = !!onContinue && RESUMABLE_STATUSES.has(session.status); + // 行/标题主点击:未完成→继续续跑;挂起中→看进度弹窗;其余(完成/出错)→只读历史回看。 + const primary = isBackground && onShowProgress ? onShowProgress : (canContinue ? onContinue! : onSelect); + const primaryTitle = isBackground ? "查看进度" : canContinue ? "继续未完成" : "打开历史"; const pill = WRITING_STATUS_PILL[session.status] ?? { label: session.status, className: "text-slate-400" }; useEffect(() => { @@ -168,9 +178,9 @@ function WritingHistoryItem({ ) : ( + )}