25 lines
1.5 KiB
Markdown
25 lines
1.5 KiB
Markdown
# Phase 3 逐行走读修复
|
||
|
||
**日期**: 2026-05-23
|
||
**批次**: 3a(安全核心)、3b(background)、3c(基础设施)、3d(main/middleware)
|
||
|
||
## 修复清单
|
||
|
||
| ID | 文件 | 级 | 说明 | 修复 |
|
||
|----|------|----|------|------|
|
||
| F3a-01 | `agent.py:97-102` | P2 | `float(cpu/mem/disk)` 对非数字 Agent 数据 → ValueError/500 | 提取 `_safe_float()` 包裹转换,非数字值 WARNING 级跳过 |
|
||
| F3b-01 | `schedule_runner.py:84` | P1 | `now`(tz-aware)- `last_run_at`(MySQL naive)→ TypeError → 已跑调度永远失败 | 统一去除 tzinfo 后再减 |
|
||
| F3b-02 | `schedule_runner.py:47` | P3 | cron `*/0` → ZeroDivisionError | step==0 时返回 False 跳过 |
|
||
| F3c-01 | `redis/client.py:49` | P2 | Redis URL 含 auth 时密码写入日志 | 启动日志脱敏(`user:**@host`) |
|
||
| F3d-01 | `main.py:116-118` | P2 | primary lock 丢失时续锁退出,后台任务继续双跑 | lock 丢失时 cancel 所有后台任务 |
|
||
| F3d-02 | `main.py:344` | P2 | CORS origins 不去除空格 | `o.strip()` 过滤 |
|
||
|
||
## 审查结论
|
||
|
||
| 批次 | 覆盖 | 结论 |
|
||
|------|------|------|
|
||
| 3a | auth_jwt.py、webssh.py、crypto.py、agent.py、dependencies.py | 1 BUG 修复;安全核心均正确 |
|
||
| 3b | heartbeat_flush、retry_runner、schedule_runner、self_monitor | 2 BUG 修复;整体逻辑正确 |
|
||
| 3c | engine_compat.py、session.py、redis/client.py | 1 日志脱敏;新增文件无安全问题 |
|
||
| 3d | main.py | 2 BUG 修复;中间件注册顺序正确 |
|