Files
auto_control/core
butubb 16e3e162b2 fix(通知): 多设备批次不再逐台报成功;批次汇总瘦身并列出失败设备;设备只显示名字
用户反馈:一条任务覆盖 13 台设备,每台成功都推一条,群里被刷屏;批次汇总里
「任务:抖音养号」与标题重复、「样本:抖音养号」毫无信息量、「stopped」还是英文。

- task_manager:
  · **多设备批次不发 `task.device.success`**(批次汇总里已有成功台数;单台任务照发);
    失败仍逐台发——那是少数,且要知道是哪台;
  · `_BatchTracker` 收集失败设备(`名字(型号):原因`,最多 5 条)并加进批次汇总;
  · 设备级事件带 `model`:型号取自**设备池快照**(批次开始时一次查好带下去),
    不是 worker 每次连接现采的(那次 `d.info()` 可能超时 → 空),也不查库;
- notifier:
  · 聚合窗口口径修正:事件声明 `agg_window=0`(批次结束/服务启停/备份恢复等低频
    高危事件)**不再被 hook 的窗口拖住**——原先事件级设置完全失效;
  · 「样本」行只在真的合并了多条(>1)时出现,且按**设备**维度写(合并多台时写
    任务名每条都一样);与标题重复的字段行(「任务:x」)不再重复渲染;
  · 设备名与地址同时存在时**只显示名字**(IP 是给日志看的);
  · 补 `stopped`/`failed_devices` 中文标签(原先直接显示英文 key);
- notify_events:批次事件补 `skipped`/`failed_devices` 字段,设备事件补 `model`。

实测(dev 真机 + 假接收端):
  批次 2 台 → 只收到 batch.started/finished,无 device.success,汇总 总数2/成功1/跳过1;
  单台任务 → 收到 device.success,显示「设备:cs1 / 型号:M2010J19SC」不含 IP。
文档:doc/NOTIFY.md §3(多设备批次怎么发 + 批次消息样例)、§6(窗口口径与注意事项)。
2026-09-16 09:47:25 +08:00
..