Files
TrueGrowth/openspec/changes/archive/2026-04-29-add-tool-window-multi-instance/proposal.md

1.2 KiB

Change: add tool window multi instance

Why

当前工具弹窗运行时以 toolId 作为唯一窗口键,同一个工具只能打开一个弹窗实例,无法像桌面窗口一样并行处理多个任务。视频生成等高时延工具需要多开并发工作,因此需要将工具窗体能力升级为多实例模型。

What Changes

  • 将工具窗口状态从“按工具”升级为“按实例”,为每个弹窗引入稳定的 instanceId
  • 在工具栏工具图标右键菜单增加“新窗口打开”,并让同工具的多个实例各自显示为独立图标
  • 为内部工具组件注入实例上下文,允许工具按实例更新尺寸、最小化、关闭等窗口行为
  • 对仍依赖单例 toolId 的内部工具保留兼容行为,未适配前不开放多实例入口

Impact

  • Affected specs: toolbox-plugin-runtime, toolbox
  • Affected code:
    • packages/drawnix/src/services/tool-window-service.ts
    • packages/drawnix/src/components/toolbox-drawer/ToolWinBoxManager.tsx
    • packages/drawnix/src/components/toolbar/minimized-tools-bar/MinimizedToolsBar.tsx
    • packages/drawnix/src/components/toolbar/toolbar-context-menu.tsx