docs: 两大核心服务时间窗口铁律 — cron 分支分歧修复 + 阅读日报 24h 滚动窗口

This commit is contained in:
fxy
2026-06-20 23:28:13 +08:00
parent 61cc47016b
commit ecb221fb45
2 changed files with 31 additions and 0 deletions

View File

@ -131,3 +131,16 @@
**决策**:周报从工作报告风格改为私人思考伙伴风格。
**原因**AI 的角色不应该是给老板写报告,而是陪用户思考。日报格式更符合私人知识库定位。
### O-2026-06-20: 定时任务时间窗口统一为滚动窗口
**决策**:所有"每日"定时任务的数据过滤从日历日字符串匹配改为滚动时间窗口过去N小时
**原因**:阅读日报使用 `date_str = datetime.now().strftime("%Y-%m-%d")` 严格按日历日过滤。22:00 cron 触发时抓取 `2026-06-20` 的数据,但用户 23:00 的晚间阅读标记为 `2026-06-20`,次日 22:00 的报告只认 `2026-06-21`,这条数据漏入日历间隙。
**实施**
- 灵感日报:`list_memos(days=1)` → 本就是 24h 滚动窗口,无需修改
- 阅读日报:`load_today_data()` → 从日期字符串匹配改为 `since_dt = now - timedelta(hours=24)` 时间戳比较
- `parse_time_from_line()` → 从只截取日期改为捕获完整 datetime 对象
**教训**:任何"每日"定时任务如果用日历日过滤必须考虑夜间时段的归属。滚动窗口过去N小时比日历日更鲁棒。尤其是用户活跃时段与 cron 触发时间接近或重叠时。