# 生产验证 — 设置页 Telegram 全流程修复

**日期**：2026-06-07  
**版本**：`540a7fc`  
**环境**：https://api.synaglobal.vip

## 部署

| 项 | 结果 |
|----|------|
| 门控 | 7/7 PASS |
| Push | `2e911dc..540a7fc main` |
| 生产升级 | `sudo nx upgrade` 成功 |
| 容器 | `nexus-prod-nexus-1` healthy |
| `/health` | ok |
| `/app/` | HTTP 200 |
| 前端 bundle | `SettingsPage-rMrgLXrw.js`（镜像内 vite build） |

## API 冒烟（无 JWT）

| 端点 | 期望 | 实测 |
|------|------|------|
| `POST /api/settings/telegram/test` | 401 | 401 |
| `GET /api/settings/telegram/chats` | 401 | 401 |

## 功能变更（需浏览器终验）

1. **保存 Telegram 配置** — Telegram 卡片内独立按钮
2. **检测 Chat ID** — 先 persist Token，getUpdates 前清除 Webhook
3. **发送测试消息** — 先 persist Token + Chat ID，失败时显示 Telegram API 具体错误
4. **8 项告警开关** — CPU/内存/磁盘/恢复/时钟/Redis/MySQL/重启
5. **查看 Bot Token / API Key** — 免二次密码（JWT + 审计）

## 用户终验步骤

1. 打开 https://api.synaglobal.vip/app/#/settings ，**Ctrl+Shift+R** 强制刷新
2. 填写 Bot Token → 向 Bot 发消息 → **检测 Chat ID** → 选择对话
3. **发送测试消息** → 应收 Nexus 测试推送
4. 切换任意告警开关 → 刷新页面确认状态保持

## 已知限制

- **Layer-3 cron**（`health_monitor.sh`）仍读 `NEXUS_TELEGRAM_*`（`.env.prod`），与 UI 保存的 MySQL 配置独立；应用内告警走 MySQL 热更新即可。
- 生产 DB 若尚未配置 Telegram，测试发送会提示「未配置」直至用户在设置页完成配置。

## 本地测试

```bash
.venv/bin/pytest tests/test_settings_telegram.py -q  # 6 passed
bash scripts/local_verify.sh
```
