Repository navigation
fix: slides-layout 修复 20 处类型错误,恢复 nightly 预检 - #305
Conversation
…tionalPropertyTypes 违规与测试 narrow
There was a problem hiding this comment.
阻断性问题:本 PR 并未包含所描述的类型修复,而是把 5 个源文件整体替换成了指向不存在路径的指针文件
对比 base(f3971c4b)与 head(681c3e13),全部 5 个改动文件的完整内容都变成了一行文本指针,例如 apps/gateway/src/modules/slides-layout/elements.ts(head 版本第 1 行,也是唯一一行):
@../blobtmp/elements.ts
其余 4 个文件同理(tree/compile.ts → @../blobtmp/compile.ts,tree/schema.ts、tree/components/index.ts、tree/tree.test.ts 同样处理)。blobtmp/ 目录在仓库任何位置、任何历史提交中都不存在——@../blobtmp/... 是悬空引用,仓库中也没有任何构建步骤、.gitattributes 过滤器或解析器能把这些指针还原成源码。
具体后果
1. 构建必然失败(与 PR 目的完全相反)
PR 描述称"修复 20 处类型错、恢复 nightly 预检",但:
- 一行
@../blobtmp/elements.ts本身就是非法 TypeScript 语法(顶层@后跟..不是合法的装饰器表达式),tsc在解析阶段即报错; - 原有导出全部消失,直接击穿仍在正常 import 这些模块的文件:
apps/gateway/src/modules/slides-layout/tree/leaf-renderers.ts:18与tree/measure.ts:14从../elements.js导入SpecRun/TextElement/PageSpec等;apps/gateway/src/modules/subagents/slides-agent-tools.ts:6-7导入normalizeTree(schema.js)与compileTree(compile.js);apps/gateway/src/modules/subagents/slides-layout-tail.ts:18-19导入同名符号;apps/gateway/src/modules/slides-layout/review-context.ts:7导入LayoutTree(tree/schema.js)。
2. 运行时回归
slides 子代理工具链(slides-agent-tools.ts、slides-layout-tail.ts)依赖 normalizeTree/compileTree 完成树归一化与编译;这些导出被删除后,slides 布局链路在调用点会拿到 undefined 并抛 TypeError。
3. 整个测试套件被删除
tree/tree.test.ts 的 1,620 行全部删光(含 PR 描述里提到的 "ChildNode 用 \"type\" in narrow" 的测试改动——该改动并不存在于 diff 中),等于同时移除了缺陷检测能力。
4. PR 描述与实际 diff 不符
描述中列出的全部修复内容——ShapeElement 补 adj?: number | undefined、components/index.ts 的 mark 断言收窄、schema.ts 的 caption/delta 判空、compile.ts 的 shadow 条件展开、tree.test.ts 的 narrow——在这 5 个文件的 diff 中一处都不存在。diff 只有 5 行新增,全部是上述指针行;"全部为类型层修复,运行时行为不变""本地按 CI 同款 8 包 typecheck 链全绿"的声明与提交内容矛盾(此 head 下 typecheck 只会报更多错)。
建议
这更像是一次意外提交:某个编辑/沙箱工具在写回文件时只落了 @path 形式的占位指针,真实内容从未进入 git。建议作者检查本地工作区与暂存区,基于 f3971c4b 重新提交真实的类型修复(可先用 git diff f3971c4b -- apps/gateway/src/modules/slides-layout/ 确认 diff 只含描述中列出的最小改动),确认 blobtmp 从未进入分支历史后再重新发起 PR。
🤖 Generated with Claude Code
fix: 恢复 slides-layout 五文件完整实现(PR #305 传输事故)
Summary
pnpm typecheck报 20 处类型错(run 38921628849),本 PR 全部修复:ShapeElement补adj?: number | undefined声明(roundRect 圆角调节值,17 处 TS2353/TS2339 的根因;调用方radiusAdj()返回number | undefined,故显式带 undefined 以过 exactOptionalPropertyTypes)components/index.ts:mark断言收窄为"yes" | "mid" | "no"(索引访问含 undefined 违规)schema.ts:caption/delta赋值前判空(optionalText返回string | undefined撞 exactOptionalPropertyTypes)compile.ts:shadow三元 undefined 改条件展开tree.test.ts:ChildNode用"type" innarrow 后取type/nameTest plan