Skip to content

forge-engine 重载后 missed-task 误报:非当日排程的周任务与已送达任务被报为「今日错过」 #45

Description

@AmberCXX

现象

engine 进程重载/重启时发送的 [错过的任务] 通知,会把两类不该报的任务报为"今日已错过":
① weekdays 限定不含当日的周任务(例:周日任务在周二被报错过)
② 当日已正常触发送达的任务

预期

missed 检测应只报"当日 weekdays 匹配、排程时刻已过、且本次未触发"的任务。

复现步骤

  1. engine.d 中存在带 weekdays 限定的任务(如 weekdays:[0] 周日 11:00)
  2. 在非该 weekday 的一天(如周二)当天较晚时刻重启/重载 engine
  3. 观察启动时的 [错过的任务] 通知

实测案例(同一签名两天三次)

  • 7/7(周二)11:01 重载 → 报"10:00 GitHub 深度筛选(weekdays:[5])、11:00 每周复盘(weekdays:[0])、11:00 纸面盘对账(weekdays:[6])今日错过"——三者实际都在各自排程日正常跑过(engine-trigger-log 有 7/3 09:59、7/5 10:59、7/4 10:59 的触发记录,需要可提供)
  • 7/8(周三)00:00 重载 → 报"22:00 健康快照刷新(weekdays:[0] 周日任务)错过",同时把当天 21:59 已触发送达的 22:00/23:00 任务也报为错过

环境

forge-hub v0.2.0 · macOS 14.6.1 · Bun 1.3.13
fh hub health:hub 正常运行 24 天,通道正常(微信侧的连续失败与本 issue 无关)

备注

hub.log / hub-stderr 中无相关行——[错过的任务] 通知经 MCP engine 通道直达 CC 会话;证据链主要在 engine-data/engine-trigger-log.md(实际触发记录)与收到的通知原文。

猜测(未读源码,仅供参考):missed 扫描在重载时可能未按当日 weekday 过滤 schedule,且未核对本日已触发记录。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions