背景
当前 EchoLog 在系统休眠期间可以停止屏幕识别,但已经处于 running 的任务记录仍会继续保持运行状态。这样会导致任务计时和进度条把电脑休眠的时间也算进去,唤醒后需要手动修正。
这和“无操作时跳过截图识别”不是同一件事:这里需要监听 macOS 的真实系统休眠/唤醒事件。
需求
新增“系统休眠时自动暂停运行中任务”的可选能力:
- 检测系统进入 sleep、唤醒(wake)以及必要时的锁屏/显示器休眠边界。
- 进入系统休眠时,自动暂停当时处于
running 的 EchoLog 任务。
- 为自动暂停记录原因,例如
system_sleep,让历史和 UI 能区分手动暂停。
- 唤醒后默认保持 paused,避免用户不知情地自动恢复任务;如有需要,再提供显式的“唤醒后自动恢复”设置。
- 不要恢复原本就已经手动暂停的任务。
- 多个任务同时运行时,行为要一致、幂等,不能重复暂停或产生重复时间段。
- daemon 在休眠期间退出或重启时,唤醒后也应能通过系统事件/时间线恢复正确状态。
验收标准
- 一个任务运行中,电脑休眠约 2 小时后唤醒,任务时长不包含这 2 小时。
- 自动暂停记录可在任务历史中查看,并带有明确原因。
- 唤醒后任务不会默认自动继续计时,除非用户开启对应设置。
- 多个运行中任务、重复 sleep/wake 事件、daemon 重启场景都有回归测试。
- 现有手动 start/pause/resume/stop 行为不受影响。
实现方向
可以考虑增加系统 sleep/wake 事件适配层,将事件转成 EchoLog 内部事件,再由任务服务统一执行批量 pause;同时持久化 pause reason/来源,避免仅依赖内存状态。
这个需求来自实际使用场景:截图识别在休眠期间没有观测,但任务进度条仍可能保持 running。
背景
当前 EchoLog 在系统休眠期间可以停止屏幕识别,但已经处于
running的任务记录仍会继续保持运行状态。这样会导致任务计时和进度条把电脑休眠的时间也算进去,唤醒后需要手动修正。这和“无操作时跳过截图识别”不是同一件事:这里需要监听 macOS 的真实系统休眠/唤醒事件。
需求
新增“系统休眠时自动暂停运行中任务”的可选能力:
running的 EchoLog 任务。system_sleep,让历史和 UI 能区分手动暂停。验收标准
实现方向
可以考虑增加系统 sleep/wake 事件适配层,将事件转成 EchoLog 内部事件,再由任务服务统一执行批量 pause;同时持久化 pause reason/来源,避免仅依赖内存状态。
这个需求来自实际使用场景:截图识别在休眠期间没有观测,但任务进度条仍可能保持 running。