Skip to content

[Bug]: 工作流新增插件、MCP及子工作流后右侧资源抽屉未关闭 - #356

Open
openjiuwen-sync-bot[bot] wants to merge 1 commit into
openJiuwen-ai:studio-2.0-devfrom
openjiuwenai:sync/pr-1849
Open

[Bug]: 工作流新增插件、MCP及子工作流后右侧资源抽屉未关闭#356
openjiuwen-sync-bot[bot] wants to merge 1 commit into
openJiuwen-ai:studio-2.0-devfrom
openjiuwenai:sync/pr-1849

Conversation

@openjiuwen-sync-bot

@openjiuwen-sync-bot openjiuwen-sync-bot Bot commented Aug 13, 2026

Copy link
Copy Markdown

Paired: GitHub #356GitCode !1849

问题

工作流编排页面新增插件、MCP 服务或子工作流后,资源选择抽屉没有自动关闭,影响后续节点配置和画布操作。

修复内容

  • 为插件、子工作流和 MCP 三类资源选择回调统一增加成功后自动关闭抽屉逻辑。
  • 使用本次创建的局部抽屉实例引用,避免被后续打开的同类抽屉覆盖。
  • 等待异步 MCP 初始化/节点创建回调完成后再关闭抽屉。
  • 添加失败时保留抽屉,方便用户重试。
  • 增加三类入口的紧凑回归测试。

验证

  • node frontend/tests/drawer-auto-close.test.cjs PASS
  • 生产构建已通过
  • git diff --check PASS
  • 已在 24200 实际验证插件新增流程,资源选择抽屉成功关闭,节点正常创建。

Closes #​1309

Linked Closing Issues:

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@openjiuwen-collaboration-bot

openjiuwen-collaboration-bot Bot commented Aug 13, 2026

Copy link
Copy Markdown

head_sha: f9fa5aa2fab167abf7cb1f016b4b07b63391500b

变更摘要

本 PR 修复工作流编排页在新增插件、MCP 服务或子工作流后,右侧资源选择抽屉未自动关闭的问题。核心方案是新增无 Angular 依赖的辅助函数 withDrawerAutoClose,并在 flow.component.ts 的三个工厂方法 useAddPluginModaluseAddFlowModaluseAddMcpModal 中,将选择回调统一包装为该函数,使用本次调用创建的局部 drawerRef 在回调成功后显式关闭抽屉;同时新增紧凑回归测试 drawer-auto-close.test.cjs 验证成功关闭、失败保留、异步等待及仅关闭本次实例等行为。

主要改动

  • 新增 withDrawerAutoClose 辅助函数: 在 frontend/src/routes/agent-center/app-flow/utils/drawer-auto-close.util.ts 中新增该纯函数,await 异步回调成功后调用 close(),回调抛错或拒绝时记录错误且不关闭,便于用户重试。
  • 使用局部 drawerRef 避免实例覆盖: flow.component.ts 的三个工厂方法均改为声明局部 let drawerRef,通过 withDrawerAutoClose(callback, () => drawerRef) 包装回调,nzDrawerService.create() 返回后再赋值,确保关闭的是本次创建的抽屉而非被后续同类抽屉覆盖的 this.*ModalRef
  • 插件、子工作流、MCP 三类入口统一接线: useAddPluginModaluseAddFlowModaluseAddMcpModal 均将原 pluginChange / workflowChange / mcpServiceChange 输出替换为包装后的 onSelect,并同步更新 this.pluginCallbackthis.childFlowCallbackthis.mcpServiceCallback
  • MCP 异步流程等待完成后再关闭: useAddMcpModal 通过 withDrawerAutoClose 等待异步 MCP 初始化/节点创建回调完成后再关闭抽屉,失败时保留抽屉供用户重试。
  • 新增聚焦回归测试: frontend/tests/drawer-auto-close.test.cjs 通过 typescript.transpileModule 加载真实 helper 源码,并读取 flow.component.ts 源码断言三个工厂方法均已接线 withDrawerAutoClose,覆盖同步/异步成功、失败、空 ref 安全及仅关闭本次实例等场景。

@openjiuwen-collaboration-bot

openjiuwen-collaboration-bot Bot commented Aug 13, 2026

Copy link
Copy Markdown

head_sha: f9fa5aa2fab167abf7cb1f016b4b07b63391500b

代码审查

✅ 未发现问题

@openjiuwen-collaboration-bot

Copy link
Copy Markdown

head_sha: f9fa5aa2fab167abf7cb1f016b4b07b63391500b

TASK STATUS DETAILS
CodeCheck ✅SUCCESS Click here
AntiPoison ✅SUCCESS Click here
Software Composition Analysis ✅SUCCESS Click here
Npm Build ✅SUCCESS See CHECK tab
Ruff Check ✅SUCCESS See CHECK tab
UT测试 ✅SUCCESS 点此跳转

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants