同步删除栏目大纲导航的权威文档:PRD 与技术方案改成总览卡片/所有资源/下一页口径
- decision-log.md:新增「删除资源画布左侧的栏目大纲悬浮导航」决策,先记录查证结论(decision-log / pitfalls / PRD / 技术方案里此前只有要求保留该导航的条文,没有任何删除决策,本次是新决策),再写决策、语义变更、不做什么与变异验证结果。 - PRD:§阶段说明与 §7.2 验收两条不再写"大纲展示全部栏目""通过栏目大纲和滚轮访问全部栏目",改为栏目大纲由「资源总览」的栏目缩略卡片承载、切栏目走总览卡片 +「所有资源」入口 + 页内「下一页」。 - 技术方案:目标、操作边界与验收共五处删掉"栏目大纲悬浮在画布左侧/只显示图标和栏目名称""点击大纲切页""分页大纲以悬浮 Dock 展示全部栏目"等条文,改成当前状态(左侧不再有悬浮导航)。 - pitfalls.md:补记一条 jsdom 坑——栏目页 fit key 需要非零可测量尺寸,jsdom 下恒为 0,所以"总览→栏目"往返会重新适配视口;进入栏目后应恢复上次 viewport 的用例在 jsdom 里必须避免这种往返,不要误判成产品回归、也不要去改 fit 逻辑。
This commit is contained in:
@@ -53,7 +53,7 @@
|
||||
#### 3.3.1 资源管理三个串行阶段
|
||||
|
||||
1. 阶段一“资源卡本体化”:`dependency / type` 两种布局共用同一个资源卡组件和预览调度器。图片与安全 SVG 直接显示主体并保留透明棋盘底;图片卡按真实纵横比在统一边界内计算展示矩形,视频、音频、文档和项目版本继续使用稳定固定卡片。资源详情是叠加在原画板上的非模态独立卡片,以元数据、Rust 权威依赖关系和版本信息为主;打开详情不得卸载“按依赖 / 按类型 / 复位”等现役画布级动作、资源卡、依赖连线或重置 viewport、搜索和排序模式。
|
||||
2. 阶段二“分区独立缩放”是历史实现;2026-08-22 起仅在项目完全没有任何资源投影时保留“按类型式分区展览”作为空态。任一栏目出现资源后,`dependency / type` 两种模式均切换为栏目分页画布,默认停留在固定栏目顺序中的第一个非空栏目;大纲展示全部栏目,空栏目计数为 0 且可打开空画布,不再提供分区高度、分区滚动和分区倍率操作。
|
||||
2. 阶段二“分区独立缩放”是历史实现;2026-08-22 起仅在项目完全没有任何资源投影时保留“按类型式分区展览”作为空态。任一栏目出现资源后,`dependency / type` 两种模式均切换为栏目分页画布,默认停留在固定栏目顺序中的第一个非空栏目;栏目大纲以「资源总览」的栏目缩略卡片承载(左侧那条悬浮大纲导航已删除),空栏目仍可打开空画布,不再提供分区高度、分区滚动和分区倍率操作。
|
||||
3. 阶段三“依赖布局聚类”(已完成):仅在 `dependency` 模式中,按固定资源分类对当前 Rust 只读图返回的同类型精确引用边和同类型聚合任务流做弱连通分组;任务流以流节点连接其成员,绝不展开成资源笛卡尔积,但只作为布局邻近提示,不绘制虚线、不进入画布关系说明。`dependencyDepth` 是唯一横向层级权威;每个相关簇先按“最小深度 -> 最小稳定资源 ID”排序,再在同层进行固定两轮由左至右、由右至左的中位数扫描,平局回退稳定资源 ID;同 SCC/环成员保持连续,环后资源继续按 Rust 深度推进。孤立资源是稳定单例组,紧凑排在相关簇之后,簇之间保持固定留白。当前栏目内同类型精确引用参与布局并在该栏目 SVG 中显示;跨分类引用不参与布局,也不在分栏画布中强行连线。搜索只隐藏卡片及任一端点被隐藏的橙色精确引用边,不重算组或压缩坐标。历史 `manuallyPlaced=true` 坐标继续原样保留并参与自动坐标避让。聚类是可派生表现,不新增 manifest 字段、sidecar schema、SpacetimeDB 表或第二套依赖真相。
|
||||
|
||||
#### 3.3.2 本体化资源卡交互与性能合同
|
||||
@@ -509,7 +509,7 @@ type ProjectAgentMudPointAttribution = {
|
||||
4. 两个窗口基于同一 revision 执行资源自动协调写入时最多一个成功;失败方收到 `conflict` 与最新完整布局,界面不静默覆盖成功方结果。
|
||||
5. 布局文件缺失的旧项目可以无迁移打开;损坏、未知 schema、身份冲突、超限和链接文件失败关闭,且原文件不被空布局覆盖。
|
||||
6. 布局读写不改变 manifest、游戏项目 mutation revision、Runtime verification、Agent 权限与预览状态。
|
||||
7. `1280×720` 最小横屏下完全空项目可通过分区展览查看全部栏目,非空项目可通过栏目大纲和滚轮访问全部栏目(包括空栏目),不出现页面级横向或纵向溢出,右侧对话和底部 Agent 状态栏保持可见;`1280×800` 继续作为默认窗口基线。
|
||||
7. `1280×720` 最小横屏下完全空项目可通过分区展览查看全部栏目,非空项目可通过「资源总览」的栏目缩略卡片(含第 0 张「所有资源」)、「所有资源」汇总页和页内底部「下一页」访问全部栏目(包括空栏目),不出现页面级横向或纵向溢出,右侧对话和底部 Agent 状态栏保持可见;`1280×800` 继续作为默认窗口基线。
|
||||
|
||||
### 7.3 P1 资源依赖关系图验收
|
||||
|
||||
|
||||
@@ -8347,3 +8347,12 @@ CI 上 `background_agent_runtime_recovers_stale_running_before_pending_task` 在
|
||||
- 不做什么:不改 `runAvailable` 与 `showRunView` 的门槛(PRD「运行入口不可用时仍允许点击…但不切换状态」继续成立),不改 PRD :122 的"播放即切运行视图 + 启动预览",不给预览加心跳 / 轮询。
|
||||
- 验证方式:AGC 子集新增两条工作台用例(仅落盘记录为 running → 初始仍是资源管理且运行入口可用;会话预览为 running → 自动进运行视图)与五条 `sessionPreview` 用例(活体优先 / 陈旧记录对齐并投影 / registry 不可读按没有在跑处理 / 记录非 running 时不发多余停止命令 / 无 invoke 零请求);Rust 定向用例三条(同项目重启后记录仍为 running、换项目时旧项目写 stopped、无活体时 stop 对齐陈旧记录)。变异验证:撤掉自动切换的收窄 → 第一条用例红灯;撤掉活体核对(直接信落盘记录)→ `sessionPreview` 两条用例红灯(均已实测)。
|
||||
- 关联文档:`docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md`(§4.1 已按当前状态改写)、`docs/project-memory/shared-memory/pitfalls.md`。
|
||||
|
||||
## 2026-09-11 删除资源画布左侧的栏目大纲悬浮导航,切栏目改由总览卡片与下一页承担
|
||||
|
||||
- 背景:用户报"资源总览把左边的导航栏删了""这个不是老早之前都删掉了吗?这个东西本身就不应该出现的""只有导航去掉,其他的保留"。**查证结论:仓库里没有这条删除决策**——`decision-log.md`、`pitfalls.md`、PRD 与技术方案此前都只有**要求保留**该导航的条文(PRD :56「大纲展示全部栏目,空栏目计数为 0 且可打开空画布」、PRD :512「非空项目可通过栏目大纲和滚轮访问全部栏目」、技术方案 :5/:33/:53/:54/:57/:102/:103 把大纲写成分类导航入口之一并规定其常态外观),没有任何"已决定删除、尚未执行"的记录。因此本次是**新决策**,不是补做未完成的删除。
|
||||
- 决策:整条删除 `.game-resource-outline` 悬浮导航(组件 `ResourceBookOutlineNav`、栏目页与「所有资源」页两处挂载点、全部 `.game-resource-outline*` 样式),并删掉只服务它的「未读红点」状态链(`unreadResourceCategoryState`、`resourceCategorySnapshotRef`、`resourceIdsByCategory`、`viewedResourceCategory` 与对应 effect)。切栏目保留三条既有入口且全部实测可用:①「资源总览」的栏目缩略卡片(第 0 张是「所有资源」);②「所有资源」汇总页(页内「资源总览」返回);③栏目页底部「下一页」。窄屏无特殊分支:这三条入口在原样式表里没有任何媒体查询覆盖,删除导航不减少窄屏下的切栏目能力。
|
||||
- 语义变更(用户已确认接受):栏目「有新资源」红点随导航一起消失(它此前只在这条导航上渲染),不再有第二处未读提示;分区栏目、栏目标题栏、卡片、缩略图、「所有资源」入口、搜索、总览、快速编辑/工具条一律未动。
|
||||
- 不做什么:不新增替代导航、不做栏目下拉/分段控件、不改 `resourceBookModel` 的 `main / child + category` 目标模型、不改每「排序模式 + 栏目」独立 viewport 的既有约定、不动 sidecar schema 与跨端契约。
|
||||
- 验证方式:新增反向守卫用例(`资源栏目大纲` 标签、`.game-resource-outline` 类名、对应 `<nav>` 都不再渲染)与切栏目链路用例(总览卡片进空栏目 → 下一页切下一个 → 标题栏「资源总览」返回 → 「所有资源」入口往返);变异验证:把 `<nav aria-label="资源栏目大纲">` 加回去 → 守卫红灯,只加回类名 → 守卫同样红灯(均已实测)。既有断言未放宽:栏目顺序断言改钉在总览缩略卡片的 `aria-label` 序列上(第 0 张「所有资源」+ 固定七栏目),只服务导航的断言按「四不写」直接删除。
|
||||
- 关联文档:`docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md`(:56 / :512)、`docs/technical/【技术方案】GameAgent资源自由画板与快速编辑-2026-08-20.md`(:5 / :33 / :53 / :54 / :57 / :102 / :103)、`docs/project-memory/shared-memory/pitfalls.md`。
|
||||
|
||||
@@ -5271,4 +5271,12 @@
|
||||
- **原因**:bash 走 MSYS 的 `/usr/bin/git`,而 worktree 的 `.git` 是**文件**、内容为 Windows 绝对路径 `C:/Users/.../.git/worktrees/<name>`;MSYS git 把它当相对路径拼到当前目录后,解析成 `/mnt/c/.../C:/Users/...`。同一个 ref 用 Windows git 验证 `git cat-file -e <sha>^{commit}` 返回 0,所以这不是基线选错,而是 worktree + MSYS 不兼容。
|
||||
- **处理**:在这类 worktree 里跑 script 门禁时,**按脚本同序、同命令用 Windows git / PowerShell 逐条等价执行**(`SPACETIME_SCHEMA_BASE_REF=<base>` 之类环境变量照传),不要因为 bash 包装层失败就判定门禁本身红。
|
||||
- **验证**:`git cat-file -e "$(git rev-parse master)^{commit}"` 在 PowerShell 下 exit 0;逐条等价执行后 10 道门禁的通过与失败分布与脚本语义一致(本次仅 rustfmt / appSurface / build 三条红,各有独立归因)。
|
||||
- **关联**:`scripts/check-repository-ci.sh`、`scripts/run-bash-script.mjs`。
|
||||
- **关联**:`scripts/check-repository-ci.sh`、`scripts/run-bash-script.mjs`。
|
||||
|
||||
## 2026-09-11 资源画本用例在 jsdom 下永远拿不到 fit key,"总览→栏目"往返会重新适配视口
|
||||
|
||||
- **现象**:删掉左侧栏目大纲导航后,切栏目只能走「资源总览」缩略卡片;把测试 helper 从"点导航"改成"先 `收起资源` 回总览、再点缩略卡片"后,`preserves independent art viewports across sort and workbench mode switches` 里"回到依赖模式应恢复该模式 viewport"的断言变红:期望 `332,236.4,0.9`,实际 `360,256,1`(第一次 fit 的值)。
|
||||
- **原因**:栏目页的首屏适配有 fit key 门禁——`openResourceBookChild` 只在 `resourceBookSceneSize.width/height > 0` 时把 `<projectPath>\n<projectId>\n<sortMode>\n<category>` 写进 `resourceCanvasFitKeysRef`,分页画布 layout effect 也同样要求可测量尺寸。jsdom 没有布局,两者恒为 0,于是**每次 `openResourceBookChild` 都走 fit 分支**,已存的 viewport 被重拟合覆盖。真机上尺寸非零、首次进入即写 key,再进入走 `resourceCanvasViewportTargetsRef[sortMode][category]` 恢复分支,所以这不是产品回归,是 jsdom 产物。
|
||||
- **处理**:旧断言里那些"点导航切到当前栏目"的调用本来就是提前返回的空操作(`openResourceBookChild` 在 `view/category/phase` 未变时直接 return),改 helper 后它们变成了真实往返。修法是**保留全部断言、只去掉这些多余往返**(排序模式切换本身就会切换 viewport),不要为了让用例变绿去改 `index.tsx` 的 fit 逻辑,也不要把往返路径当成产品缺陷去"修"。
|
||||
- **推广**:任何"进入栏目后应恢复上次 viewport"的用例,在 jsdom 里必须避免经过总览往返;要覆盖往返本身,得先给 `resourceBookSceneSize` 造出非零尺寸。
|
||||
- **关联**:`apps/ai-game-creator-shell/src/view/project-development/index.tsx`(`openResourceBookChild` / `resourceCanvasFitKeysRef` / 分页画布 layout effect)、`apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts`。
|
||||
@@ -2,7 +2,7 @@
|
||||
|
||||
## 2026-09-05 资源画本独立转场
|
||||
|
||||
- `resourceBookModel` 立即提交目标 `main / child + category`,`entering / returning-main` 只表示尚未收尾的视觉过程,不承载待提交的栏目。缩略入口、大纲、下一页与资源定位共用分类导航入口;栏目互切直接到达目标,不经过总览。滚轮不切换栏目。
|
||||
- `resourceBookModel` 立即提交目标 `main / child + category`,`entering / returning-main` 只表示尚未收尾的视觉过程,不承载待提交的栏目。总览栏目缩略卡片、「所有资源」入口、下一页与资源定位共用分类导航入口;栏目互切直接到达目标,不经过总览(列表卡片本身就在总览上,所以从总览进栏目是先总览后直达)。滚轮不切换栏目。
|
||||
- 转场对**真实元素**做 FLIP,不使用克隆快照层。总览与子画布之间同一张卡是同一个 DOM 节点(同一 React key、同一父节点,只有布局函数在 `resourceBookOverviewCardLayout` 与 `resourceBookChildCardLayout` 之间切换),标题栏同理。`resourceBookController.begin` 在状态提交前按 key 记录 First 屏幕矩形与当前不透明度;提交后的 layout effect 调 `play` 测 Last,给同一个节点加反向 transform 再过渡回 identity。动画结束没有"克隆 → 真实节点"的交接,因此不存在交接瞬间的跳变;遮挡关系由真实 DOM 的 z-index/DOM 顺序决定,与静止态一致。
|
||||
- 反向 transform 写在宿主节点自身坐标系:`transform-origin: 0 0`,缩放比取 `First.size / Last.size`,位移按宿主原点偏移换算后除以 `.game-resource-book-scene-world` 的缩放。标题栏激活时内联的"抵消 world"transform 作为 base 与反向 transform 组合,结束帧回到该 base。
|
||||
- `begin` 之后的所有布局提交都调 `sync`:比较每个节点的布局签名,变化时取消旧动画、重新测量,以**当前视觉矩形**(含运行中的 transform)为起点重基到新的干净终点。转场进行中用剩余时长(`startTime + 420 - now`,下限 80ms),空闲布局变化用完整 420ms。卡片预览尺寸是异步到达的,因此"动画期间甚至动画结束之后"的二次布局变化同样是动画而不是瞬移。窗口/容器尺寸变化与拖拽中的卡片不做布局动画。
|
||||
@@ -30,7 +30,7 @@
|
||||
|
||||
## 目标
|
||||
|
||||
资源管理在空项目中展示现有按类型式分区展览。任一栏目出现资源后,“按依赖”和“按类型”共用同一套栏目分页画布:固定七个栏目各自拥有一个铺满资源管理区域的独立画布,空栏目也保留可打开的空画布;栏目大纲悬浮在画布左侧中间,只显示图标和栏目名称,不占用画布布局宽度;顶部显示当前栏目标题,底部显示下一页标题。普通滚轮平移当前视图,按住 Ctrl/Meta 的滚轮以指针为锚点缩放当前画布。两种模式唯一差异是“按依赖”在当前栏目内绘制引导线。资源详情是叠加在资源画板之上的非模态卡片;打开、切换和关闭详情都不得卸载背景工具栏、资源卡、依赖连线或重置 viewport、搜索和排序模式。
|
||||
资源管理在空项目中展示现有按类型式分区展览。任一栏目出现资源后,“按依赖”和“按类型”共用同一套栏目分页画布:固定七个栏目各自拥有一个铺满资源管理区域的独立画布,空栏目也保留可打开的空画布;顶部显示当前栏目标题、底部显示下一页标题,切栏目走总览的栏目缩略卡片、总览入口与下一页(左侧那条栏目大纲悬浮导航已删除,不占画布布局宽度也一并取消)。普通滚轮平移当前视图,按住 Ctrl/Meta 的滚轮以指针为锚点缩放当前画布。两种模式唯一差异是“按依赖”在当前栏目内绘制引导线。资源详情是叠加在资源画板之上的非模态卡片;打开、切换和关闭详情都不得卸载背景工具栏、资源卡、依赖连线或重置 viewport、搜索和排序模式。
|
||||
|
||||
图片资源从“编辑资源”进入资源派生编辑(`derive + editKind='image-reference'`),结果固定创建新的本地 asset,源资源与源文件保持不变;具体来源核验、请求 DTO 与幂等合同见《【技术方案】AGC资源派生与非破坏性编辑合同-2026-09-09》。
|
||||
|
||||
@@ -50,11 +50,11 @@
|
||||
|
||||
## 操作边界
|
||||
|
||||
- 栏目顺序固定为 `UI 交互 -> 角色与对象 -> 场景与环境 -> 音频 -> 文档 -> 待归类 -> 项目版本`。完全空项目显示全部栏目的分区展览;任一栏目出现资源后,分页大纲以左侧垂直居中的悬浮 Dock 展示全部栏目。Dock 常态即可读可点:Dock 底板、与栏目标题栏同款的栏目图标和 12px 栏目文字常驻,当前栏目常态带选中态强调;悬停或键盘聚焦只做同一套 token 的加强(更深的边框、阴影与背景模糊),不再用"常态缩小、降低不透明度、只露栏目文字"表达层级。默认停留在该顺序中的第一个非空栏目,空栏目仍可打开空画布。游戏代码资产按其 manifest `category` 落入 `待归类` 并正常显示卡片。
|
||||
- 滚轮不切换栏目。点击大纲、底部“下一页”标题、总览入口或自动定位资源属于显式切页;切页前必须终止旧栏目的画布拖动和 pointer capture,避免旧 viewport 写入新栏目。
|
||||
- 栏目顺序固定为 `UI 交互 -> 角色与对象 -> 场景与环境 -> 音频 -> 文档 -> 待归类 -> 项目版本`。完全空项目显示全部栏目的分区展览;任一栏目出现资源后进入栏目分页画布。左侧那条垂直居中的栏目大纲悬浮导航已按用户要求整条删除:切栏目只走「资源总览」的栏目缩略卡片(含第 0 张「所有资源」)、「所有资源」汇总页与栏目标题栏的「资源总览」返回,以及页内底部「下一页」。默认停留在该顺序中的第一个非空栏目,空栏目仍可打开空画布。游戏代码资产按其 manifest `category` 落入 `待归类` 并正常显示卡片。
|
||||
- 滚轮不切换栏目。点击总览栏目缩略卡片、底部“下一页”标题、总览入口或自动定位资源属于显式切页;切页前必须终止旧栏目的画布拖动和 pointer capture,避免旧 viewport 写入新栏目。
|
||||
- 每种排序模式下的每个栏目画布都保留独立 viewport;首次进入该“排序模式 + 栏目”组合时按当前内容适配视口,离开后再返回则恢复该组合上次的平移和缩放。空白处拖拽平移画布,资源卡拖拽移动卡片并更新依赖线,Ctrl/Meta 缩放只作用于当前组合,不能牵动其它排序模式或栏目。
|
||||
- 依赖画布复用 `@genarrative/image-canvas-core` 的 viewport 计算,并复用现有资源卡片、布局和依赖连线模型。
|
||||
- 非空状态不使用资源分区滚动条、分区缩放或分区高度操作作为主要导航;栏目通过大纲、总览入口和底部下一页标题切换。
|
||||
- 非空状态不使用资源分区滚动条、分区缩放或分区高度操作作为主要导航;栏目通过总览栏目缩略卡片、总览入口和底部下一页标题切换。
|
||||
- 当前栏目画布背景是无限的:用户可以将 viewport 沿 x/y 任意方向平移,画布不以资源 extent 作为导航边界,也不显示可见画布边缘。资源卡片的持久化布局坐标允许落在 `-1_000_000..=1_000_000`,用于支撑元素位于世界原点左上方;超出该范围仍拒绝写入,避免持久化非法布局。这与 viewport 能否继续平移是两层独立语义。搜索、详情卡和临时隐藏不得改变 viewport。
|
||||
- 指针拖动空白平移画布,普通滚轮平移当前视图,Ctrl/Meta 缩放、复位以及容器 resize 后都必须保持同一套 viewport 数据流。只有“排序模式 + 栏目”组合首次获得可测量容器尺寸或用户显式复位时才重新适配内容;返回已访问组合、图片尺寸测量、布局拖动或资源 extent 变化只归一化并保留该组合的当前 viewport,不得意外重置用户已经完成的平移和缩放。普通平移不夹取 x/y;缩放仍受共享画布的最小/最大比例限制。初次 fit 与显式复位只使用资源卡真实包围盒,不把导航最小尺寸、原点空区或额外布局 gap 算入,并以 `16px` 紧凑留白在共享缩放上限内尽量铺满视口。
|
||||
- 资源卡拖动使用 `5px` 阈值区分点击与移动;移动期间按当前 scale 乐观换算世界坐标、显示拖动态并同步依赖线,释放时提交一次 `manuallyPlaced=true` 布局 CAS,取消则回滚预览且不提交。拖动后的释放点击不打开详情。
|
||||
@@ -99,8 +99,8 @@
|
||||
|
||||
## 验收
|
||||
|
||||
1. 完全空项目在按依赖与按类型下都显示相同的分区展览;任一栏目出现资源后,两种模式都切换为栏目分页画布,大纲以左侧垂直居中的悬浮 Dock 覆盖在全宽画布上,常态就带 Dock 底板、全部栏目的图标和文字(不显示数量),悬停/键盘聚焦只做加强,空栏目仍可打开空画布。
|
||||
2. 栏目顺序为 `UI 交互 -> 角色与对象 -> 场景与环境 -> 音频 -> 文档 -> 待归类 -> 项目版本`;点击大纲、总览入口和底部下一页标题切页,滚轮不切换栏目。只登记游戏代码的项目在「待归类」栏目正常显示代码卡片。
|
||||
1. 完全空项目在按依赖与按类型下都显示相同的分区展览;任一栏目出现资源后,两种模式都切换为栏目分页画布,左侧不再有栏目大纲悬浮导航,任一栏目都能从「资源总览」的栏目缩略卡片(含第 0 张「所有资源」)、「所有资源」汇总页和页内底部「下一页」到达,空栏目仍可打开空画布。
|
||||
2. 栏目顺序为 `UI 交互 -> 角色与对象 -> 场景与环境 -> 音频 -> 文档 -> 待归类 -> 项目版本`;点击总览栏目缩略卡片、总览入口和底部下一页标题切页,滚轮不切换栏目。只登记游戏代码的项目在「待归类」栏目正常显示代码卡片。
|
||||
3. 在当前栏目内拖拽空白可以无限平移画布,拖拽资源卡可以移动卡片并同步依赖线,Ctrl/Meta + 滚轮以指针位置为锚点缩放,复位按钮可以适配当前栏目内容;普通平移不会因资源 extent、图片测量或窗口 resize 被拉回,连续缩放仍停在共享画布的最小/最大比例范围内。
|
||||
4. 按依赖模式显示当前栏目内同类型两端资源的合法精确引用,并具有与当前可见连线一致的无障碍关系说明;按类型模式不显示引导线;搜索隐藏任一端点后连线和说明同时消失。
|
||||
5. 点击任意资源后“按依赖 / 按类型 / 复位”等画布级动作仍保持挂载和原状态;顶部不出现手动新建入口。详情为非模态独立卡片,背景画板 viewport、搜索、排序、卡片和连线不卸载、不重置。
|
||||
|
||||
Reference in New Issue
Block a user