docs: 两大核心服务时间窗口铁律 — cron 分支分歧修复 + 阅读日报 24h 滚动窗口
This commit is contained in:
@ -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 触发时间接近或重叠时。
|
||||
|
||||
Reference in New Issue
Block a user