From 199e9190dc85a114d4d0bb2a3f6efe13b00ee4e0 Mon Sep 17 00:00:00 2001 From: ddcat666 <26564566+ddcat666@users.noreply.github.com> Date: Wed, 30 Sep 2026 03:42:36 +0800 Subject: [PATCH] =?UTF-8?q?fix(canvas):=20=E7=94=BB=E5=B8=83=E8=83=8C?= =?UTF-8?q?=E6=9D=BF=20-=20=E6=98=8E=E7=A1=AE=E8=83=8C=E6=9D=BF=E8=83=BD?= =?UTF-8?q?=E5=8A=9B=E8=AF=B4=E6=98=8E=E5=B9=B6=E5=85=81=E8=AE=B8=E6=8B=96?= =?UTF-8?q?=E5=8A=A8=20Markdown=20=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 背板能力卡改为说明可移动、可折叠的视觉分区用途与边界,Agent 能据此判断何时用背板归组。Markdown 节点正文不再拦截 mousedown,拖动节点和拖入背板恢复正常。 --- backend/internal/app/cloud_agent_storyboard_test.go | 10 ++++++++++ backend/internal/canvas/capability/builtin.go | 6 +++--- web/src/components/canvas/nodes/markdown-node.tsx | 1 - 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/backend/internal/app/cloud_agent_storyboard_test.go b/backend/internal/app/cloud_agent_storyboard_test.go index c5b3883a4..49400403c 100644 --- a/backend/internal/app/cloud_agent_storyboard_test.go +++ b/backend/internal/app/cloud_agent_storyboard_test.go @@ -102,6 +102,16 @@ func TestCloudAgentNodeCapabilityCardsExplainStoryboardTradeoffs(t *testing.T) { if !strings.Contains(videoGoodFor, "多图参考视频") { t.Fatalf("video capability card does not explain multi-image video: %s", videoGoodFor) } + frame := byType["frame"] + frameGoodFor := strings.Join(frame["goodFor"].([]string), "\n") + frameNotIdealFor := strings.Join(frame["notIdealFor"].([]string), "\n") + if !strings.Contains(frameGoodFor, "按场景或镜头组") || !strings.Contains(frameGoodFor, "制作") || !strings.Contains(frameNotIdealFor, "分镜脚本节点") { + t.Fatalf("frame capability card does not explain its use cases and limits: %+v", frame) + } + capabilityGuide := cloudAgentCapabilityGuide() + if !strings.Contains(capabilityGuide, "按场景或镜头组") || !strings.Contains(capabilityGuide, "可移动、可折叠") { + t.Fatalf("Agent system guide does not explain when to use a canvas frame: %s", capabilityGuide) + } guide := strings.Join(result["selectionGuide"].([]string), "\n") if !strings.Contains(guide, "多镜头") || !strings.Contains(guide, "model_list") || !strings.Contains(guide, "不要为了形式") { t.Fatalf("selection guide does not express soft routing: %s", guide) diff --git a/backend/internal/canvas/capability/builtin.go b/backend/internal/canvas/capability/builtin.go index ceb84676f..a633d6d0c 100644 --- a/backend/internal/canvas/capability/builtin.go +++ b/backend/internal/canvas/capability/builtin.go @@ -43,9 +43,9 @@ func BuiltinRegistry() *Registry { }), { Type: "frame", Version: "1", Label: "背板", DefaultWidth: 760, DefaultHeight: 520, - Purpose: "组织一组相关节点的画布区域。", - GoodFor: []string{"按场景整理节点", "划分工作区域"}, - NotIdealFor: []string{"承载结构化镜头数据", "替代具体业务节点"}, + Purpose: "在画布上建立可移动、可折叠的视觉分区,用来归组相关节点;背板本身不承载创作正文或生成结果。", + GoodFor: []string{"按场景或镜头组归拢脚本、参考图和生成结果", "按前期策划、制作、交付等阶段划分工作区", "为大型画布建立清晰分区,便于移动或折叠整组内容"}, + NotIdealFor: []string{"承载结构化镜头数据(应使用分镜脚本节点)", "存放需要 Agent 单独读写的正文(应使用文本或 Markdown 节点)", "替代具体业务节点或媒体生成节点"}, Tradeoffs: []string{"改善空间组织但不增加内容结构或生成能力"}, SummaryFields: []string{"label"}, DetailFields: []string{"label"}, CreateMetadata: func(string) map[string]any { diff --git a/web/src/components/canvas/nodes/markdown-node.tsx b/web/src/components/canvas/nodes/markdown-node.tsx index 6b1a94ebd..c4548c275 100644 --- a/web/src/components/canvas/nodes/markdown-node.tsx +++ b/web/src/components/canvas/nodes/markdown-node.tsx @@ -39,7 +39,6 @@ export function MarkdownNodeContent({ node, theme }: MarkdownNodeContentProps) { data-canvas-no-zoom style={{ color: theme.node.text }} onWheel={(event) => event.stopPropagation()} - onMouseDown={(event) => event.stopPropagation()} > {source}