4.6 KiB
4.6 KiB
复查交接单 — halo-dark-mode-plugin(2026-08-08 第二版)
由审查窗口对开发窗口修复结果(
d95d172 fix: 按审查报告修复 P2/P3 问题并升级 1.0.5、b6403b7 docs: 按 Halo 官方插件 README 风格重写)进行复查。 初审交接单见docs/review-2026-08-08.md(本文件为其复查结果,独立文档)。 复查基线:HEAD = d95d172,工作区有未提交改动(见"遗留问题")。
一、总体结论
P2/P3 绝大部分已修复,构建链全绿,可收尾。 无新增阻断问题。剩余 3 个遗留项均为"收尾/决策"性质。
二、逐项复查结果(对照初审交接单)
| 清单项 | 状态 | 说明 |
|---|---|---|
| P2-1 FOUC | ✅ | useDarkMode.applyHtmlAttribute 同步设置 color-scheme;darkreader-engine.ts 与 README 均注明 DR 异步注入、闪白无法完全消除 |
| P2-2 文档 | ✅ | AGENTS.md / CLAUDE.md 已无旧策略残留(halo-core/overrides/Monaco/Tailwind 零命中);scripts/README.md 重写;README 按 Halo 官方风格重写 |
| P2-3 工具重复 | ⚠️ 部分 | 已删 workplace/login_wait.py、workplace/scan_dark.py;fetch_bundle.py、probe_conflict.py、aggregate.py 仍在(见遗留-3) |
| P2-4 前端单测 | ✅ | 新增 ui/src/composables/__tests__/useDarkMode.spec.ts 8 个用例,实测 8/8 通过 |
| P2-5 多标签同步 | ✅ | storage 事件监听已实现,并有 2 个测试覆盖(合法值同步 / 非法值忽略) |
| P2-6 可访问性 | ✅ | ThemeToggle 改 <button> + aria-pressed + :focus-visible;设置页改 radiogroup + role=radio + aria-checked |
| P3-1 后端日志 | ✅ | @Slf4j + log.info,替换 System.out.println |
| P3-2 vendored package.json | ✅ | 裁剪为 name/version/description/main/module/types/license 最小字段 |
| P3-3 完整性校验 | ✅ | third-party/darkreader/SHA256SUMS 新增,5 个文件哈希全部实测匹配 |
| P3-4 遗留属性注释 | ✅ | variables.css、useDarkMode.ts 已注明 data-halo-theme 为兼容性遗留 |
| P3-5 i18n | ➖ 未处理 | 初审标注低优先级可暂缓,符合预期 |
| P3-6 plugin.yaml | ✅ | spec.enabled: true → false(合理默认) |
| 版本号 | ✅ | gradle.properties 1.0.5 + DarkModePlugin @since 1.0.5 同步 |
三、审查窗口实测验证(开发窗口无需重复)
vitest run:8/8 通过vue-tsc --build:通过vite build:通过(main.js 110.40KB / gzip 37.96KB,style.css 4.11KB)prettier --check src:通过(审查窗口已代跑prettier --write修复,见遗留-1)gradlew test:BUILD SUCCESSFUL(含:ui:assemble+:processUiResources全链路;沙箱外联网执行)
四、遗留问题(待开发窗口收尾)
遗留-1:prettier 格式化已修,改动未提交
d95d172中 5 个文件缺末尾换行、variables.css列对齐不规范- 审查窗口已执行
prettier --write src(纯格式化,无逻辑变化),涉及文件:ui/src/components/ThemeToggle.vueui/src/composables/__tests__/useDarkMode.spec.tsui/src/composables/useDarkMode.tsui/src/styles/index.cssui/src/styles/variables.cssui/src/views/SettingsView.vue
- 当前这些改动在工作区未提交,需开发窗口提交
遗留-2:logo 改动未提交(需用户决策)
src/main/resources/logo.png:被替换(35KB → 65KB)但未提交src/main/resources/原版.png:新增未跟踪文件(旧 logo 备份)- 待决策:新 logo 是否随 1.0.5 入库?
原版.png删除 / 保留 / gitignore?
遗留-3:workplace/ 旧工具未清完(需用户确认删除)
- 仍保留:
fetch_bundle.py、probe_conflict.py、aggregate.py - 均为旧手工 CSS 工作流配套(抓线上 bundle / 探测覆盖冲突 / 聚合扫描结果),
scan_dark.py删除后基本失效 - 建议连同
deployed-bundle.css、aggregate.txt、scan-results.json等产物一并清理收口到scripts/
五、可选改进(非必须)
SettingsView.vueradiogroup:各按钮可 Tab 聚焦,但未实现 ArrowUp/ArrowDown 方向键切换焦点(语义上 radiogroup 通常只保留一个 tab stop);不影响当前可用性
六、收尾动作清单
- 提交 prettier 格式化改动(遗留-1)
- 与用户确认 logo / 原版.png 处置(遗留-2)
- 与用户确认 workplace/ 剩余工具删除(遗留-3)
- 可选:radiogroup 方向键导航(五)
- 可选:推送后跑一次
scripts/verify-toggle.py做真实环境回归(部署 1.0.5 后)