39 lines
2.0 KiB
Markdown
39 lines
2.0 KiB
Markdown
## Why
|
||
|
||
当前系统使用 `success` + `matched` 两层判定模型,但实际实现中 `success` 始终等于 `matched`(两者永远同值),导致两层模型退化为单层。`success` 字段没有提供任何独立信息,反而增加了理解成本和维护负担。此外,分组排序使用字母序而非 YAML 配置中的首现顺序,与 spec 要求不一致。
|
||
|
||
## What Changes
|
||
|
||
- **BREAKING**: 移除 `success` 字段,将判定模型简化为 `matched` 单层判定
|
||
- 数据库 `check_results` 表移除 `success` 列
|
||
- 所有 CheckResult 类型(服务端、共享、前端)移除 `success` 字段
|
||
- UP/DOWN 判定统一为 `matched=true` / `matched=false`
|
||
- availability 计算简化为 `matched=true 占比`
|
||
- avgDurationMs 仅计算 `matched=true` 记录的平均耗时
|
||
- 修复分组排序:非 default 分组按 YAML 首现顺序(即 `id` 顺序)排列,而非字母序
|
||
- `command-runner` 添加 `stdin: "ignore"`,符合 spec 要求
|
||
|
||
## Capabilities
|
||
|
||
### New Capabilities
|
||
|
||
无
|
||
|
||
### Modified Capabilities
|
||
|
||
- `probe-engine`: 移除结果记录中的 `success` 字段,简化为 `matched` + `failure`
|
||
- `probe-api`: `CheckResult` 和 `RecentSample` 移除 `success` 字段;UP 判定改为 `matched`
|
||
- `probe-data-store`: 数据库 schema 移除 `success` 列;可用率定义简化;排序规则修正
|
||
- `probe-dashboard`: UP/DOWN 判定改为 `matched`
|
||
- `card-dashboard`: UP/DOWN 判定改为 `matched`
|
||
- `command-checker`: 移除所有 `success` 引用;确保 stdin 禁用
|
||
- `target-grouping`: 排序规则明确为按 id 排序(YAML 首现顺序)
|
||
|
||
## Impact
|
||
|
||
- **数据库**: `check_results` 表结构变更(移除列),已有数据库需删除重建(项目未上线,无向前兼容要求)
|
||
- **API**: `CheckResult` 响应移除 `success` 字段,`RecentSample.up` 计算逻辑变更
|
||
- **前端**: 所有依赖 `success` 字段的组件需更新(TargetCard、TargetDetailModal、TargetGroup)
|
||
- **测试**: 5 个测试文件需同步移除 `success` 相关断言
|
||
- **README**: 目标状态判定模型说明需更新
|