# 审计 — 资源恢复 Telegram 联动分项开关 + 仪表盘去列表

**Changelog**:
- `docs/changelog/2026-06-08-notify-recovery-respects-resource-toggle.md`
- `docs/changelog/2026-06-08-dashboard-remove-server-list.md`

## 变更文件

`server/utils/notify_toggles.py` · `server/infrastructure/telegram/__init__.py` · `tests/test_notify_toggle_sync.py` · `frontend/src/types/api.ts` · `frontend/src/pages/DashboardPage.vue` · `web/app/index.html`

## Step 3

| 项 | 结论 |
|----|------|
| 恢复 Telegram 需 NOTIFY_RECOVERY + 分项 notify_alert_* | PASS（`resource_recovery_notify_enabled`） |
| CPU/内存/磁盘告警关闭后恢复不推 | PASS（parametrize 单测 3 指标） |
| Redis/MySQL 恢复共用 notify_system_* | PASS（已有 `send_telegram_system_alert` 门控 + 单测） |
| WebSocket / alert_logs 仍记录恢复 | PASS（仅 Telegram 门控） |
| 设置页文案说明联动 | PASS（api.ts NOTIFY_TOGGLE_ITEMS） |
| 仪表盘移除服务器列表表格 | PASS（保留统计卡片与告警区） |
| 无静默吞错 | PASS |

## Closure

pytest notify 34/34 · frontend build PASS · Gate 7 待跑

## DoD

- [x] 关 CPU 告警 → 无 CPU 超阈值 & 无 CPU 恢复 Telegram
- [x] 内存/磁盘同理
- [x] 仪表盘无服务器列表区块
- [x] changelog ×2
- [ ] 生产 /health + 浏览器验收
