# 2026-06-08 — 资源恢复 Telegram 联动资源告警开关

## 摘要

关闭「CPU/内存/磁盘」单项告警开关后，对应指标的「资源恢复」Telegram 也不再推送。

## 动机

用户关闭 CPU 告警后仍收到「🟢 【资源恢复】CPU 已回落至正常范围」；恢复此前仅检查 `notify_recovery` 总开关，未检查 `notify_alert_cpu` 等分项。

## 变更

- `server/utils/notify_toggles.py` — 新增 `recovery_notify_enabled()`、`resource_recovery_notify_enabled(metric)`（总开关 + CPU/内存/磁盘分项）
- `server/infrastructure/telegram/__init__.py` — `send_telegram_recovery` 使用联动检查
- `frontend/src/types/api.ts` — 设置页 CPU/内存/磁盘/恢复开关说明文案
- `tests/test_notify_toggle_sync.py` — CPU/内存/磁盘告警与恢复、Redis/MySQL 恢复联动单测

## 逻辑

资源类（CPU / 内存 / 磁盘）：

| notify_recovery | notify_alert_* | 对应恢复 Telegram |
|-----------------|----------------|-------------------|
| off | * | 不发送 |
| on | off | 不发送 |
| on | on | 发送 |

系统类（Redis / MySQL）：告警与恢复共用同一 `notify_system_*` 开关（`send_telegram_system_alert` 已统一检查）。

## 涉及文件

见上。

## 迁移 / 重启

无 DB 变更；后端部署/重启生效。

## 验证

```bash
pytest tests/test_notify_toggle_sync.py -q
```

关闭 CPU 告警开关 → 不应再收到 CPU 恢复 Telegram。
