guke
924e40a84e
feat(compare-alert): 固化飞书卡片 table 格式(format_alert_card + send_feishu_card),worker 切换
- feishu_notifier: 新增 send_feishu_card(interactive msg_type,复用 _post_feishu)
- compare_alert_format: 新增 format_alert_card(schema 2.0, header red, markdown摘要+table 6列)
- 列序: 时间/手机号/用时/失败原因/版本/trace(lark_md);无 width 属性
- cost 列 helper _cost_cell: total_ms→Ns / step_count→M步 / 两者用" / "连 / 都无给"-"
- 截断: 超 max_total 只出摘要; 空 hits 返回「本期无异常」卡片
- 保留 format_alert_message / format_alert_post(有测试依赖)
- compare_alert_worker: _send(post) → _send_card(card); _scan_and_alert 调 format_alert_card
- SEND_EMPTY 分支: 传空 hits 给 format_alert_card 得「本期无异常」卡片
- webhook 空降级保留; build_hits/水位逻辑不动
- tests: format/feishu/worker 测试全适配新接口,86 passed 零回归
- 删除临时脚本 scripts/_test_alert_card.py
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-05 15:37:13 +08:00
..
2026-05-23 17:37:18 +08:00
2026-08-05 10:20:49 +08:00
2026-07-21 13:53:10 +08:00
2026-08-01 02:57:45 +08:00
2026-07-22 10:53:21 +08:00
2026-07-27 16:02:40 +08:00
2026-08-04 15:44:58 +08:00
2026-07-31 17:08:06 +08:00
2026-07-27 13:33:55 +08:00
2026-08-04 16:01:24 +08:00
2026-07-31 17:08:06 +08:00
2026-07-27 16:03:31 +08:00
2026-06-14 22:54:07 +08:00
2026-07-09 17:31:24 +08:00
2026-07-09 17:31:24 +08:00
2026-06-19 08:31:31 +08:00
2026-07-27 18:00:23 +08:00
2026-07-31 11:17:30 +08:00
2026-07-10 22:14:00 +08:00
2026-08-04 19:22:44 +08:00
2026-08-05 15:27:47 +08:00
2026-08-05 15:37:13 +08:00
2026-08-04 19:20:23 +08:00
2026-08-04 19:25:44 +08:00
2026-08-05 14:52:47 +08:00
2026-08-05 15:37:13 +08:00
2026-07-31 23:11:35 +08:00
2026-08-01 23:09:21 +08:00
2026-07-04 02:39:12 +08:00
2026-07-04 02:39:12 +08:00
2026-07-22 17:18:26 +08:00
2026-08-01 23:09:21 +08:00
2026-08-01 23:09:21 +08:00
2026-07-28 17:57:52 +08:00
2026-07-27 16:13:54 +08:00
2026-07-24 11:15:09 +08:00
2026-07-23 10:35:41 +08:00
2026-08-01 23:24:54 +08:00
2026-07-31 23:11:35 +08:00
2026-07-31 23:11:35 +08:00
2026-07-24 11:15:09 +08:00
2026-06-30 21:56:58 +08:00
2026-07-23 11:57:37 +08:00
2026-06-25 17:47:30 +08:00
2026-08-01 23:25:27 +08:00
2026-06-20 02:03:33 +08:00
2026-07-27 10:35:15 +08:00
2026-07-22 15:42:25 +08:00
2026-07-28 14:04:36 +08:00
2026-07-02 19:50:14 +08:00
2026-08-05 15:37:13 +08:00
2026-07-05 09:31:53 +08:00
2026-07-29 16:12:05 +08:00
2026-05-23 17:37:18 +08:00
2026-07-21 10:43:58 +08:00
2026-07-21 13:52:40 +08:00
2026-07-27 16:03:31 +08:00
2026-06-26 21:10:21 +08:00
2026-06-26 21:10:21 +08:00
2026-07-31 17:08:06 +08:00
2026-08-01 23:25:27 +08:00
2026-07-24 11:17:09 +08:00
2026-07-05 09:31:53 +08:00
2026-07-22 15:42:25 +08:00
2026-07-22 15:42:25 +08:00
2026-07-20 18:55:38 +08:00
2026-07-04 02:39:12 +08:00
2026-08-01 21:35:06 +08:00
2026-06-07 23:17:27 +08:00
2026-06-29 09:54:13 +08:00
2026-06-17 10:37:54 +08:00
2026-07-27 15:51:19 +08:00
2026-07-30 10:41:43 +08:00
2026-07-16 09:40:56 +08:00
2026-07-31 17:08:06 +08:00
2026-07-28 09:20:57 +08:00
2026-07-31 11:17:30 +08:00
2026-07-28 09:20:57 +08:00
2026-07-31 11:17:30 +08:00
2026-07-31 17:08:06 +08:00
2026-06-16 01:25:57 +08:00
2026-07-25 17:56:23 +08:00
2026-08-05 14:29:25 +08:00
2026-07-17 21:49:10 +08:00
2026-07-17 21:49:10 +08:00
2026-07-22 10:53:21 +08:00
2026-07-09 22:03:07 +08:00
2026-07-27 16:03:31 +08:00