# 2026-06-13 子机离线告警独立 Telegram 通道

## 摘要

设置页「告警通知项目」下新增可选的离线专用 Bot：子机离线告警可发往另一 Telegram 机器人/群组，其它告警仍走默认 Bot。

## 动机

离线告警量大或受众不同，需与 CPU/内存等资源告警分流，避免主告警群被淹没。

## 变更

- 新 settings：`telegram_offline_bot_token`、`telegram_offline_chat_id`（二者均配置时离线告警专用；否则回退默认 Bot）。
- `resolve_offline_telegram_credentials()` + `send_telegram_offline_alert` 路由。
- API：`POST /settings/telegram/offline/test`、`GET /settings/telegram/offline/chats`、`POST /settings/telegram/offline/reveal-token`。
- 设置页：「子机离线告警专用 Bot（可选）」配置区。

## 涉及文件

- `server/config.py`
- `server/infrastructure/telegram/__init__.py`
- `server/api/settings.py`
- `frontend/src/pages/SettingsPage.vue`
- `frontend/src/types/api.ts`
- `tests/test_telegram_offline_channel.py`

## 迁移 / 重启

- 后端：拉取后 `supervisorctl restart nexus`（新 API 端点）。
- 前端：重新 `vite build` 部署 `web/app/`。
- 无 DB 迁移；首次保存写入 `settings` 表。

## 验证

1. 设置页配置离线专用 Token + Chat ID →「测试离线通道」收到消息。
2. 仅配置默认 Bot、不填离线专用 → 子机离线仍走默认群。
3. `pytest tests/test_telegram_offline_channel.py` 通过。
