Commit Graph

11 Commits

Author SHA1 Message Date
Frontend Developer
e8b8ad079e feat(sprint-2): V10 选项 B 完整切换 + G1 闸门通过
框架切换:Next.js 16 → Vite 5 + React 19 + React Router 7
状态管理:7 手写 hook → 4 Zustand slice
数据获取:直接 fetch → TanStack Query 5 (15 hooks)
表单:3-step 状态机 → RHF 7 + Zod
测试:0 → 25 单测 + 20 e2e (4 浏览器)
Bundle:192 KB gzip (目标 < 300 KB)
Lint:49 warning → 0 warning
Type:33 any → 0 any

S2-T-01 切 Vite 5 + React 19 框架
S2-T-02 Zustand 4 slice 替代 7 手写 hook
S2-T-03 TanStack Query 5 + 15 hooks
S2-T-04 Vitest + RTL + MSW + Chromatic 配置
S2-T-05 OpenAPI Codegen + Zod schema 复用
S2-T-06 RHF 7 + Zod 重写 FormCard
S2-T-07 Playwright 视觉基线 4 浏览器 5 spec
S2-T-08 Vite build + bundle < 300KB gzip

G1 闸门 (全部通过):
- typecheck: 0 error
- lint: 0 error 0 warning
- test (Vitest): 25/25 passed
- test:e2e (Playwright): 20/20 passed
- build (Vite): 326 modules 4.14s
- codegen:check: OpenAPI types 非占位

Sprint 2 收口报告:SPRINT_2_CLOSEOUT_2026-07-03.md
2026-07-03 15:51:03 +08:00
Frontend Developer
fa7c22e8ed chore(s1): monorepo skeleton + 30-file prototype first commit
Sprint 1 G0 闸门通过 (pnpm install / typecheck / lint / build / turbo 全部 exit 0)

实际完成:
- T-A-01 monorepo 根骨架: pnpm-workspace.yaml + turbo.json + 根 package.json
- T-A-02 收编原型: apps/web/ 30 个 src/ 文件 (4948 行) 首次入库
- T-A-03 lint/format: eslint flat config (根 + apps/web) + prettier
- T-A-23 web-ci.yml: GitHub Actions 4-step CI (typecheck/lint/build/bundle)

勘误 (前置假设错误):
- 原型 4948 行 (不是 4114 行)
- 原型含 33 个 any + 16 个未用变量 (Sprint 2 修)
- 原型从未 commit, 用 cp -r + git add, 不是 git mv

推迟到 Sprint 2+:
- T-A-04/05 tsconfig packages 抽离
- T-A-06/07/08 design tokens 抽离
- T-A-09~13 5 基础组件

依赖隔离:
- .gitignore 加 11 行 monorepo 规则
- apps/web/.gitignore 补 .npm-cache/next-dev.log
- 删除 apps/web 内嵌 .git/ (cp -r 复制时携带)

验证:
- pnpm install: 1m55s, 456 packages
- typecheck: 0 errors
- lint: 0 errors, 49 warnings (any + unused)
- next build: 8 routes compiled, 9/9 static pages
- turbo run build: 1 successful, 12.9s
2026-07-03 09:22:03 +08:00
Hermes Agent
6d0feeb090 build: prove pdf runtime and strict remediation gates
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
2026-06-18 17:40:12 +08:00
Hermes Agent
d415d8a494 build: tighten runtime contracts and dependency reproducibility 2026-06-18 15:50:23 +08:00
Hermes Agent
7fabc23715 fix(t12): close payment delivery and governance remediation
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
2026-06-15 11:39:31 +08:00
Hermes Agent
93fa527f64 docs(review): reconcile completed-stage issues from 2026-06-13 alignment review
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
2026-06-14 10:12:03 +08:00
Hermes Agent
ca480ebf84 chore(quality): close T5.5 coverage gate
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
2026-06-13 22:31:40 +08:00
Hermes Agent
9510fd16ec chore(release): finalize T5.5 coverage gate artifacts
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
2026-06-13 16:25:54 +08:00
Hermes Agent
3f46811e49 release: cut v2.1
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
2026-06-13 14:49:58 +08:00
Hermes
361dbe5fbd feat(ci): T10.2 codecov 集成 + 覆盖率徽章配置
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
完成 v2.1 实施计划 T10.2: codecov 集成与覆盖率徽章。

变更:
- .github/workflows/ci.yml: 新增 'Upload coverage to Codecov' 步骤
  - codecov/codecov-action@v4 (锁 major)
  - 3.11 单点上传,flag=python-3.11(避免矩阵多份报告冲突)
  - fail_ci_if_error: false(codecov 不可达不阻断 CI)
  - 不设 token: public repo 匿名上传即可
- codecov.yml: 配置文件
  - project target 60% / threshold 1% (与 T5.5 整体门槛对齐)
  - core (skills/gaokao-spec-checker + gaokao-college-advisor) target 80% / threshold 2%
  - patch target 70% / threshold 5%
  - ignore docs/tests/rules/scripts/gaokao-shortlink (非生产代码)
  - require_ci_to_pass: false (CI 失败不阻塞 codecov 上传)

本地验证:
- pytest 136/136 通过 (T7 修复后 test_route_short_link 已恢复)
- 整体覆盖率 59.55% (line-rate=0.5955, 2126/1266 lines)
- coverage.xml 是合法 Cobertura XML (codecov-action 可消费)
- ci.yml/codecov.yml YAML schema 解析通过

未在本任务范围: T5.5 --cov-fail-under 硬门槛启用、scripts/* 0% 覆盖率补齐、
core 模块 (gaokao-spec-checker 72%, 距 80% 差 8%) 补齐。
2026-06-12 11:02:11 +08:00
hermes-ops
b4ecad2130 feat(ci): T10.1 GitHub Actions 多 Python 版本自动化测试
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
- .github/workflows/ci.yml: CI 流水线
  - 触发器: push / pull_request 到 main
  - 矩阵: Python 3.10 / 3.11 / 3.12
  - fail-fast: false(单版本失败不影响其他)
  - concurrency: 取消同分支旧运行
  - steps: checkout / setup-python / pip cache / 安装依赖 / 运行 pytest+coverage / 上传 coverage 产物
- pytest.ini: 统一测试发现(tests + data/*/tests),与 CI 行为一致
- requirements-dev.txt: 测试依赖最小集(pytest / pytest-cov / pytest-timeout / pytest-xdist)
- README.md: 顶部增加 CI 状态徽章
- .gitignore: 忽略 .coverage.* / coverage.xml

覆盖率硬门槛(--cov-fail-under)留待 T5.5,避免在 T10.1 阶段被尚未补齐的脚本/分享模块测试阻断。
本任务产出 coverage.xml 供 T10.2 codecov 集成使用。
2026-06-12 10:51:35 +08:00