Files
ycode/docs/协作/B02-验收-01.md
T

7.4 KiB
Raw Blame History

B02 验收 01:推荐技能卡片与底部入口

日期:2026-10-21(Asia/Shanghai)。对应 需求 和 交付 01,固定受测代码 14a1354c95a2081fb32e36917a1b05873b2a662b。

结论:本次已安装推荐卡片及底部重复入口的功能修复通过;Windows 受控 UI 62 项、DOM 45 项通过。原仓库 UI 命令在 hover selector 上失败,测试可移植性需补;原版完整像素与真实宿主安装/使用端到端未验证,不将 B02 全量关闭。

1. 固定版本与隔离

在新建 b02-accept-01 managed worktree 检出指定提交,独立执行 npm ci、Electron 安装脚本和完整构建。起止 Git 受控文件均无修改;未使用正在运行的用户 dev,也未复用上一轮固定验收检出来替换用户窗口。

Windows 11 IoT 企业版 LTSC 64 位,10.0.26100;Node 24.21.0、npm 11.19.0、Electron 37.10.3、独立 .tmp/b02-dom 的 jsdom 30.1.3。所有 UI 夹具自建 userData,受控 IPC、推荐目录和技能列表,不下载真实技能、不调用模型或修改真实用户技能。

本轮之后的 a839d23 测试清理、B03 需求及其 merge 没有被混入该 SHA 的产品验收。B03 没有交付,不能据此认定完全访问问题已修。

2. AC 结果

AC 结论 已验证范围
AC5.1 current 动作与卡壳 通过 安装后 sm-card--installed、原动作槽 sm-use-btn 出现,Plus/添加按钮不渲染;不再保留卡片下方重复使用动作
AC5.2 已恢复样式 通过已测样式;原版完整对照未验证 24×24 动作槽、16×16 SVG,默认透明、浅深 hover 颜色变化、可聚焦与尺寸稳定;720px 窄窗无溢出。未证明当前 WorkBuddy 同状态逐像素一致
AC5.3 状态刷新 通过受控宿主场景 安装、重开、外部安装/卸载/旧 progress 等现有回归通过;不要求重启
AC5.4 身份与异常 通过指定 DOM/受控状态矩阵 禁用、仅模型调用、损坏、不同来源/版本、修改与 workspace 不冒充 current;没有改身份/安装后端
AC5.5 替换与重复确认 通过受控场景 安装/更新/替换/修复动作区分;确认、取消及 current 防重复回归通过,后端覆盖保护没有放宽
AC5.6 使用 通过组件与 callback;完整宿主端到端未验证 current 使用回调、禁用先启用/启用失败,以及卡片动作去重通过;成功 toast 使用动作保留。没有实际下载后进入主应用新草稿并验证不发送的完整链路
AC6.1~6.4 footer/导航 通过指定场景 footer DOM/专用 props 与样式移除;顶部已安装计数和切换保留;错误/空目录及重试恢复通过,旧测试不再依赖 footer

已人工查看:安装后浅色、深色使用 hover、窄窗。右上顶部“已安装(1)”与安装成功 toast 是保留的导航/瞬时使用动作,不是用户要求移除的底部永久入口。

3. T02:原 UI 入口的 hover 选择器断言不可用

原命令 npm run test:recommended-skills:ui 本轮实际退出 1,停在:

light pointer enters use action: false

不能将原命令记为通过,也不能仅凭这条失败认定使用按钮不可点击。

独立诊断发现:

  • 原生鼠标输入后的按钮背景已从透明变为 rgb(230, 230, 230);命中测试返回按钮内部 SVG,pointer-events 为 auto。
  • button.matches(':hover') 返回 false,document.querySelectorAll(':hover') 为空。
  • 同页添加完全独立的普通 button 对照后,鼠标输入命中该 button,CSS :hover 背景准确变化为 rgb(50, 60, 70),但其 matches(':hover') 同为 false。这是本环境/事件与 selector 观察边界,不能归为仅 YCode 组件特有问题。
  • 显示/聚焦窗口及独立 CDP Input 鼠标事件也复现相同 selector 结果;没有通过更换产品源码消除。

原始失败、对照结果、卡片命中与样式诊断。

验收端仅在 .tmp 的独立探针中,把这条 predicate 换成原生 pointerenter 事件 isTrusted=true、pointerType=mouse,保留其他安装、错误/重试、导航、浅深色、实际背景变化、尺寸、焦点和窄窗断言,没有修改产品或正式测试。此入口完整执行 62 项通过;浅色 hover 为 rgb(230, 230, 230),深色为 color(srgb 1 1 1 / 0.08)。

开发端应修正式 UI 入口的可移植性/诊断,不删除真实 hover 验收目标或改为仅检查 class。focus 本轮验证了实际 activeElement 与槽位;未额外证明完整原生键盘导航或屏幕阅读器行为。

证据:独立探针、62 项与计算样式、运行日志。重跑时在固定 SHA 安装依赖,将该探针复制成 .tmp/b02-acceptance/recommended-skills-ui-pointer.mjs 后执行;它的 Electron 子进程使用该固定路径,自建临时数据。

4. 全部命令与证明范围

命令 结果
npm ci --legacy-peer-deps --no-audit --no-fund、Electron 安装、npm run build 独立 Windows 通过,未改依赖/锁文件
npm run test:recommended-skills:dom,设置独立 DOM 模块 45 项通过,是真实 React DOM/受控宿主,不是布局或真实安装
npm run test:alignment,设置 DOM 模块 通过;SDK 部分为 mock,不作真实授权结论
npm run test:recommended-skills 退出 0,但 real-package 缺失而 SKIP;紧随的通用 PASS 不能解释为真实发布包验证通过
npm run test:composer-capabilities 退出 0
原仓库 test:recommended-skills:ui 退出 1,T02;独立 pointer 入口另行 62 项通过,二者分别记账
check:tokens 退出 1,同六个既有文件;本批 relevant 裸 px 计数下降,没有刷新 baseline
test:fold-summary 退出 1,既存 Windows CRLF 摘要问题;未修改生成文件/manifest

证据:构建、DOM 报告、alignment、其他结果、后端及真实包 SKIP、token。

UI 日志中的“下载失败”“安装取消”“目录不可用”是夹具刻意注入并检查恢复的场景,不是本次真实网络故障;没有发起网络技能安装。

5. 回传

本次用户指出的“已安装仍保留添加按钮”和“底部查看已安装技能”已获得独立修复证据,不要求重复实现。开发端补 T02 正式自动化入口;完整原版对照、宿主安装/使用端到端、键盘/辅助技术边界继续列为未验证,不以组件 62 项冒充全链路通过。

本验收只提交文档、日志、截图与独立验收探针,不修改产品/正式测试/依赖/配置。新需求 B03 和后续测试清理按各自记录处理。本文推送成功后,推送窗口交回开发端。