From e20189d5f82b2cd436be62c0d0a715be2159aac5 Mon Sep 17 00:00:00 2001 From: gitadmin Date: Mon, 13 Jul 2026 17:20:42 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=20CLAUDE.md/CHANGELO?= =?UTF-8?q?G=20=E2=80=94=20=E8=AE=B0=E5=BD=957/13=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E7=BB=93=E5=8D=95=E6=8E=A8=E9=80=81+wechat=E7=8B=AC=E7=AB=8B?= =?UTF-8?q?=E9=A1=B5+useDirtyTracker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 13 +++++++++++++ CLAUDE.md | 3 +++ 2 files changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b2132c9..b6a27e3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # 变更日志 +## 2026-07-13 + +- [新增] 统一结单推送:从 worker 轮询 `fault_records` 上移到 API 层事件驱动(PUT [id]/batch 状态跳变触发),新增 `notifyTicketResolved` 与 `notifyTicketCreated` 并列构成完整通知层 +- [新增] 微信推送独立页面 `/settings/wechat`,与邮件监控完全解耦 +- [新增] `useDirtyTracker` 共享 Hook(`shared/ui/hooks/`),支持"修改后才显示保存按钮"模式,微信推送页每推送组独立保存、监控页统一 section 保存 +- [优化] 结单推送月度统计改为 `close_time` 归组,周报/月报按 `isRealFault` 过滤,统一排除 无故障/误判 +- [修复] 月报第四章跨月时长重复计算 bug(`isOngoing=true` 时不再计入 `ipDurationMap`) +- [修复] `audit_logs` 表缺少 `username` 列导致 7月2日至今所有审计日志静默写入失败,补全 4 处 API 路由审计日志缺失 +- [修复] `getMaskedConfig()` 直接 mutate webhook URL 导致测试发送 `••••••••` 至企业微信(93000 invalid url) +- [优化] 故障大类删除「其他」、故障小类删除「无故障」选项(3 处表单统一) +- [安全] SSRF 加固:拒绝非规范数字型 IP 写法(整数/十六进制/八进制/短式),防绕过内网黑名单 +- [重构] worker `checkRecoveryUpdates` 完全移除(78 行),副作用迁移至 `resolution-side-effects.ts` + ## 2026-07-02 - [优化] 企业微信推送消息格式全面对齐 zabbix-01 脚本(10 项修复) diff --git a/CLAUDE.md b/CLAUDE.md index 43c53ec..61cd601 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -55,6 +55,8 @@ npm run import # 导入工单 | `src/lib/monitor/mail-monitor.ts` | 邮件监控:IMAP 连接、邮件过滤、解析 | | `src/lib/monitor/ticket-processor.ts` | 邮件监控:工单创建、故障记录 | | `src/lib/monitor/wechat-pusher.ts` | 邮件监控:微信 webhook 推送 | +| `src/lib/monitor/ticket-notifier.ts` | 邮件监控:建单/结单推送(`notifyTicketCreated` + `notifyTicketResolved`) | +| `src/lib/monitor/resolution-side-effects.ts` | 邮件监控:结单副作用(回写 fault_records + 清理 reminder_state) | | `src/lib/monitor/availability-engine.ts` | 邮件监控:可用性档位计算 | | `src/lib/monitor/reminder-engine.ts` | 邮件监控:OEM 诊断/维修提醒 | | `scripts/monitor-worker.ts` | 邮件监控:Worker 独立入口脚本 | @@ -165,6 +167,7 @@ npm run import # 导入工单 | PUT | `/api/monitor/settings` | 更新配置(支持分模块保存) | | POST | `/api/monitor/test-mail` | 测试 IMAP 连接 | | POST | `/api/monitor/test-wechat` | 测试微信 webhook | +| 前端页面 | `/settings/wechat` | webhook 独立管理页(微信推送配置) | ---