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 的角色不应该是给老板写报告,而是陪用户思考。日报格式更符合私人知识库定位。 **原因**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 触发时间接近或重叠时。

View File

@ -68,3 +68,21 @@ yt-dlp 下载(带 upload_date) → 排序 → 加前缀
- 生效:明日 22:00 cron - 生效:明日 22:00 cron
**教训**:任何"每日"定时任务如果用日历日过滤必须考虑夜间时段的归属。滚动窗口过去N小时比日历日更鲁棒。 **教训**:任何"每日"定时任务如果用日历日过滤必须考虑夜间时段的归属。滚动窗口过去N小时比日历日更鲁棒。
## 23:25 🔴 两大核心服务时间窗口铁律固化
### 日报 cron 分支分歧修复
- 根因:两条线推同一个 inspiration-collector 仓库撞车WorkBuddy推文章 vs cron推日报
- 修复:`run_daily_digest.sh` 增加 `git pull --rebase` before push
- 以前没出过是因为以前推文顺序在日报之后
### 阅读日报 24h 滚动窗口修复
- 问题:`daily_report_ai.py``load_today_data()` 严格按日历日过滤,晚间阅读漏入次日间隙
- 修复:改为 `since_dt = now - timedelta(hours=24)` 时间戳比较
- 经验:任何"每日"定时任务,滚动窗口比日历日更鲁棒
### 三层文档已同步
- 项目级weread-notes Gitea (commit 2508746)
- 宏观server-ops DECISION_LOG + daily
- 本地Claw MEMORY.md 铁律