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
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
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
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
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
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
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 集成 + 覆盖率徽章配置
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 版本自动化测试
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 |
|