# Changelog — 设置页 Telegram 全流程修复 + 告警开关恢复

**日期**：2026-06-07

## 摘要

修复设置页 Telegram 推送相关功能：检测/测试前自动持久化配置、独立保存按钮、getUpdates Webhook 冲突处理、测试 API 返回 Telegram 具体错误；恢复 Vue 迁移遗漏的 8 项告警通知开关；API Key / Bot Token 查看免二次密码（JWT + 审计仍保留）。

## 动机

用户反馈「检测 Chat ID / 发送测试 / 多项功能无法正常使用」：测试按钮不保存草稿配置、告警分项开关在 SPA 中缺失、getUpdates 在 Bot 曾设 Webhook 时恒为空、错误提示过于笼统。

## 涉及文件

- `frontend/src/pages/SettingsPage.vue` — `persistTelegramConfig`、保存按钮、8 项 NOTIFY 开关
- `frontend/src/types/api.ts` — `NOTIFY_TOGGLE_ITEMS`
- `server/api/settings.py` — Webhook 清除、Telegram 错误详情、reveal 免密
- `tests/test_settings_telegram.py` — 新增
- `docs/audit/2026-06-07-settings-telegram-fix.md`

## 迁移 / 重启

- 无 DB 迁移
- 需重新构建前端并重启 API（或全量部署）

## 验证

```bash
.venv/bin/pytest tests/test_settings_telegram.py -q
bash scripts/local_verify.sh
bash deploy/pre_deploy_check.sh
# 设置页：填 Token → 检测 Chat ID → 测试发送 → 切换告警开关
```

## 说明

Layer-3 cron（`health_monitor.sh`）仍读 `NEXUS_TELEGRAM_*`（`.env.prod`），与 UI 保存的 MySQL 配置独立；应用内告警走 MySQL 热更新即可。
