From 399fcacb8e729df01658642e2f5879bd742e8689 Mon Sep 17 00:00:00 2001 From: Suzumiya Date: Fri, 11 Sep 2026 13:54:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=88=A0=E9=99=A4=E6=A0=8F?= =?UTF-8?q?=E7=9B=AE=E5=A4=A7=E7=BA=B2=E5=AF=BC=E8=88=AA=E7=9A=84=E6=9D=83?= =?UTF-8?q?=E5=A8=81=E6=96=87=E6=A1=A3=EF=BC=9APRD=20=E4=B8=8E=E6=8A=80?= =?UTF-8?q?=E6=9C=AF=E6=96=B9=E6=A1=88=E6=94=B9=E6=88=90=E6=80=BB=E8=A7=88?= =?UTF-8?q?=E5=8D=A1=E7=89=87/=E6=89=80=E6=9C=89=E8=B5=84=E6=BA=90/?= =?UTF-8?q?=E4=B8=8B=E4=B8=80=E9=A1=B5=E5=8F=A3=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - decision-log.md:新增「删除资源画布左侧的栏目大纲悬浮导航」决策,先记录查证结论(decision-log / pitfalls / PRD / 技术方案里此前只有要求保留该导航的条文,没有任何删除决策,本次是新决策),再写决策、语义变更、不做什么与变异验证结果。 - PRD:§阶段说明与 §7.2 验收两条不再写"大纲展示全部栏目""通过栏目大纲和滚轮访问全部栏目",改为栏目大纲由「资源总览」的栏目缩略卡片承载、切栏目走总览卡片 +「所有资源」入口 + 页内「下一页」。 - 技术方案:目标、操作边界与验收共五处删掉"栏目大纲悬浮在画布左侧/只显示图标和栏目名称""点击大纲切页""分页大纲以悬浮 Dock 展示全部栏目"等条文,改成当前状态(左侧不再有悬浮导航)。 - pitfalls.md:补记一条 jsdom 坑——栏目页 fit key 需要非零可测量尺寸,jsdom 下恒为 0,所以"总览→栏目"往返会重新适配视口;进入栏目后应恢复上次 viewport 的用例在 jsdom 里必须避免这种往返,不要误判成产品回归、也不要去改 fit 逻辑。 --- .../【AI游戏创作】项目开发工作台PRD-2026-07-20.md | 4 ++-- docs/project-memory/shared-memory/decision-log.md | 9 +++++++++ docs/project-memory/shared-memory/pitfalls.md | 10 +++++++++- ...案】GameAgent资源自由画板与快速编辑-2026-08-20.md | 14 +++++++------- 4 files changed, 27 insertions(+), 10 deletions(-) diff --git a/docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md b/docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md index eb792cb71..f7fdf9619 100644 --- a/docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md +++ b/docs/prd/【AI游戏创作】项目开发工作台PRD-2026-07-20.md @@ -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 资源依赖关系图验收 diff --git a/docs/project-memory/shared-memory/decision-log.md b/docs/project-memory/shared-memory/decision-log.md index 154cd79eb..5927fbd39 100644 --- a/docs/project-memory/shared-memory/decision-log.md +++ b/docs/project-memory/shared-memory/decision-log.md @@ -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` 类名、对应 `