76 lines
7.4 KiB
Markdown
76 lines
7.4 KiB
Markdown
# B02 验收 01:推荐技能卡片与底部入口
|
||
|
||
日期:2026-10-21(Asia/Shanghai)。对应 [需求](B02-需求.md) 和 [交付 01](B02-交付-01.md),固定受测代码 **`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 |
|
||
|
||
已人工查看:[安装后浅色](evidence/B02-review-01/installed-light.png)、[深色使用 hover](evidence/B02-review-01/installed-dark-hover.png)、[窄窗](evidence/B02-review-01/installed-narrow.png)。右上顶部“已安装(1)”与安装成功 toast 是保留的导航/瞬时使用动作,不是用户要求移除的底部永久入口。
|
||
|
||
## 3. T02:原 UI 入口的 hover 选择器断言不可用
|
||
|
||
原命令 `npm run test:recommended-skills:ui` 本轮实际退出 **1**,停在:
|
||
|
||
```text
|
||
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 结果;没有通过更换产品源码消除。
|
||
|
||
[原始失败](evidence/B02-review-01/original-ui-runner.txt)、[对照结果](evidence/B02-review-01/hover-control.json)、[卡片命中与样式诊断](evidence/B02-review-01/hover-diagnostics.json)。
|
||
|
||
验收端仅在 `.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 与槽位;未额外证明完整原生键盘导航或屏幕阅读器行为。
|
||
|
||
证据:[独立探针](evidence/B02-review-01/pointer-ui-probe.mjs)、[62 项与计算样式](evidence/B02-review-01/native-report.json)、[运行日志](evidence/B02-review-01/pointer-ui-runner.txt)。重跑时在固定 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 |
|
||
|
||
证据:[构建](evidence/B02-review-01/build.txt)、[DOM 报告](evidence/B02-review-01/dom-report.json)、[alignment](evidence/B02-review-01/alignment.txt)、[其他结果](evidence/B02-review-01/test-results.json)、[后端及真实包 SKIP](evidence/B02-review-01/recommended-backend.txt)、[token](evidence/B02-review-01/token-check.txt)。
|
||
|
||
UI 日志中的“下载失败”“安装取消”“目录不可用”是夹具刻意注入并检查恢复的场景,不是本次真实网络故障;没有发起网络技能安装。
|
||
|
||
## 5. 回传
|
||
|
||
本次用户指出的“已安装仍保留添加按钮”和“底部查看已安装技能”已获得独立修复证据,不要求重复实现。开发端补 T02 正式自动化入口;完整原版对照、宿主安装/使用端到端、键盘/辅助技术边界继续列为未验证,不以组件 62 项冒充全链路通过。
|
||
|
||
本验收只提交文档、日志、截图与独立验收探针,不修改产品/正式测试/依赖/配置。新需求 B03 和后续测试清理按各自记录处理。本文推送成功后,推送窗口交回开发端。
|