Commit Graph
4 Commits
Author SHA1 Message Date
kevin9327andClaude Opus 5 68005c92e6 fix(alerts): 触发记录查询的 days/limit 补上范围约束
GET /api/alerts 的 days、limit 是裸 int,没有任何约束,越界值不报错而是
静默返回错误结果:

- days=-1  → cutoff 被推到未来,200 但 alerts 为空(total 仍是 3)
- limit=-1 → out[:limit] 变成负数切片,3 条记录只返回 2 条,
             静默丢掉最旧一条,调用方无从察觉
- limit=0  → 200 但 alerts 为空

同类列表端点已有正确写法:abnormal.py 用 `limit: int = Query(500, ge=1,
le=2000)`,rps.py 用 `days: int = Query(12, ge=7, le=30)`,越界直接 422。
本次把 /api/alerts 补齐到同一口径,上下限取存储侧保留策略本身
(alert_store.MAX_DAYS / MAX_RECORDS),不新增常量,超出保留窗口的请求
本来也没有可返回的数据。

前端 alertsList 实际只传 days=7、limit=1/10/500,全部落在新区间内;
新增的 tests/test_alerts_query_bounds.py 同时锁住这些合法取值仍返回 200
且记录条数不变。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-09 07:37:17 +09:00
kevin9327 9a9903cf69 fix(ext-data): 定时拉取的时间窗口与落盘日期改用北京时间 2026-09-08 19:56:03 +09:00
kevin9327 6876db1a86 perf(ext-data): CSV 编码转换改为分块进行, 峰值内存不再随文件线性增长 2026-09-07 08:10:38 +09:00
kevin9327 f2fac2e8f0 fix(ext-data): CSV 编码转换保留原始换行, 避免最后一列被推断为字符串 2026-09-07 08:07:02 +09:00