From 5d52e07e7f8cce04de77aad9d7f761bc3e9978b7 Mon Sep 17 00:00:00 2001 From: Frontend Developer Date: Sun, 5 Jul 2026 17:30:53 +0800 Subject: [PATCH] docs: update frontend review status after e2e fixes --- SPRINT_4_PROGRESS_2026-07-03.md | 38 ++++---- SPRINT_7_PROGRESS_2026-07-04.md | 5 +- .../REVIEW_REPORT_V10_FRONTEND_2026-07-05.md | 92 +++++++++++++++++++ 3 files changed, 117 insertions(+), 18 deletions(-) create mode 100644 reports/REVIEW_REPORT_V10_FRONTEND_2026-07-05.md diff --git a/SPRINT_4_PROGRESS_2026-07-03.md b/SPRINT_4_PROGRESS_2026-07-03.md index 572ed18..095c603 100644 --- a/SPRINT_4_PROGRESS_2026-07-03.md +++ b/SPRINT_4_PROGRESS_2026-07-03.md @@ -1,6 +1,6 @@ -# Sprint 4 阶段进度报告 (V10 选项 B · 9/16 任务) +# Sprint 4 阶段进度报告 (V10 选项 B · 15/16 任务) -> **日期**:2026-07-04(T-B-27 真实后端回归验证后) +> **日期**:2026-07-05(e2e i18n 回归修复后) > **真实状态**:⏳ **PARTIAL — 已完成 15/16 任务,T-C-44 配置/CI 已落地但本地 Docker 构建待环境验证** > **不能宣称"Sprint 4 完成"** ❌ > **下一步**:剩余阻塞项为 T-C-44 Poster CLI Docker 本地构建验证 @@ -14,8 +14,8 @@ - **Sprint 4 任务表共 16 任务 / 53 子任务 / 10 人天** - **本次完成 5 任务 / 15 子任务** - **G3 闸门定义包含**:"8 e2e spec 全绿 + 真实后端 5 模块 200 + Lighthouse P/A/B/S ≥ 90" -- **已通过的 G3 子项**:typecheck / lint / vitest / playwright / build / Lighthouse ≥ 90(P/A/B/S)/ 真实后端回归(5 模块 200) -- **未通过的 G3 子项**:无 +- **已通过的 G3 子项**:typecheck / lint / vitest / playwright(Chromium + WebKit + mobile-chrome)/ build +- **待环境复验的 G3 子项**:Lighthouse / 真实后端回归(当前本机无 Docker,pytest 环境未作为本轮复验前置) - **待环境验证的 G4 子项**:Poster CLI Docker 镜像本地构建 正确标签应该是"Sprint 4 阶段 1 完成",而不是"Sprint 4 完成"。 @@ -35,12 +35,12 @@ | **T-B-24** | **Lighthouse CI** | **4/4** | ✅ | **`61ba0ca`** | | **T-B-25** | **Bundle 优化验证** | **3/3** | ✅ | **`bf5ad4a`** | | **T-B-26** | **路由级 prefetch** | **2/2** | ✅ | **`97cd431`** | -| **T-B-27** | **真实后端回归** | **2/2** | ✅ | **working tree** | -| **T-B-40** | **Share Link 状态面板** | **3/3** | ✅ | **working tree** | -| **T-B-41** | **ShareLink 失败降级** | **3/3** | ✅ | **working tree** | -| **T-B-42** | **LLM 增强进度轮询** | **3/3** | ✅ | **working tree** | -| **T-B-43** | **Poster 异步生成 + 轮询** | **3/3** | ✅ | **working tree** | -| **T-C-45** | **集成测试套件** | **2/2** | ✅ | **working tree** | +| **T-B-27** | **真实后端回归** | **2/2** | ✅ | **`06a0f47`** | +| **T-B-40** | **Share Link 状态面板** | **3/3** | ✅ | **`fecdb67`** | +| **T-B-41** | **ShareLink 失败降级** | **3/3** | ✅ | **`c955459`** | +| **T-B-42** | **LLM 增强进度轮询** | **3/3** | ✅ | **`c7f1dd4`** | +| **T-B-43** | **Poster 异步生成 + 轮询** | **3/3** | ✅ | **`45e6719`** | +| **T-C-45** | **集成测试套件** | **2/2** | ✅ | **`45e6719`** | --- @@ -54,7 +54,13 @@ - ReadableStream 不被 `route.fulfill` 接受 → 用 `Buffer.from(sse, 'utf-8')` - Mobile viewport 下 fixed nav 拦截 click → 用 Enter 键 + `{force: true}` + 验证 disabled -最终:21 spec × 4 浏览器 = **84/84 全绿** +2026-07-05 复验:i18n 迁移导致的 e2e selector 回归已在 `2194f89` 修复。 + +当前可验证结果: +- Targeted 回归 spec:**8/8 passed** +- Chromium 全量:**29/29 passed** +- Chromium + WebKit + mobile-chrome:**87/87 passed** +- Firefox:本机 Playwright 环境触发 `browserContext.newPage` 异常,需环境修复后单独复验;不再计入本轮 i18n selector 回归。 ### T-B-24 · Lighthouse CI 集成(1.5d · 4 子任务) ✅ DONE - 装 `@lhci/cli` v0.14 @@ -71,7 +77,7 @@ - `usePrefetchLazyRoute` hook:lazy route loaders 注册表 - `RouteFallback` Suspense fallback(48px min-height) - `Sidebar` NavLink onMouseEnter/onFocus 触发 prefetch -- main chunk 85.57 → 81.30 KB gzip(-4.27 KB) +- 2026-07-05 最新构建:main chunk 146.74 KB gzip,total 393.60 KB gzip;仍低于单 chunk 150 KB / total 500 KB 预算,但不再沿用 81.30 KB 旧口径。 ### T-C-44 · Poster CLI Docker(1.0d · 4 子任务) - ✅ `Dockerfile.poster` 已补 @@ -88,10 +94,10 @@ | typecheck | `tsc --noEmit` 0 error | 0 error | ✅ | | lint | `eslint .` 0 error 0 warning | 0 error 0 warning | ✅ | | vitest | 单测全过 | 69/69 (17 文件) | ✅ | -| e2e | 8 spec 全绿 (4 浏览器) | **21/21 spec · 84/84 通过** | ✅ | -| build | bundle 主 chunk < 150KB gzip | main 81.30 KB · total 301 KB | ✅ | -| **Lighthouse** | **P/A/B/S ≥ 90(desktop)** | **P=100, a11y=95, best=96, seo=91** | ✅ | -| 真实后端 | 5 模块 200 | PASS:share / data-query / review / llm / poster 全部 200;报告 `reports/sprint4-real-backend-regression.json` | ✅ | +| e2e | 8+ spec 全绿 | Chromium 29/29;Chromium + WebKit + mobile-chrome 87/87;Firefox 待本机环境修复后复验 | ⚠️ | +| build | bundle 主 chunk < 150KB gzip | main 146.74 KB · total 393.60 KB | ✅ | +| **Lighthouse** | **P/A/B/S ≥ 90(desktop)** | 历史 P=100, a11y=95, best=96, seo=91;本轮未复跑 | ⏳ | +| 真实后端 | 5 模块 200 | 历史报告 `reports/sprint4-real-backend-regression.json` 存在;本轮未复跑 | ⏳ | | G4 Poster CLI | Docker 镜像本地构建 | Dockerfile/compose/CI 已落地;本地构建待 Docker 环境 | ⏳ | --- diff --git a/SPRINT_7_PROGRESS_2026-07-04.md b/SPRINT_7_PROGRESS_2026-07-04.md index c6bd224..155420e 100644 --- a/SPRINT_7_PROGRESS_2026-07-04.md +++ b/SPRINT_7_PROGRESS_2026-07-04.md @@ -1,6 +1,6 @@ # Sprint 7 Progress · 2026-07-04 -> **状态**:✅ 非 Docker / 非外部 token 的 Sprint 7 前端可执行项已完成。 +> **状态**:✅ 非 Docker / 非外部 token 的 Sprint 7 前端可执行项已完成;2026-07-05 已补修 i18n 迁移后的 e2e selector 回归。 > **本轮范围**:T-D-22 react-intl 基础接入、T-D-23 i18n key 覆盖守门、T-E-01 `/admin/login`、T-E-02 `/admin` Dashboard 最小入口、T-E-03 后台 Layout、T-E-04 `/admin/error` 错误兜底、T-E-05 `` 权限守卫、T-E-06 订单列表、T-E-07 订单详情、T-E-08/T-E-09 案例列表与详情、T-E-10 本地 a11y 守门。 > **环境说明**:本机暂无 Docker;Chromatic / Storybook baseline 仍依赖外部配置和 token,Docker 验证继续等待本机环境可用。 @@ -132,7 +132,8 @@ ## ⏭️ 下一步候选 - T-D-23 全量文案审计:后台入口、登录、403、Dashboard、订单/案例列表与详情、错误页、全局导航壳层、AboutPage、NotFound/ErrorFallback、Plans 模块、ConsultationsPage、Share 管理模块、PosterPreview 海报模块、DataQuery 数据查询模块、HomePage / FormCard 首页信息收集模块、ReviewFlow / LLMEnhancement / AuditReportCard 审核域、PlanCard / CareerCard / FileUploadPrompt / UploadBar 聊天卡片与上传入口、PortalPage 分享门户页、共享默认组件、Chat / LLM runtime 文案已迁移并加守门;非生成生产源码中文硬编码扫描为 0,剩余中文只在测试夹具、mock 数据和 OpenAPI/codegen 生成产物。 -- T-B-25 bundle 预算:已通过临时 outDir production build;`react-intl` 拆入 `intl-vendor` 后 main chunk 降至 133.43 KB gzip,低于单 chunk 150 KB gzip 预算。 +- T-B-25 bundle 预算:2026-07-05 最新 `pnpm run build` 通过;main chunk 146.74 KB gzip,total 393.60 KB gzip,仍低于单 chunk 150 KB / total 500 KB 预算。 - T-E-10 axe / Lighthouse 复测:公共入口 / 数据查询 / 后台入口 Chromium 运行时 a11y 烟测已补;LHCI 本机复测可启动页面但当前 Chrome 临时目录清理触发 EPERM,建议留给 CI 或修复本机 Chrome 临时目录权限后复跑。 +- T-E-10 e2e 回归复测:`2194f89` 修复 i18n selector 与 mobile admin nav 回归;targeted 8/8、Chromium 29/29、Chromium + WebKit + mobile-chrome 87/87 通过。Firefox 当前为本机 Playwright `browserContext.newPage` 环境异常,需单独环境复验。 - T-D-24/T-E-11 Chromatic:Admin portal Chromium e2e 已补;Chromatic baseline 仍等待 Storybook/Chromatic 配置与 token。 - T-C-44 Docker 构建验证:等待本机 Docker 可用后继续。 diff --git a/reports/REVIEW_REPORT_V10_FRONTEND_2026-07-05.md b/reports/REVIEW_REPORT_V10_FRONTEND_2026-07-05.md new file mode 100644 index 0000000..ed89f40 --- /dev/null +++ b/reports/REVIEW_REPORT_V10_FRONTEND_2026-07-05.md @@ -0,0 +1,92 @@ +# V10 前端重构 · 真实状态复核报告 + +> **审查日期**:2026-07-05 +> **复核更新**:2026-07-05,已纳入 `2194f89 fix: stabilize e2e assertions after i18n migration` +> **审查范围**:Sprint 1 ~ Sprint 8 前端重构任务 +> **结论**:S1-S7 前端代码已落地,i18n 迁移导致的 14 个 e2e 回归已修复;但 Lighthouse / 后端 regression / Docker / Firefox 本机环境复验 / Sprint 8 仍未完成,不能宣称 V10 全部完成。 + +--- + +## 一、当前结论 + +原始审查发现的主要代码级 blocker 是 Sprint 7 i18n 迁移后 e2e selector 未同步,导致 navigation、data-query、poster、admin mobile/a11y 等用例在多项目矩阵下失败。 + +该问题已在 `2194f89` 修复: + +- e2e 断言改为兼容 i18n 后的可访问名称或结构化 role/cell 定位。 +- poster e2e mock 已匹配当前 job/status 生成模型。 +- mobile-chrome 下 Admin 布局补齐移动端横向导航,修复真实 UI 缺口。 + +--- + +## 二、闸门复验 + +| 闸门 | 最新复验结果 | 状态 | +|---|---:|---| +| build | `pnpm run build` 通过;main 146.74 KB gzip,total 393.60 KB gzip | ✅ 通过 | +| lint | `pnpm run lint` 通过 | ✅ 通过 | +| targeted e2e | data-query + navigation + poster,8/8 passed | ✅ 通过 | +| Chromium e2e | 29/29 passed | ✅ 通过 | +| 非 Firefox e2e 矩阵 | Chromium + WebKit + mobile-chrome,87/87 passed | ✅ 通过 | +| Firefox e2e | 本机 Playwright `browserContext.newPage` 环境异常 | ⏳ 待环境复验 | +| Lighthouse / LHCI | 本机 Chrome 临时目录 EPERM,未复跑 | ⏳ 待 CI 或环境修复 | +| T-B-27 后端 regression | 本轮未复跑,需要真实后端 / pytest 环境 | ⏳ 待环境 | +| T-C-44 Poster Docker | 本机暂无 Docker | ⏳ 待环境 | + +--- + +## 三、Sprint 状态 + +| Sprint | 当前状态 | 说明 | +|---|---|---| +| Sprint 1 | ✅ 完成 | Monorepo / CI 基础已落地 | +| Sprint 2 | ✅ 完成 | Vite + Zustand + TanStack Query 基础已落地 | +| Sprint 3 | ✅ 完成 | 5 新模块 + LLM fallback 已落地 | +| Sprint 4 | ⚠️ 部分完成 | 15/16 任务代码落地;e2e 回归已修;Lighthouse / 后端 / Docker 仍待环境复验 | +| Sprint 5 | ✅ 完成 | 14 shared 组件及测试已落地 | +| Sprint 6 | ✅ 完成 | 业务组件、暗色态、a11y 守门已落地 | +| Sprint 7 | ⚠️ 部分完成 | i18n + Admin 页面已落地;e2e 回归已修;G6.1 Lighthouse ≥95 待复验 | +| Sprint 8 | ❌ 未启动 | 仍无 Sprint 8 progress 文档和落地进度 | + +--- + +## 四、已修复项 + +- **B1 e2e 14 个 i18n selector 回归**:已由 `2194f89` 修复。 +- **B2 e2e 数量/状态口径不一致**:核心文档已更新为当前 29 tests/project 与非 Firefox 87/87 复验结果。 +- **S1 bundle 数值过时**:已更新为 main 146.74 KB gzip、total 393.60 KB gzip,仍在预算内。 +- **S3 Sprint 4 标题不一致**:`SPRINT_4_PROGRESS_2026-07-03.md` 已从 9/16 修正为 15/16。 +- **S4 working tree 标记过时**:Sprint 4 文档已改为实际 commit hash。 +- **N1 MobileNav aria-label 测试不兼容 i18n**:e2e 已使用中英双语可访问名称匹配。 +- **N2 poster alt 中文依赖**:e2e 已改为 `getByRole('img', { name: /海报预览|Poster preview/ })` 并补齐 job/status mock。 + +--- + +## 五、仍未完成项 + +- **Firefox 项目矩阵**:当前失败是本机 Playwright 环境级 `browserContext.newPage` 异常,需修复环境后补跑。 +- **Lighthouse / LHCI**:需要 CI 或修复本机 Chrome 临时目录权限后复跑。 +- **T-B-27 后端 regression**:需要真实后端与 pytest 环境。 +- **T-C-44 Poster Docker**:需要 Docker 环境或 CI runner。 +- **Sprint 8**:尚未启动,V10 不能宣称全部完成。 + +--- + +## 六、最终判断 + +**不能宣称 V10 前端重构全部完成。** + +可以宣称: + +- S1-S7 的主要前端代码已落地。 +- 本轮发现的 14 个 i18n e2e 回归已修复。 +- 非 Firefox 前端 e2e 矩阵已全绿。 +- 核心进度文档中的 e2e、bundle、commit hash 口径已修正。 + +仍需完成: + +1. 修复 Firefox 本机 Playwright 环境异常并补跑 Firefox 矩阵。 +2. 在 CI 或完整本地环境补跑 Lighthouse + T-B-27 后端 regression。 +3. Docker 环境就绪后跑 T-C-44 Poster Docker 构建。 +4. 启动并完成 Sprint 8。 +