1
0

refactor: 移除 success 字段,简化为 matched 单层判定模型

This commit is contained in:
2026-05-11 13:12:55 +08:00
parent 548b44d28e
commit 35ba56888b
93 changed files with 3893 additions and 103 deletions

View File

@@ -0,0 +1,49 @@
## 1. 核心类型变更
- [x] 1.1 从 `src/server/checker/types.ts` 的 CheckResult 和 StoredCheckResult 类型中移除 `success` 字段
- [x] 1.2 从 `src/shared/api.ts` 的 CheckResult 类型中移除 `success` 字段
## 2. 数据存储层变更
- [x] 2.1 修改 `src/server/checker/store.ts`DDL 移除 `success`INSERT 语句移除 success 绑定,所有查询中移除 success 引用
- [x] 2.2 修改 `src/server/checker/store.ts`getSummary 中 UP 判定改为 `latest.matched`
- [x] 2.3 修改 `src/server/checker/store.ts`getTargetStats 可用率计算改为 `matched = 1`
- [x] 2.4 修改 `src/server/checker/store.ts`getTrend 中 availability 和 avgDurationMs 改为基于 `matched = 1`
- [x] 2.5 修改 `src/server/checker/store.ts`getRecentSamples 返回类型移除 successSELECT 移除 success 列
- [x] 2.6 修改 `src/server/checker/store.ts`:分组排序 ORDER BY 移除 `grp`,改为 `ORDER BY CASE WHEN grp='default' THEN 0 ELSE 1 END, id`
## 3. 拨测执行层变更
- [x] 3.1 修改 `src/server/checker/fetcher.ts`:所有 CheckResult 返回值中移除 `success` 字段
- [x] 3.2 修改 `src/server/checker/command-runner.ts`:所有 CheckResult 返回值中移除 `success` 字段
- [x] 3.3 修改 `src/server/checker/command-runner.ts`Bun.spawn 添加 `stdin: "ignore"`
- [x] 3.4 修改 `src/server/checker/engine.ts`writeResult 调用中移除 `success` 传递
## 4. API 路由层变更
- [x] 4.1 修改 `src/server/app.ts`mapCheckResult 移除 `success` 字段映射
- [x] 4.2 修改 `src/server/app.ts`recentSamples.up 判定改为 `s.matched === 1`
## 5. 前端组件变更
- [x] 5.1 修改 `src/web/components/TargetCard.tsx`isUp 判定改为 `target.latestCheck?.matched`
- [x] 5.2 修改 `src/web/components/TargetGroup.tsx`up 计数改为 `t.latestCheck?.matched`
- [x] 5.3 修改 `src/web/components/TargetDetailModal.tsx`isUp 和 history 行状态改为基于 `matched`
## 6. 测试同步
- [x] 6.1 更新 `tests/server/checker/fetcher.test.ts`:移除所有 `success` 相关断言,改为 `matched` 断言
- [x] 6.2 更新 `tests/server/checker/command-runner.test.ts`:移除所有 `success` 相关断言,改为 `matched` 断言
- [x] 6.3 更新 `tests/server/checker/engine.test.ts`:移除所有 `success` 相关断言,改为 `matched` 断言
- [x] 6.4 更新 `tests/server/checker/store.test.ts`:插入数据移除 `success` 字段,查询断言移除 `success` 检查
- [x] 6.5 更新 `tests/server/app.test.ts`API 响应断言移除 `success` 字段
## 7. 质量验证
- [x] 7.1 执行 `bun run check`typecheck + lint + format + test确保全部通过
- [x] 7.2 执行 `bun run verify`check + build + smoke test确保全部通过
## 8. 文档更新
- [x] 8.1 更新 README.md目标状态判定模型改为 matched 单层判定,移除 success 说明
- [x] 8.2 更新 README.md响应字段中移除 CheckResult 的 success 字段描述