4.4.0 评审交接¶
此候选版本将组件评审工作与当前 main 分支合并在一起。它不是一个已发布的版本。在技能版本号升级合并之前,引擎和平台包必须已存在。
需要保持的行为¶
组件套件包含栅格资源以及渲染后的 HTML/CSS/SVG。用户可以一起检查每个重复实例,并提交一个组决策。组成员身份是一种显式的生产者声明,仅限于匹配的代码区域类型和共享文档;它不是对视觉等价性的自动声明。
对组装后的首个视口的批准,即结束该构建的人工组件与组装评审。后续编辑和完成检查不会再次要求这些批准。一个明确的新构建(build-phase start --reset)拥有新的评审流程;旧构建的批准不能为其授权。宿主会传递其可信收据目录,以支持基于快照的延续。
就绪性修复¶
- 在未提交的中间捕获中保留本机视觉批准,考虑最新已提交的修订版,而不是恢复旧反馈。
- 将本地最终批准绑定到构建标识。在新构建中复用清单 ID 不会复用它原来的收据或草稿批准。
- 在共享存储扫描期间忽略不可读或外来的会话。如果被请求的会话自身证据损坏,它们仍然会失败。
- 始终处理展开比较的关闭状态,包括已取消的动画或已替换的对话框。关闭过程中控件处于非活动状态。
- 在字体和图像稳定后验证网络响应证据,然后在捕获后再次检查完整 URL 集合。
- 检查被评审组件中的主要字体,排除单独评审的子组件和仅作参考的上下文。允许平台系统字体别名;缺失自定义主要字体仍视为错误。
- 通过原生浏览器布局测量生成的 before/after/marker 盒,包括组件裁剪边界内溢出的装饰。
- 将回退响应式验证和完成操作绑定到本地前端输入。后续的 CSS、脚本、图像或字体变更会使过期的回退证据失效。回退指纹是保守且有界的;不支持的文件树会验证失败,而不会声称完成。这不会重新打开人工评审。
- 在地图报告写入失败后,删除本次调用新建的输出目录;绝不要删除已存在的输出目录。
- 以 Unicode 字符(而非 UTF-8 字节)来匹配架构中的评审组限制。
- 将隐藏标题的后代元素从静态斜体衬线检测中豁免。
生成的浏览器捆绑包和提供方发行版已重新构建。五个有冲突的 oracle 快照保留了当前 main 分支的检测器修复,并恰好添加了预期的内联斜体标题发现(聚合 fixture 语料库中的发现数从 419 增加到 420)。
验证¶
针对合并后的 main 分支 edb9c7fbc,在 macOS arm64 上进行了验证:
cargo test --workspace:692 个通过,8 个忽略。- 原生 Chromium 组件捕获测试:全部 7 项通过,包括伪元素溢出和作用域字体检查。
bun run test:所有默认套件均通过(599 个通过,2 个跳过),包括之前失败的 SIGKILL 清理回归测试。- 新工作浏览器套件:20 项通过。缺失图像 fixture 现在等待 DOM 就绪,而不是等待故意挂起的图像轮询结束;其 UI 断言保持不变。
- 组件评审模型和已发布捆绑包测试:17 项通过。
- 完整实时模式浏览器扫描:27 个框架套件中 38 项通过,1 项跳过。
- 浏览器检测器捆绑包、发布提供方构建、清单检查和散文验证均通过。
这些是实现层面的检查,不能证明跨提供方的 n=3 资格。未发布的引擎/平台包门禁仍然是发布阻塞项。
需要解读的评审意见¶
最终组装取代组件检查点。 如果用户在已接受组装后的首个视口之后,再要求缺少的组件套件批准,将违反所选的最终评审行为。仍然需要原生捕获/完整性证据;模型写入的批准标志是不够的。
分组是一个显式的多实例决策。 UI 会将组成员一起显示。共享的组名声明了预期的重复角色;验证器无法从像素推断语义等价性。栅格资源保持独立。添加第二个由模型编写的角色字符串,并不能独立验证第一个声明。
Claude 启动钩子使用宿主的信任边界。 Claude Code 会保留设置文件钩子,直到在交互式会话中接受工作区信任。在 SDK 和 -p 会话中,它会将该文件夹视为受信任;调用方必须选择他们要加载的项目设置。插件钩子会解析已安装的插件根目录。此 PR 不会绕过这些规则。参见 Claude Code 工作区信任。
发布顺序¶
- 完成对抗性评审,并解决该候选版本上可操作的问题。
- 从已评审的提交发布 engine 0.1.6;验证所有五个二进制文件和校验和。
- 发布五个 0.1.6 npm 平台包,刷新它们的锁解析,并通过
check:engine-release。 - 合并已评审的 PR,验证生成的提供方输出,添加技能变更日志条目,并发布 skill 4.4.0。
- 验证全新安装以及公共画廊中指向已发布技能的链接。
此就绪性检查未发布任何发布标签或包。AI 辅助:OpenAI Codex。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 im/impeccable