540a7fce05
检测与测试前自动持久化 Token/Chat ID;getUpdates 清除 Webhook 并返回具体 API 错误;恢复 NOTIFY 分项开关与免密 reveal。
1.5 KiB
1.5 KiB
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_ITEMSserver/api/settings.py— Webhook 清除、Telegram 错误详情、reveal 免密tests/test_settings_telegram.py— 新增docs/audit/2026-06-07-settings-telegram-fix.md
迁移 / 重启
- 无 DB 迁移
- 需重新构建前端并重启 API(或全量部署)
验证
.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 热更新即可。