AGC 资源画布切换为 6 类资产分类加项目版本栏目(阶段二:投影轴与栏目表落地)
- 契约层把 ProjectResourceCanvasPosition.section 加宽为 PersistedProjectResourceCanvasSection 并删除旧 ProjectResourceCanvasSection 联合 - 七个分区类型消费点改用 ProjectResourceCanvasCategory:投影、布局模型、布局 Hook、分区高度、依赖图层与画布历史 - RESOURCE_CANVAS_SECTION_ORDER 改为 PROJECT_RESOURCE_CANVAS_SECTIONS,删除 RESOURCE_CANVAS_VISIBLE_SECTION_ORDER - reconcileResourceCanvasLayout 接入读时归一化:旧栏目值按资源当前分区改写 section,坐标与手动标记原样保留 - 归并后的布局与原布局逐项不同,由既有协调路径判定 changed 并写回一次新分区,不引入迁移脚本 - 投影层五个资源入表点统一走 projectResourceCanvasCategory:项目版本独立成栏、Agent 回执归文档、其余按资产分类 - 新增 projectResourceDisplayKind 收敛 manifest 资产 subtype 即 kind 的显示类型口径,projectResourceTypeLabel 不再依赖旧栏目 - 卡片预览、编辑分流、媒体工具条、预览文案与画布历史快照改用显示类型与新分区,历史快照入栈时收窄到现行分区 - index.tsx 删除可见栏目导入与 visibleCategoryOrder,栏目标签由资源筛选唯一中文口径派生并补齐 7 栏 - index.tsx 补齐 7 栏默认视口与 7 个栏目图标(新增 LayoutGrid、Users、PackageOpen,移除已无用的 Code2) - index.tsx 删除 canvasResources 的 code 过滤:只登记游戏代码的项目现在落在待归类栏目并正常显示卡片 - 新增只登记游戏代码项目的 UI 回归用例,覆盖栏目大纲、默认落地栏目与代码卡片渲染 - 测试夹具按新分区轴迁移,新增旧栏目 sidecar 读时归并用例与栏目顺序用例 - 共享测试 harness 的资源卡查询正则允许栏目标签自带空格(UI 交互) - 同步 PRD 与共享记忆决策记录的栏目口径描述
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
## 2026-09-10 AGC 资源画布分区改为 6 类资产分类加项目版本栏目,旧栏目坐标读时归并
|
||||
|
||||
- 背景:资源画布原分区轴是「扩展名 + mediaType」派生的 `document / art / audio / code / version`,普通画布只显示其中四栏并隐藏游戏代码,与 `@` 面板、资源详情筛选已经收敛的单一权威 `category`(`ui-interaction / character / scene / audio / document / unclassified`)不一致。只登记游戏代码的项目会因资源签名非空进入分页画布,但 code 不在可见栏目里,于是四栏全空、一张卡都不显示。旧布局 sidecar 已存有旧 `section` 值,而 PRD 要求历史手动坐标只读恢复,不删除、不重置、不迁移。
|
||||
- 决策:分区轴改为 `PROJECT_RESOURCE_CANVAS_SECTIONS` = 6 类资产功能分类 + 末尾独立的「项目版本」栏目;项目版本不是资源资产,6 类资产分类轴对它不适用,固定单独成栏。扩展名分类器降级为只负责准入与卡片显示类型(`.zip` / `.exe` 等无法识别的二进制产物与附件仍不进入画布),不再决定分区。`game-creator-resource-layout.v1` 不升版;Rust `ProjectResourceCanvasSection` 保留旧 `code` / `art` 白名单值继续可反序列化,且不加未知值兜底,损坏 payload 仍失败关闭。读取时按资源当前分区归并:`document / audio / version` 同名 1:1 保留;旧 `art` 按资源当前分类落入 `ui-interaction / character / scene / unclassified`;旧 `code` 落入 `unclassified`;无法精确归并时回落 `unclassified`。归并只改写 `section`,`x / y / manuallyPlaced` 原样保留,不写迁移脚本;旧 `art` / `code` / `version` 平面合并后可能出现同坐标叠卡,按既有「不重置坐标」口径原样保留,不改写自动坐标。
|
||||
- 决策:分区轴改为 `PROJECT_RESOURCE_CANVAS_SECTIONS` = 6 类资产功能分类 + 末尾独立的「项目版本」栏目;项目版本不是资源资产,6 类资产分类轴对它不适用,固定单独成栏。扩展名分类器降级为只负责准入与卡片显示类型(`.zip` / `.exe` 等无法识别的二进制产物与附件仍不进入画布),不再决定分区。`game-creator-resource-layout.v1` 不升版;Rust `ProjectResourceCanvasSection` 保留旧 `code` / `art` 白名单值继续可反序列化,且不加未知值兜底,损坏 payload 仍失败关闭。读取时按资源当前分区归并:`document / audio / version` 同名 1:1 保留;旧 `art` 按资源当前分类落入 `ui-interaction / character / scene / unclassified`;旧 `code` 落入 `unclassified`;无法精确归并时回落 `unclassified`。归并只改写 `section`,`x / y / manuallyPlaced` 原样保留,不写迁移脚本;旧 `art` / `code` 平面并入同一新栏目后可能出现同坐标叠卡,按既有「不重置坐标」口径原样保留,不改写自动坐标,新资源仍由既有避让规则落位。
|
||||
- 影响范围:`packages/shared/src/contracts/gameCreationApp.ts`、`server-rs/crates/shared-contracts/src/game_creation_app.rs`、`resourceProjectionModel.ts`、`resourceCanvasSectionMapping.ts`、`resourceCanvasLayoutModel.ts` 的栏目顺序与协调、`ProjectDevelopmentView` 的栏目标签 / 图标 / 可见栏目表。
|
||||
- 验证方式:`resourceCanvasSectionMapping.test.ts` 覆盖旧值 × 目标栏目矩阵(坐标与 `manuallyPlaced` 原样保留、`section` 改写、独有旧值改写后必然判定为变化)与回落栏目属于目标集合;`projectResourceProjectionModel.test.ts` 覆盖 6 类分区投影、项目版本独立成栏和只登记游戏代码的项目落在「待归类」;Rust 侧覆盖旧 section JSON 反序列化、未知值拒绝与既有旧 sidecar 文件读取。
|
||||
- 关联文档:`docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md`、`docs/technical/【技术方案】GameAgent资源自由画板与快速编辑-2026-08-20.md`、`docs/technical/【技术方案】AI游戏创作智能体App实施计划-2026-06-24.md`。
|
||||
|
||||
Reference in New Issue
Block a user