# 服务器离线告警 — 实施说明

## 涉及文件

| 文件 | 改动 |
|------|------|
| `server/background/server_offline_monitor.py` | 新增 30s 轮询与边沿检测 |
| `server/application/server_connectivity.py` | `heartbeat_indicates_online()` |
| `server/api/websocket.py` | `broadcast_offline_alert()` |
| `server/infrastructure/telegram/__init__.py` | `send_telegram_offline_alert()` |
| `server/utils/notify_toggles.py` | `offline_alert_notify_enabled()` |
| `server/config.py` | `NOTIFY_ALERT_OFFLINE` + DB 映射 |
| `server/api/settings.py` | `MUTABLE_KEYS` |
| `server/main.py` | 注册后台任务 |
| `frontend/src/types/api.ts` | 设置开关项 |
| `tests/test_server_offline_monitor.py` | 单元测试 |

## 测试要点

- `heartbeat_indicates_online` 边界
- 边沿 online→offline 调用 broadcast；持续 offline 不重复
- 冷启动不告警

## 回滚

删除 `server_offline_monitor` 任务注册；设置键可保留无害。
