From ecb221fb451b8855679281eb1d3d881121962ed5 Mon Sep 17 00:00:00 2001 From: fxy Date: Sat, 20 Jun 2026 23:28:13 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E4=B8=A4=E5=A4=A7=E6=A0=B8=E5=BF=83?= =?UTF-8?q?=E6=9C=8D=E5=8A=A1=E6=97=B6=E9=97=B4=E7=AA=97=E5=8F=A3=E9=93=81?= =?UTF-8?q?=E5=BE=8B=20=E2=80=94=20cron=20=E5=88=86=E6=94=AF=E5=88=86?= =?UTF-8?q?=E6=AD=A7=E4=BF=AE=E5=A4=8D=20+=20=E9=98=85=E8=AF=BB=E6=97=A5?= =?UTF-8?q?=E6=8A=A5=2024h=20=E6=BB=9A=E5=8A=A8=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- DECISION_LOG.md | 13 +++++++++++++ daily/2026-06-20.md | 18 ++++++++++++++++++ 2 files changed, 31 insertions(+) diff --git a/DECISION_LOG.md b/DECISION_LOG.md index ffec3de..c7fac69 100644 --- a/DECISION_LOG.md +++ b/DECISION_LOG.md @@ -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 触发时间接近或重叠时。 diff --git a/daily/2026-06-20.md b/daily/2026-06-20.md index 7097449..1397a92 100644 --- a/daily/2026-06-20.md +++ b/daily/2026-06-20.md @@ -68,3 +68,21 @@ yt-dlp 下载(带 upload_date) → 排序 → 加前缀 - 生效:明日 22:00 cron **教训**:任何"每日"定时任务如果用日历日过滤,必须考虑夜间时段的归属。滚动窗口(过去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 铁律 \ No newline at end of file