执行档:review(离线;未联网装依赖、未启停服务、未改生产代码) 基线:
cfclub @ df6c57a12(跑测期间分支/HEAD 未漂移;收尾 origin 前进至e759ba830,仅 docs)
java version "1.8.0_25" # JAVA_HOME=D:\jdk1.8.0_25
Apache Maven 3.6.1 # D:\maven\apache-maven-3.6.1\bin\mvn
node v22.22.2 / playwright 1.63.0
D: 93G avail (69% used)
cd d:/cfc/cfc-backend
export JAVA_HOME=/d/jdk1.8.0_25
/d/maven/apache-maven-3.6.1/bin/mvn -o -B clean test # 46:17
[ERROR] Tests run: 2865, Failures: 30, Errors: 3, Skipped: 4target/classes 2325 class;testCompile 345 源 0 错@Test 2854 − @Disabled 4 + 净增 15 = 2865_r130_agg.json(33 条,与 R129 逐例一致)cd d:/cfc/cfc-frontend && CI=true npx jest --ci --runInBand # 26 套件 426 例 = 423 过 / 3 skip / 0 红(46.5s)
cd d:/cfc/cfc-web && CI=true npx jest --ci --runInBand --coverage # 17 套件 116 例全绿(169.7s),stmt 10.09 / branch 6.12 / func 7.50 / line 9.97
cd d:/cfc && npx jest -c tests/jest.config.js --ci # 23 例 = 7 过 / 16 红(ECONNREFUSED 9082)
| 套件 | 节点 | 命令 | 结果 |
|---|---|---|---|
| admin-desktop | 189 | `_r130_189_admin.cjs kick | read(opencode/api/shell?location[directory]=C:\code\cfc`) |
| frontend-mobile | 本机 | cd tests && npx playwright test -c playwright.config.live.js --project=frontend-mobile --reporter=line |
6/6(57.3s) |
| shop-api | 本机 | 同上 --project=shop-api |
4/4(15.1s) |
| health-api | 本机 | npx playwright test -c playwright.config.health.js --reporter=line |
13/13(9.9s) |
合计 28/28;本机 workers:1 串行,189 单任务独占(每节点仅一个浏览器任务)。
# kick(setsid 分离 + 落盘,避免轮询杀进程 —— B-125)
_node: POST /api/shell?location[directory]=/sc-data/cfc/cfc-langgraph {command, cwd}
cmd: git fetch && git reset --hard origin/cfclub; setsid nohup timeout 1500 .venv/bin/python -m pytest tests \
--ignore=tests/qna --ignore=tests/test_chat.py -q --tb=line > /tmp/r130_pytest.log 2>&1 < /dev/null & echo KICKED_PID_$!
# 首跑:38 passed / 5 failed / 150.93s(HEAD 7aef3d21d)
# 定向复跑(只跑红文件):5 failed / 5 passed / 67.42s
test_auto_tag.py::content_relevance / short_content / empty_content、test_intent.py::classify_analysis / classify_mindRateLimitError 429 (AgnesAI_error);intent_classifier.py:62 默认回落 chatcurl -s POST :9000/api/v1/chat {"query":"你好","user_id":1,"conversation_id":"r130"} -> 200 / 25.53s / 703B
curl -s POST :9000/api/v1/chat {"query":"孩子不爱写作业怎么办",...} -> 200 / 13.03s / 215B
curl -s POST :9000/api/v1/analyze {"report_id":1,"user_id":1} -> 200 / 4.20s / 1019B
curl -s GET :9000/health -> 200 / 6.8ms
B-90 销号依据:连续 2 次 chat 200(此前 R121~R129 连续 9 轮 90s 零字节)。
POST https://cfc.iwintrue.com/api/mind/fortune -> 401
POST https://cfc.iwintrue.com/api/energy/overview -> 401
POST https://cfc.iwintrue.com/api/health/plan/list -> 401
POST https://cfc.iwintrue.com/api/huawei-health/status -> 401
4/4 = 401 → 销号维持(第 4 轮)。
| 节点 | 结果 |
|---|---|
| 192.168.16.189:4090 | 200(浏览器任务承担者) |
| 192.168.16.251:4096 | 200(派发通道) |
| 192.168.16.251:9000 | / 404(正常,无根路由)、/health 200 |
| 192.168.16.204:4090 | 000(B-95 第 6 轮) |
find docs/superpowers/specs docs/superpowers/user-scenarios docs/superpowers/api -newermt "2026-11-10 19:30" -name "*.md" # 0
git log --since="2026-11-10 19:30" -- docs/superpowers tests/test-cases # 0
git diff --stat df6c57a12..HEAD -- cfc-backend/src cfc-langgraph/app cfc-frontend/pages cfc-web/src # 空
→ 规格 / 场景 / 接口文档 / 源码窗口内零变更 → 按纪律不新增、不修改用例(G12 合规)。
| 指标 | 值 |
|---|---|
| 规格文件 | 200 |
| 测试用例行(含 TC- 的表格行) | 827 |
| 唯一 TC ID | 57 |
| TC 锚点(指向可执行用例) | 82 → 9.9% |
| 用户场景 SC 唯一 | 244 |
| SC 被 TC 引用 | 149 → 61.1% |
| 控制器 | 365 |
@GetMapping/@PutMapping/@DeleteMapping 违例 |
8 |
| 后端测试类 / 测试源 | 339 / 345 |
| 套件 | 例数 | 过 | 红 | skip |
|---|---|---|---|---|
| 后端 surefire | 2865 | 2828 | 33 | 4 |
| cfc-web Jest | 116 | 116 | 0 | 0 |
| cfc-frontend Jest | 426 | 423 | 0 | 3 |
| 根级黑盒 Jest | 23 | 7 | 16 | 0 |
| langgraph@251 | 43 | 38 | 5 | 0 |
| 浏览器 live | 28 | 28 | 0 | 0 |
| 合计 | 3501 | 3440 | 54 | 7 |
通过率 98.26%(R129 3439 → +1)。