4c180ac29a
- 合并来源:ff0bc5a3e(fix/agc-manifest-revision-cas)。 - 冲突只有 1 个文件 1 处:docs/project-memory/shared-memory/pitfalls.md(两侧都在文件末尾追加了一条 2026-09-12 记录,文本上是同一个插入点)。 - 解冲突(两侧内容逐字都保留,都不改写、不删): - 保留 HEAD 侧6618207b5的「运行模块切换版本报 listeners[eventId].handlerId」一节(pitfalls.md:5397)。 - 追加ff0bc5a3e的「资源工作台顶部那一行发虚」一节(pitfalls.md:5407)。 - 同一天的记录之间没有排序语义,取「HEAD 内容不动、新记录追加在末尾」,这样两侧 diff 都是纯插入。 - 另外两处自动合并(git 未报冲突)已逐段语义核对,两侧行为都在: - apps/ai-game-creator-shell/src/view/project-development/index.tsx:ff0bc5a3e 的 renderTitlebar 结构完整保留(:1187 定义、:1244 总览态在 world 内渲染、:1313-1317 钉住的那一条渲染在 world 之外、作为 world 的兄弟节点);ff0bc5a3e 删掉的 titlebarTransform / safeViewport / safeMainViewport 已无残留;本分支 V3 的行为同时保留(:1234 plan.map 栏目卡、:1250 card.presentation、:1279 isResourceBookAllTarget 预览卡、:1307 worldOverlay、:1318 overlay)。 - apps/ai-game-creator-shell/tests/appSurface/project-development.suite.ts:ff0bc5a3e 钉的新不变量(:782-800 钉住标题栏不在 world 内、内联 transform 为空、父节点是场景根)与本分支 V3 既有用例都在。 - resourceBookController.ts 未冲突:nodeWorldTransform(:221)、readWorld 补的 element 输出、nodeWorld 贯穿 cleanRect / FLIP / worldScale(:457、:521)都在。 - 自证: - 仓库内 git grep '^<<<<<<<|^>>>>>>>' 无命中。 - git diff --name-only87fbf92c5<本提交> 恰好 18 个文件 = 6618207b5(10) + ff0bc5a3e(5,与前者共用 pitfalls.md) + 46458a825(2) + DesignWorkspacePanel.tsx(1),没有多余文件。 - git diffff0bc5a3e<本提交> -- resourceBookController.ts resourceBookController.test.ts 为空(这两个文件ff0bc5a3e改过、master 没碰,因此必须逐字一致);与ff0bc5a3e的差异只落在双方都改过的 index.tsx / project-development.suite.ts / pitfalls.md 三个文件上。 - 验证(两条修复都并入后统一执行,全绿):npm run typecheck exit 0;npm --prefix apps/ai-game-creator-shell run typecheck exit 0;npx vitest run apps/ai-game-creator-shell/tests → 98 files / 1394 passed | 4 skipped(0 failed);npm run check:encoding → 4489 file(s) passed;git diff --check 干净;npm run check:rustfmt exit 0(这两笔修复都没动 Rust,额外确认一次)。