修复资源画布溢出与模板资源投影
Project CI / Backend tests (pull_request) Failing after 10s
Project CI / Repository checks (pull_request) Failing after 10s
Project CI / Frontend tests (pull_request) Successful in 3m3s
Project CI / Native shell tests (pull_request) Successful in 10m23s

闭合资源画布横向收缩链并增加内部滚动条

过滤任务产物通配模板避免生成无效资源卡

补充布局与资源投影回归测试

同步工作台文档与共享排障记忆
This commit is contained in:
2026-08-07 10:53:41 +08:00
parent 53e37ea361
commit 8a4b71bf8e
8 changed files with 114 additions and 3 deletions
@@ -14,6 +14,22 @@
- 关联:相关文件、文档、提交或 Issue
```
## 绝对定位宽画布必须闭合所有祖先的 min-content 收缩链
- 现象:资源列表态右上角布局切换消失、最右资源卡被裁掉且画布没有有效横向滚动;点击任一资源进入聚焦态后按钮又出现,看起来像选中态条件渲染错误。
- 原因:绝对定位卡片所在内容层有显式超宽尺寸,grid 子项及其 flex 后代缺少 `min-width: 0` 时,min-content 宽度会撑大主视窗隐式列;最外层 `overflow: hidden` 只负责裁切,子画布的 `overflow: auto` 因自身也被撑宽而无法形成正确滚动范围。
- 处理:从 grid 轨道开始使用 `minmax(0, 1fr)`,中间资源管理容器和实际滚动容器逐层设置 `min-width: 0`;管理容器截住外溢,资源画布固定 `width: 100%` 并独立承担横纵滚动。Tauri WebKit 需要显式 scrollbar track / thumb 样式,不能只验证 DOM 中按钮存在。
- 验证:CSS 合同同时锁定 grid 列、祖先收缩、内部 overflow 与 WebKit scrollbar;布局模型按最右卡片外边界断言 scroll width。真实窗口还应确认布局按钮始终可见,拖到横向终点能完整看到最右卡片和安全留白。
- 关联:`apps/ai-game-creator-shell/src/styles.css`、`apps/ai-game-creator-shell/tests/resourceCanvasLayoutContract.test.ts`、`apps/ai-game-creator-shell/tests/resourceCanvasLayoutModel.test.ts`。
## manifest 产物 glob 只是模板,不能直接投影为资源文件
- 现象:资源区出现 `director.md` 等卡片,点击后提示文件读取失败;磁盘上不存在该文件,但 manifest task 看起来已经 completed。
- 原因:task `artifacts` 中可能保存 `.agent/passes/pass-*/...` 之类未来轮次的路径模板。completed 只说明任务状态,不会把 glob 展开成某个具体文件;把字符串按扩展名直接分类会制造幽灵资源卡。
- 处理:task artifact 投影前拒绝包含 `*`、`?`、`[]`、`{}` 的路径,只让具体文件路径进入分类和受控读取。不要把此规则泛化到 manifest 已登记资产、已导入附件或 Agent 文本回执。
- 验证:同一 fixture 同时放入具体 Markdown / 图片路径和各类 glob 模板,断言前者保留、后者完全不进入资源 ID 集合。
- 关联:`apps/ai-game-creator-shell/src/view/project-development/resourceProjectionModel.ts`、`apps/ai-game-creator-shell/tests/projectResourceProjectionModel.test.ts`。
## 多工作树只隔离代码,不会自动隔离 AGC 运行资源
- 现象:两个工作树同时运行 `npm run agc` 时,后启动者因 `3080` 已占用而失败,或用户在两个同名窗口间误把另一工作树的页面当作当前修改结果。