Initial TrueGrowth source import
This commit is contained in:
@@ -0,0 +1,18 @@
|
||||
# Change: update tool default window behavior
|
||||
|
||||
## Why
|
||||
当前工具自动常驻依赖调用入口显式传入 `autoPin`,规则分散在各处,容易遗漏。爆款视频生成与爆款音乐生成希望打开后自动常驻工具栏,但该行为需要可配置,而不是继续硬编码在单个入口里。
|
||||
|
||||
## What Changes
|
||||
- 为 `ToolDefinition` 增加默认窗口行为配置,支持声明 `defaultWindowBehavior.autoPinOnOpen`
|
||||
- 让 `tool-window-service` 在未显式传入 `autoPin` 时回退读取工具定义的默认窗口行为
|
||||
- 为 `video-analyzer` 与 `music-analyzer` 工具声明默认打开即常驻
|
||||
- 保持用户手动常驻/取消常驻优先,不改变已有手动 pin 语义
|
||||
|
||||
## Impact
|
||||
- Affected specs: `toolbox-plugin-runtime`, `toolbox`
|
||||
- Affected code:
|
||||
- `packages/drawnix/src/types/toolbox.types.ts`
|
||||
- `packages/drawnix/src/services/tool-window-service.ts`
|
||||
- `packages/drawnix/src/tools/tools/video-analyzer/index.tsx`
|
||||
- `packages/drawnix/src/tools/tools/music-analyzer/index.tsx`
|
||||
@@ -0,0 +1,24 @@
|
||||
## MODIFIED Requirements
|
||||
|
||||
### Requirement: iframe 与内部工具必须共享统一运行时协议
|
||||
系统 SHALL 允许 `iframe` 工具和内部 React 工具通过同一工具定义模型被打开、最小化和嵌入画布,并允许工具定义声明默认窗口行为。
|
||||
|
||||
#### Scenario: 打开内部工具
|
||||
- **WHEN** 用户从工具箱打开内部工具
|
||||
- **THEN** 系统根据注册中心解析对应内部组件
|
||||
|
||||
#### Scenario: 打开 iframe 工具
|
||||
- **WHEN** 用户从工具箱打开 URL 工具
|
||||
- **THEN** 系统根据工具定义渲染 iframe
|
||||
|
||||
#### Scenario: 工具定义声明默认自动常驻
|
||||
- **GIVEN** 某工具定义声明 `defaultWindowBehavior.autoPinOnOpen = true`
|
||||
- **AND** 用户尚未手动取消该工具的常驻状态
|
||||
- **WHEN** 系统通过常规入口首次打开该工具
|
||||
- **THEN** 工具窗口服务 SHALL 将该工具加入常驻工具栏
|
||||
|
||||
#### Scenario: 调用方显式覆盖默认窗口行为
|
||||
- **GIVEN** 某工具定义声明 `defaultWindowBehavior.autoPinOnOpen = true`
|
||||
- **WHEN** 调用方以显式 `autoPin: false` 打开该工具
|
||||
- **THEN** 系统 SHALL 以调用方显式选项为准
|
||||
- **AND** 不因为工具默认行为再次自动常驻
|
||||
@@ -0,0 +1,16 @@
|
||||
## ADDED Requirements
|
||||
|
||||
### Requirement: 特定工具可声明默认常驻工具栏
|
||||
系统 SHALL 允许工具通过定义元数据声明“打开后默认常驻工具栏”行为,并在所有常规打开入口中保持一致。
|
||||
|
||||
#### Scenario: 爆款工具打开后自动常驻
|
||||
- **GIVEN** 用户打开“爆款视频生成”或“爆款音乐生成”
|
||||
- **WHEN** 工具窗口成功创建
|
||||
- **THEN** 左侧最小化工具栏 SHALL 显示该工具的常驻图标
|
||||
- **AND** 用户关闭窗口后仍可通过 launcher 图标再次打开
|
||||
|
||||
#### Scenario: 用户手动取消常驻后保持用户选择
|
||||
- **GIVEN** 某工具具备默认自动常驻规则
|
||||
- **AND** 用户已在工具栏中手动取消该工具常驻
|
||||
- **WHEN** 用户后续再次打开该工具
|
||||
- **THEN** 系统 SHALL 优先保留用户当前常驻选择
|
||||
@@ -0,0 +1,5 @@
|
||||
## 1. Implementation
|
||||
- [x] 1.1 为 `ToolDefinition` 补充默认窗口行为类型定义,至少支持 `autoPinOnOpen`
|
||||
- [x] 1.2 调整 `tool-window-service` 的打开逻辑,在未显式传入 `autoPin` 时读取工具定义默认行为
|
||||
- [x] 1.3 为 `video-analyzer` 与 `music-analyzer` 配置默认打开即常驻
|
||||
- [x] 1.4 补充针对性校验,确认默认自动常驻与显式 `autoPin`、手动 pin/unpin 不冲突
|
||||
Reference in New Issue
Block a user