Files
ycode/docs/协作/B01-验收-02.md
T

56 lines
6.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# B01 验收 02:F01 与模式、确认弹窗
日期:2026-10-21(Asia/Shanghai)。对应 [交付 02](B01-交付-02.md),固定受测代码 **`1ed71b63b5af9a98b942ff47c66df5799d4d2c8a`**。
**结论:F01 原始反例已通过,A05/A06 本次交付的功能与已确认样式修复通过独立 Windows 检查;原生模式测试入口仍需修复。B01 不全量关闭。**
本记录补齐前轮已执行但未正式回传的结果。没有使用后来 B02 或测试清理提交替代受测代码。新建本轮专用文档检出,避免复用出现并发推进的旧文档检出;未修改产品、正式测试、依赖或构建配置。
## 1. 环境与数据
Windows 11 IoT 企业版 LTSC 64 位,10.0.26100;Node 24.21.0、npm 11.19.0、Electron 37.10.3。固定 SHA 的独立检出执行 `npm ci --legacy-peer-deps --no-audit --no-fund`,显式补执行 Electron 安装脚本后构建;没有复用开发机依赖。jsdom 30.1.3 安装于 `.tmp/b01-dom`。
所有应用/组件窗口均使用测试 userData、home、workspace。仅使用本地持久化消息或受控回调,不请求模型、SDK query/CLI,不操作用户实际会话,不访问 WorkBuddy 原版。已有真实用户 dev 未被这些测试结束或替换。
## 2. 分项结果
| 项目 | 独立结果 | 范围 |
| --- | --- | --- |
| F01/AC1.3 原生计划、任务状态 | 通过,关闭本次具体失败 | 原验收 reducer→MessageBubble 反例现在 `retainsUserChoices=true`,两卡均保持 false;新增原生身份回归覆盖插入、重排、外层切换、消息隔离和无 ID 同位置 fallback |
| A05/AC3.1 模式标签 | 本次功能与样式修复通过 | 同一组件真实 Chromium 的透明背景、pill、32px/13px/500/20px、16px 原位槽、hover/focus 替换、禁用与窄窗;95 项通过 |
| A05 宿主草稿/权限 | 通过 | 实际 main/preload/renderer 中,两模式均以原生键盘退出,草稿原样保留,full-access 保存值保持,返回 craft 后权限控件恢复可用 |
| A06/AC3.2~3.3 确认浮层 | 本次已确认参数与行为通过 | 原生应用 71 项菜单/IPC/落库检查;浅深主题主/次/危险按钮、240px 壳、16px 圆角、600 标题、66px 最小宽、19px inset |
| A06 busy/失败/重试 | 通过,组件层 | 同一 TaskPopconfirm 的真实 Chromium 夹具 78 项:运行中“停止并删除”、重复点击锁、busy 不能退出、错误保留及重试。受控回调,不证明真实运行任务终止链路 |
| A01/A04 回归 | 通过指定回归 | alignment、问答真实窗口及浅深/窄窗/长内容壳检查通过 |
按钮本轮实际几何为高 28px、圆角 6px、字体 12px,按交付的 small Button 规格验证;**并未由此认定原版所有按钮几何或整页像素完成 1:1**。ModeChip 的原版 SVG 仍未替换;没有同版本、同状态原版运行对照,原版完整视觉结论继续未验证。
F01 原始结果:[JSON](evidence/B01-review-02/typed-part-result.json)、[反例源码](evidence/B01-review-02/typed-part-repro.mjs)。在固定受测检出中,将脚本复制到 `.tmp/b01-readonly-review/` 后执行 `node .tmp/b01-readonly-review/typed-part-repro.mjs --assert`,本轮退出 0。本文仅引用当前产品模式的执行结果,不将脚本的其他分支视为本轮已运行。
## 3. T01:原生模式测试入口在 Windows 超时
`node scripts/test-mode-chip-native.mjs` 本轮运行 60 秒后被其超时定时器结束,父进程记录 `exitCode:null`。仅生成 fixture,没有 report 或 failure;因此**该命令没有通过**。[原始结果](evidence/B01-review-02/original-mode-runner.txt)。
验收端另用 `.tmp` 下 CJS 异步测试入口加载同一份已生成 fixture,保留原尺寸、主题、布局、禁用与原生输入检查,并补齐原生键盘字符事件;95 项通过。[入口](evidence/B01-review-02/mode-cjs-runner.cjs)、[报告](evidence/B01-review-02/mode-report.json)、[运行结果](evidence/B01-review-02/mode-cjs-runner.txt)。
开发端需修正式测试入口的 Windows 可运行性、事件序列及超时诊断。静态线索是原 ESM 入口在顶层等待 fixture 构建与 `app.whenReady()`;这不是本轮已经证明的唯一根因,不能只改扩长 timeout 就宣布修复。CJS 对照说明组件在同一环境可运行,不把入口超时等同于产品模式功能失败。
## 4. 其他命令与既有失败
- 独立 `npm run build`、带 DOM 环境的 `test:alignment`、`test:conversation`、`test:workbuddy-import`、`test:artifacts` 均退出 0。
- `check:tokens` 仍退出 1,为既有六项;`test:fold-summary` 仍退出 1,为既存 Windows CRLF 摘要问题。没有刷新 baseline、修改生成物/manifest,不能将这些命令写成通过。
- 原生菜单 71 项、CJS 模式 95 项、弹窗 Chromium 78 项均为实际执行,不是 `--build-only`。
- 只有显示并允许 compositor 推进后,才采纳弹窗 busy 动画颜色结果;初次隐藏窗口的未稳定颜色没有列为产品缺陷。
证据:[构建](evidence/B01-review-02/build.txt)、[alignment](evidence/B01-review-02/alignment.txt)、[其他命令](evidence/B01-review-02/regressions.json)、[原生菜单](evidence/B01-review-02/menu-report.json)、[弹窗](evidence/B01-review-02/popconfirm-browser-report.json)、[模式宿主](evidence/B01-review-02/mode-host-report.json)、[问答](evidence/B01-review-02/question-report.json)。
截图:[归档浅色](evidence/B01-review-02/archive-light.png)、[删除深色](evidence/B01-review-02/delete-dark.png)、[计划聚焦](evidence/B01-review-02/mode-plan-focus.png)、[仅问答深色聚焦](evidence/B01-review-02/mode-ask-dark-focus.png)。已人工查看。
复跑模式与弹窗的验收入口时,先在指定 SHA 构建,使用交付脚本的 `--build-only` 生成 fixture,再把对应 CJS 验收入口复制到该检出的 `.tmp/`,传入生成目录;不要提交或复制生成 JS/依赖作为源码交付。宿主探针同样只放 `.tmp/`,自行建立隔离数据。
## 5. 后续
F01 不再要求重复修复,A05/A06 本次已测行为不推倒重做。后续补 T01 自动化入口、原版 SVG/同状态完整视觉、真实运行中停止链路等未验证边界。YC-002、YC-004、A07/A08没有在本轮交付,不因本记录关闭;保留用户撤回骨架补丁的决定。
本记录是验收文档交接,不是产品修复。最终批次状态仍以逐项 AC 为准。