SuperAPI AI 工具集

serve-sim-duo-verification

测试与质量

查看项目

更新于 10-15 21:39

技能介绍

用途:在本地 iOS 模拟器上验证 serve-sim 的 Duo 折叠、访客方向与模型旋转,适用于修改 Duo 姿态、方向或模型之后。命令需在仓库根目录运行,先阅读 expected behavior 中的相关检查,历史结果见 verification。

本地准备:使用已启动的 iPhone Duo 与重建后的本地服务器。原生改动后需重建并重启服务器以加载新 addon: bun run packages/serve-sim/build.ts node packages/serve-sim/dist/serve-sim.js --port 3399 后续命令使用实际服务器端口与 Duo UDID;若本地服务器原生构建为最新,可复用现有服务器。

旋转矩阵:先让 Duo 上的 Safari 进入前台: xcrun simctl openurl <udid> https://example.com bun .agents/skills/serve-sim-duo-verification/scripts/verify-duo-rotation.ts <udid> 3399 脚本将铰链角改为 0°、130°、180°,并循环四种方向,分别用 devicectl 检查物理方向、simctl 检查活动面板 UI 方向、服务器检查模型/配置方向,并在 finally 中恢复原始铰链角与模型方向。Safari 保持前台,不恢复先前应用。注意 Safari 封面 UI 不含倒置竖屏,内屏 UI 支持四种方向;设置可锁定封面为竖屏,故不适用该矩阵。协议中的横屏名称与 CoreDevice 物理名称相反,内屏还有旋转的自然轴,诊断失败时需保留这些区别。断言失败即停止,先检查报告的物理、UI 与模型方向再重试。

折叠与面板选择: node packages/serve-sim/dist/serve-sim.js fold 180 -d <udid> node packages/serve-sim/dist/serve-sim.js fold 130 -d <udid> xcrun devicectl device motion hinge-angle --device <udid> --timeout 5 xcrun simctl io <udid> enumerate 将预览所选显示与最新含 .cover:pri 或 .inner:pri 的 SpringBoard DisplayContentMode 事件比较,fold 0 后重复以检查相反方向。以访客面板回读为准,不要仅凭铰链角推断主面板选择。若 Device Hub 遮挡输入,参考包 README 中的显式 repair-input 流程;修复可能重启 SpringBoard,不应作为常规验证准备。数值旋转检查不能证明视觉平滑度、色彩保真或控件对齐,可在应用内 Codex 浏览器中检查并报告未验证行为。

渲染投影检查:本地渲染器已构建且可用 Python Pillow 时运行: python3 .agents/skills/serve-sim-duo-verification/scripts/verify-duo-projection.py 该脚本使用所选 Xcode 的 V68 模型与本地渲染器,不改变模拟器状态,检查 20 种折叠/旋转组合下的屏幕标记投影与物理按钮锚点。可用 --renderer <path> 覆盖本地渲染器二进制。标记中心须落在渲染中心两个输出像素内,硬件锚点须落在不透明模型像素上。