浅念
a9197f696a
fix(sync): 同步链路审计修复——水位边界白拉/全量无超时/群活跃窗判定源
全项目数据同步审计发现四漏洞(前项为证据):
① 消息增量边界白拉(证据:昨夜 wa-messages fetched=53,682 而真实新消息
仅 321 条,99.4% 是白拉白写的已入库旧消息)——云客 chatRecords/msg-chats
的 start 参数是 inclusive(返回 ts>=start 含边界),四个消息实体(微信
1:1/WA 1:1/微信群/WA 群)统一在归一化后过滤 ts<=watermark 的边界行,
不计数不写库(省 99% 写放大,计数从此反映真实新增)
② full_sync_all.sh 无超时——极端情况(常态 10-20h)拖进次日相位把 02:00
全量又挤掉(前两天事故同型);加 22h 上限
③ 周日 full-history 无超时——4 实体全历史可能 24h+,必挤周一;单实体
加 6h 上限
④ 群消息活跃窗判定源是昨晚 full 的 chat_group.last_chat_time 快照——
「昨天安静、今天突然活跃」的群会被 24h 窗口漏到明晚;4h 序列在
group-messages 前加 chatroom-stats 全窗(~1min)刷新群活跃判定源
722 测试绿(4h 序列断言 9→10 命令+chatroom-stats 位序)。
Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-10 11:08:15 +08:00
..
2026-08-10 18:12:28 +08:00
2026-08-01 11:04:44 +08:00
2026-09-09 12:04:54 +08:00
2026-09-07 14:41:08 +08:00
2026-09-04 19:22:22 +08:00
2026-09-04 15:04:33 +08:00
2026-09-07 14:41:08 +08:00
2026-08-01 14:30:28 +08:00
2026-08-20 11:08:13 +08:00
2026-08-15 14:18:42 +08:00
2026-09-09 14:08:44 +08:00
2026-09-08 16:14:44 +08:00
2026-09-09 18:09:20 +08:00
2026-09-03 15:03:20 +08:00
2026-08-12 10:37:13 +08:00
2026-09-07 16:59:04 +08:00
2026-08-25 16:22:44 +08:00
2026-08-25 15:44:54 +08:00
2026-08-21 15:08:26 +08:00
2026-09-09 11:44:58 +08:00
2026-08-05 10:12:49 +08:00
2026-08-07 18:37:26 +08:00
2026-09-09 13:45:42 +08:00
2026-09-03 16:37:36 +08:00
2026-08-01 16:15:40 +08:00
2026-08-12 11:41:30 +08:00
2026-09-03 18:11:26 +08:00
2026-08-12 10:41:46 +08:00
2026-08-01 11:04:44 +08:00
2026-08-21 15:08:26 +08:00
2026-09-09 14:44:35 +08:00
2026-09-09 13:18:08 +08:00
2026-09-04 16:40:01 +08:00
2026-09-09 13:37:22 +08:00
2026-09-09 18:06:08 +08:00
2026-09-10 09:49:59 +08:00
2026-09-09 13:18:08 +08:00
2026-09-09 17:42:57 +08:00
2026-09-09 19:28:48 +08:00
2026-08-01 14:13:50 +08:00
2026-08-13 14:02:42 +08:00
2026-08-25 13:44:54 +08:00
2026-08-01 11:55:50 +08:00
2026-08-07 09:57:34 +08:00
2026-08-01 15:48:03 +08:00
2026-08-07 16:30:29 +08:00
2026-09-08 17:17:06 +08:00
2026-09-04 21:02:41 +08:00
2026-09-03 17:52:09 +08:00
2026-08-01 11:31:28 +08:00
2026-08-01 15:59:25 +08:00
2026-08-01 13:46:23 +08:00
2026-08-20 09:09:32 +08:00
2026-08-25 14:07:39 +08:00
2026-08-25 15:17:21 +08:00
2026-08-18 09:15:04 +08:00
2026-08-10 18:12:28 +08:00
2026-08-20 10:54:09 +08:00
2026-08-07 09:49:31 +08:00
2026-08-01 17:11:17 +08:00
2026-08-05 18:44:04 +08:00
2026-08-25 14:32:12 +08:00
2026-08-01 14:03:47 +08:00
2026-08-01 13:37:42 +08:00
2026-08-01 13:54:16 +08:00
2026-08-07 09:49:31 +08:00
2026-08-01 15:48:03 +08:00
2026-08-01 17:53:26 +08:00
2026-08-11 16:04:03 +08:00
2026-08-01 15:48:03 +08:00
2026-09-04 23:27:41 +08:00
2026-08-01 12:16:02 +08:00
2026-09-07 14:13:09 +08:00
2026-09-07 14:13:09 +08:00
2026-08-07 16:51:10 +08:00
2026-08-05 12:11:29 +08:00
2026-09-10 11:08:15 +08:00
2026-08-01 14:23:45 +08:00
2026-08-12 10:41:46 +08:00
2026-08-01 16:52:48 +08:00