myopenclaw v0.2.3¶
补丁版本(2026-11-09):道元新增论文清单每日对账 —— 已入库 Zotero 的请求自动撤销, 清单不再堆积已完成的条目。不改 dailyinfo,不改队列 schema/MCP 工具。
本版变更¶
论文清单每日自动清理(道元)¶
- 新增 no-agent cron
paper-queue-sync:每日 07:20(北京) 取清单活跃行 → 按标题在 Zotero 里查询 → 命中即调paper_queue_cancel撤销 (撤销 ≠ 删除:行保留、可重新入队) - 匹配判据(保守):归一化后完全相等,或较短者是较长者的前缀且覆盖 ≥ 90%;
只认学术条目类型(排除
webpage/note/attachment等),Erratum:/Reply to:这类前后缀条目不会误清原论文 - arXiv 行额外用 arXiv 号查询(
arXiv.<id>.pdf附件 → 解析父条目再比标题), 自动归一化arXiv:前缀与v2版本号 - fail-closed:清单/搜索任一失败 → 本次不撤销任何条目、exit 1, Hermes 把 watchdog 告警投到道元私聊;清单响应被截断也直接失败,不静默漏清
- 无命中 → stdout 为空 → 完全静默;有清理 → 一条消息列出题目 + Zotero item key
--dry-run:只打印将清理项,不撤销(首次上线人眼核对用)start.sh抽出install_hermes_profile_script/ensure_daoyuan_script_cron, 与dailyinfo-digest共用安装/注册/漂移修正逻辑(dailyinfo 行为不变)- 停用:清空
.env的PAPER_QUEUE_MCP_URL后跑start.sh,会移除既有 job; 临时关闭也可hermes -p daoyuan cron remove paper-queue-sync
文档 / skill¶
docs/paper-queue.md新增「每日自动清理」章节(判据 / 边界 / 验证 / 关闭)docs/scheduling.md增加 07:20 条目与检查清单skills/paper-queue/SKILL.md提示道元:条目可能已被自动清理,不要声称是它下载/入库的CLAUDE.md/README.md同步
升级注意¶
- 无新增环境变量:沿用
PAPER_QUEUE_MCP_URL/PAPER_QUEUE_DAOYUAN_TOKEN; Zotero 地址仍是容器内http://zotero-mcp:8002/mcp - 重跑
./scripts/start.sh即安装脚本并注册paper-queue-sync(幂等,漂移会自动修正) - 建议先手工 dry-run 核对命中项:
验收¶
pytest tests/:1086 passedmkdocs build --strict:通过- 真机:dry-run 命中 22 篇(随后批量入库再命中 9 篇);两次真实运行共撤销
31 条,清单活跃行 36 → 5;飞书私聊收到汇总,执行台账
delivery_outcome=delivered - 幂等复跑:再次 dry-run 空输出(无命中);
start.sh二次运行显示 「已存在且配置一致」
已知边界¶
- 只按标题匹配:当前
zotero_search(Zotero quick search,titleCreatorYear) 搜不到 DOI;用户复述/翻译过的标题不会命中(宁可漏清、次日重试) - 只处理 Owen 自己的行(token 绑定);历史 zhao 行不动
cancelled_by不区分人工撤销与自动清理;审计线索 = 每日清理消息(含 Zotero key)hermes -p daoyuan cron runs paper-queue-sync- 活跃行超过服务端单次响应上限(按当前行宽估算约 169 条)时任务会响亮失败
(
truncated→ exit 1),而不是静默只清理一部分;分页留作后续工作