32a1885f0d
支持随时暂停/恢复实时监测并保留槽位;TTL 到期自动暂停不占删槽;修复到期竞态导致空槽与唯一约束冲突;探针 parse_error 与中文错误;移除失败 snackbar。
101 lines
3.4 KiB
Markdown
101 lines
3.4 KiB
Markdown
# 巡检 — 监测槽开关 / 8h·24h / 暂停占槽 / 探针修复
|
||
|
||
**日期**:2026-06-12
|
||
**范围**:工作区未提交改动(监测槽增强 + parse_error 修复 + 中文错误)
|
||
**生产**:https://api.synaglobal.vip(**尚未部署本批改动**)
|
||
|
||
## 进度条
|
||
|
||
| 步骤 | 状态 |
|
||
|------|------|
|
||
| 实现 | ✅ 工作区完成 |
|
||
| 本地验证 | ✅ L2b 26/26 + ruff |
|
||
| 单测 | ✅ watch 23/23 |
|
||
| 类型检查 | ✅ vue-tsc |
|
||
| 门控 7/7 | ⚠️ 6/7(Gate 7 被 **Agent 提示** 并行改动阻塞,非 watch 本身) |
|
||
| 部署 | ❌ 未执行 |
|
||
| 生产健康 | ✅ `/health` → `ok` |
|
||
| 浏览器终验 | ❌ 待部署后 |
|
||
|
||
## 本地验证
|
||
|
||
### 单测
|
||
|
||
```text
|
||
pytest tests/test_watch_*.py tests/test_watch_probe_errors.py
|
||
→ 23 passed
|
||
```
|
||
|
||
### L2b API E2E(local_verify.sh)
|
||
|
||
```text
|
||
26/26 passed
|
||
ruff F: All checks passed
|
||
═══ All local checks passed ═══
|
||
```
|
||
|
||
### 前端
|
||
|
||
```text
|
||
npm run type-check → PASS
|
||
```
|
||
|
||
### 门控 pre_deploy_check.sh
|
||
|
||
| Gate | 结果 |
|
||
|------|------|
|
||
| 1 Changelog | PASS(2026-06-12-server-agent-action-hint.md) |
|
||
| 2 Audit | PASS(2026-06-12-files-watch-ui-fixes.md) |
|
||
| 3 Test | PASS |
|
||
| 4 Lint | PASS |
|
||
| 5 Import | PASS |
|
||
| 6 Security | PASS |
|
||
| 7 Review | **BLOCK** — 以下文件有 diff 但未列入当日 audit |
|
||
|
||
Gate 7 阻塞文件(**Agent 版本提示**,与监测槽无关):
|
||
|
||
- `frontend/src/components/servers/ServerAgentHint.vue`
|
||
- `frontend/src/components/servers/ServerInlineDetail.vue`
|
||
- `frontend/src/composables/servers/useServerFormDialog.ts`
|
||
- `frontend/src/types/api.ts`
|
||
- `server/api/servers.py`
|
||
- `server/utils/agent_version.py`
|
||
- `tests/test_agent_version.py`
|
||
|
||
监测槽改动已有独立审计:`docs/audit/2026-06-11-watch-slot-monitoring-enhancements.md`。
|
||
|
||
## 生产探针
|
||
|
||
| 检查 | 结果 |
|
||
|------|------|
|
||
| `GET /health` | 200 `ok` |
|
||
| `GET /app/` | 200 |
|
||
| `GET /api/watch/pins`(无 JWT) | 401(预期) |
|
||
| `PATCH /api/watch/pins/0/monitoring`(无 JWT) | 401(端点存在性需部署后带 JWT 终验) |
|
||
|
||
**说明**:生产当前运行的是已部署版本;监测槽开关 / TTL PATCH / 中文错误 / parse_error 修复均在工作区,**线上行为未变**。
|
||
|
||
## 功能验收清单(部署后浏览器终验)
|
||
|
||
1. **开关暂停**:关实时监测 → 5s 探针停止,槽位仍占用,UI 显示暂停态
|
||
2. **重新开启**:开开关 → 若 session 已结束则自动开新 session,探针恢复
|
||
3. **8h / 24h**:默认 8h;点 24h 后 `expires_at` 延长;replace 槽位保留原 TTL
|
||
4. **TTL 到期**:自动暂停(不删 pin),Agent 恢复 60s 智能心跳
|
||
5. **parse_error**:Agent 有 CPU/内存时 SSH 失败不应整轮 parse_error
|
||
6. **中文错误**:探针失败状态与错误列显示中文
|
||
|
||
## 部署前待办
|
||
|
||
1. **Gate 7**:为 Agent 提示改动补 audit,或与监测槽分两次提交/部署
|
||
2. **迁移**:`watch_pins.monitoring_enabled` + `ttl_hours`(migrations.py 已含)
|
||
3. **部署**:用户批准后 `bash deploy/deploy-production.sh`
|
||
4. **前端构建**:Docker 内 vite build 或 `deploy/deploy-frontend.sh`
|
||
|
||
## 本次巡检修复
|
||
|
||
- 删除 `server/infrastructure/ssh/remote_probe.py` 未使用的 `import logging`(local_verify ruff F401)
|
||
|
||
## 结论
|
||
|
||
**代码质量就绪**(单测 + L2b + lint + 类型检查均通过)。**部署被 Gate 7 阻塞**(并行 Agent 提示改动缺 audit)。监测槽功能本身审计完备,建议与 Agent 提示改动解耦提交,或补全 audit 后一并部署。
|