Files
gaokao-volunteer-system/SPRINT_4_PROGRESS_2026-07-03.md
Frontend Developer 5d52e07e7f
Some checks failed
CI / pytest (Python 3.10) (push) Has been cancelled
CI / pytest (Python 3.11) (push) Has been cancelled
CI / pytest (Python 3.12) (push) Has been cancelled
docs: update frontend review status after e2e fixes
2026-07-05 17:30:53 +08:00

6.2 KiB
Raw Blame History

Sprint 4 阶段进度报告 (V10 选项 B · 15/16 任务)

日期2026-07-05e2e i18n 回归修复后) 真实状态 PARTIAL — 已完成 15/16 任务T-C-44 配置/CI 已落地但本地 Docker 构建待环境验证 不能宣称"Sprint 4 完成" 下一步:剩余阻塞项为 T-C-44 Poster CLI Docker 本地构建验证


⚠️ 重要的更正

SPRINT_4_CLOSEOUT_2026-07-03.md 文件标题用了"收口报告"和"G3 闸门全部通过",但实际:

  • Sprint 4 任务表共 16 任务 / 53 子任务 / 10 人天
  • 本次完成 5 任务 / 15 子任务
  • G3 闸门定义包含"8 e2e spec 全绿 + 真实后端 5 模块 200 + Lighthouse P/A/B/S ≥ 90"
  • 已通过的 G3 子项typecheck / lint / vitest / playwrightChromium + WebKit + mobile-chrome/ build
  • 待环境复验的 G3 子项Lighthouse / 真实后端回归(当前本机无 Dockerpytest 环境未作为本轮复验前置)
  • 待环境验证的 G4 子项Poster CLI Docker 镜像本地构建

正确标签应该是"Sprint 4 阶段 1 完成",而不是"Sprint 4 完成"。


实际完成15 任务 · 47 子任务,截至 T-B-27 真实后端回归验证)

ID 任务 子任务 状态 Commit
T-B-18 错误码映射 3/3 86296bd
T-B-19 ErrorBoundary 3/3 ad261d7
T-B-20 离线检测 4/4 c4f12ca
T-B-21 SubmitButton 守卫 3/3 411f225
T-B-22 Query 持久化 3/3 f5e40a4
T-B-23 e2e 真实化8 spec 8/8 1a49439
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 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

剩余 / 阻塞1 任务 · 4 子任务)

T-B-23 · e2e 真实化2.0d · 8 子任务) DONE

8 个真实业务流 e2etheme-switch / chat-send-receive / form-submit-validation / plan-create-view / data-query-search / review-flow-approve / poster-generate-download

修复 3 类 e2e bug

  • Playwright 多 handler 同时匹配fallback **/api/** 覆盖精细 mock → 改用 (url) => url.pathname.startsWith('/api/') && !includes(精确路径)
  • ReadableStream 不被 route.fulfill 接受 → 用 Buffer.from(sse, 'utf-8')
  • Mobile viewport 下 fixed nav 拦截 click → 用 Enter 键 + {force: true} + 验证 disabled

2026-07-05 复验i18n 迁移导致的 e2e selector 回归已在 2194f89 修复。

当前可验证结果:

  • Targeted 回归 spec8/8 passed
  • Chromium 全量:29/29 passed
  • Chromium + WebKit + mobile-chrome87/87 passed
  • Firefox本机 Playwright 环境触发 browserContext.newPage 异常,需环境修复后单独复验;不再计入本轮 i18n selector 回归。

T-B-24 · Lighthouse CI 集成1.5d · 4 子任务) DONE

  • @lhci/cli v0.14
  • apps/web/lighthouserc.cjs: desktop preset, 3 runs, P/A/B/S ≥ 90 断言
  • GitHub Action treosh/lighthouse-ci-action@v12 + temporaryPublicStorage
  • 本地实测P=100 / a11y=95 / best=96 / seo=91

T-B-25 · Bundle 优化验证0.5d · 3 子任务) DONE

  • vite.config.ts: production sourcemap=falsebuild time 17.89s → 6.89s
  • scripts/bundle-report.cjs: 总 500KB / 单 chunk 150KB budget
  • 8 vendor manualChunks 保持 + lazy page chunks 新增

T-B-26 · 路由级 prefetch0.5d · 2 子任务) DONE

  • usePrefetchLazyRoute hooklazy route loaders 注册表
  • RouteFallback Suspense fallback48px min-height
  • Sidebar NavLink onMouseEnter/onFocus 触发 prefetch
  • 2026-07-05 最新构建main chunk 146.74 KB gziptotal 393.60 KB gzip仍低于单 chunk 150 KB / total 500 KB 预算,但不再沿用 81.30 KB 旧口径。

T-C-44 · Poster CLI Docker1.0d · 4 子任务)

  • Dockerfile.poster 已补
  • docker-compose.yml 已添加 gaokao-poster profile 服务
  • CI 已添加 Poster CLI Docker 合同测试与 docker build -f Dockerfile.poster
  • 本地 Docker 构建验证未跑:当前环境未安装 docker

🔍 当前 G 闸门真实状态2026-07-03 深夜)

闸门 定义 实测 状态
typecheck tsc --noEmit 0 error 0 error
lint eslint . 0 error 0 warning 0 error 0 warning
vitest 单测全过 69/69 (17 文件)
e2e 8+ spec 全绿 Chromium 29/29Chromium + WebKit + mobile-chrome 87/87Firefox 待本机环境修复后复验 ⚠️
build bundle 主 chunk < 150KB gzip main 146.74 KB · total 393.60 KB
Lighthouse P/A/B/S ≥ 90desktop 历史 P=100, a11y=95, best=96, seo=91本轮未复跑
真实后端 5 模块 200 历史报告 reports/sprint4-real-backend-regression.json 存在;本轮未复跑
G4 Poster CLI Docker 镜像本地构建 Dockerfile/compose/CI 已落地;本地构建待 Docker 环境

🛡 防止再"虚假完成"

上一版本 Sprint 4 closeout 文档把"5/16 任务完成"包装成"全部通过 G3 + Sprint 4 完成"。这是用户已知的问题。新规则

  1. 任务表 vs 状态表:每篇 closeout 必须用任务表的真实状态(完成 5/16而不是"全部通过"
  2. 闸门 vs 子任务G3 闸门定义要拆成可独立标记的子项
  3. 阶段完成 ≠ Sprint 完成5 任务完成是"Sprint 4 阶段 1 完成",不是"Sprint 4 完成"
  4. 真实命令输出 ≠ 真实实现:每个 commit 都要看实际文件

下一步

建议继续:

  • 选项 A安装/启用 Docker 后,跑 T-C-44 Poster CLI Docker 本地构建验证
  • 选项 B在可用 Python 后端环境中补跑后端 pytest 契约测试