From ab61390121039b1693cf6fb8aeb2264be1f0f55c Mon Sep 17 00:00:00 2001 From: kdletters Date: Mon, 6 Jul 2026 19:15:03 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=94=BB=E5=B8=83=20Agent=20?= =?UTF-8?q?=E9=BB=98=E8=AE=A4=E8=A2=AB=E4=BB=BB=E5=8A=A1=E5=88=97=E8=A1=A8?= =?UTF-8?q?=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 打开画布时 Agent 开关启用则保持 Agent 默认展开。 恢复任务自动打开任务列表时不再抢占 Agent 默认态。 用户手动打开任务列表时仍按右侧面板互斥关闭 Agent。 补充恢复任务场景下 Agent 默认显示的回归测试。 --- .../ImageCanvasEditorView.test.tsx | 34 +++++++++++++++++++ .../image-editor/ImageCanvasEditorView.tsx | 10 ++++-- 2 files changed, 42 insertions(+), 2 deletions(-) diff --git a/src/components/image-editor/ImageCanvasEditorView.test.tsx b/src/components/image-editor/ImageCanvasEditorView.test.tsx index 49f1b47a7..67b9f73a7 100644 --- a/src/components/image-editor/ImageCanvasEditorView.test.tsx +++ b/src/components/image-editor/ImageCanvasEditorView.test.tsx @@ -1449,6 +1449,40 @@ describe('ImageCanvasEditorView', () => { expect(screen.queryByLabelText('发送给画布 Agent')).toBeNull(); }); + it('keeps the Agent conversation panel open when restored tasks auto-open the task list', async () => { + enableEditorAgentSidebarForTest(); + loadOrCreateRecentEditorProjectMock.mockResolvedValueOnce({ + projectId: 'editor-project-with-restored-task', + title: '恢复任务项目', + viewport: { x: 0, y: 0, scale: 1 }, + layers: [ + ...defaultEditorProjectLayers, + { + layerId: 'generation-dialog:restored-task', + resourceId: 'generation-dialog:restored-task', + itemType: 'generation-dialog', + dialog: { + id: 'restored-task', + mode: 'generate', + prompt: '继续生成', + status: 'idle', + }, + }, + ], + resources: defaultEditorProjectResources, + updatedAt: '2026-07-06T00:00:00.000Z', + }); + + render(); + + expect(await screen.findByLabelText('发送给画布 Agent')).toBeTruthy(); + await waitFor(() => { + expect( + screen.queryByRole('complementary', { name: '画布任务列表' }), + ).toBeNull(); + }); + }); + it('keeps the left resource sidebar independent from right-side task and Agent panels', async () => { enableEditorAgentSidebarForTest(); render(); diff --git a/src/components/image-editor/ImageCanvasEditorView.tsx b/src/components/image-editor/ImageCanvasEditorView.tsx index 687740c30..504334bf5 100644 --- a/src/components/image-editor/ImageCanvasEditorView.tsx +++ b/src/components/image-editor/ImageCanvasEditorView.tsx @@ -1199,13 +1199,19 @@ export function ImageCanvasEditorView({ [toggleSidebarPanel], ); useEffect(() => { + if (!isAgentConversationEnabled && isAgentConversationOpen) { + setIsAgentConversationOpen(false); + return; + } if ( - (!isAgentConversationEnabled || generationSurface.isTaskSidebarOpen) && + isAgentConversationEnabled && + generationSurface.isTaskSidebarOpen && isAgentConversationOpen ) { - setIsAgentConversationOpen(false); + generationSurface.toggleTaskSidebar(); } }, [ + generationSurface, generationSurface.isTaskSidebarOpen, isAgentConversationEnabled, isAgentConversationOpen,