edit | blame | history | raw

---
words:
2026-08-25: 476
tags:
- ob
- 工作流

- 原理

1. 自动记录的原理(找到了)

活动足迹**不是 Obsidian 插件**,而是你自建的常驻守护程序链:

  • 开机自启~/Library/LaunchAgents/com.ar.tagfeedwatch-login.plist → 打开 /Users/ar/Applications/TagfeedWatch.app
  • App 本体:只是个 60K 的 Mach-O 壳,内部用 /usr/bin/python3 调用真正的脚本
  • 真正的生成器/Users/ar/bin/tagfeed.py(约 1400 行,你写的"Logseq 风格标签聚合页生成器")。它的 update_diaries() 在 --watch 模式下每 3 秒轮询 vault,把最近 7 天内变动过的文件按「白板/表格/文档/笔记」分类,写进 X0.Diary/26.XXXX.md 的 <!-- daily-activity --> 标记块里——这就是你看到的「活动足迹(自动记录)」。

2. 为什么 tagfeed 页面混进来了(已修复)

过滤函数 is_generated_page() 原来有 bug:只排除「文件名以 tag- 开头 **且** 头部含 <!-- tagfeed 标记」的页面。

而 sync_0inbox.py 生成的 0inbox 页面:frontmatter 是 tags: tagfeed-live、头部**没有** <!-- tagfeed 标记、文件名也**不以 tag- 开头** → 三条都不满足,被当成普通笔记塞进了足迹。

修改:扩展 is_generated_page(),文件名不以 tag- 开头时,额外解析 frontmatter 的 tags:,只要含 tagfeed 或 tagfeed-live 就判定为系统页。这样 0inbox 全部页面(及未来任何同类实时聚合页)都不会再进足迹。

配套清理(已做)

  • 用 /usr/bin/python3 tagfeed.py --diary 重跑,按新逻辑重建最近 7 天足迹块,清掉了唯一被污染的 26.0824.md
  • 清理 ~/.tagfeed-diary-state.json 里 119 条 0inbox 残留记录(2423→2304)
  • 重启守护进程(kill 旧进程后重新 open app,新 PID 15159),让它加载补丁版脚本——这一步必须做,否则常驻内存的还是旧逻辑
  • 验证:模拟扫描 + 新过滤,0inbox 被错误收录数 = **0**

备份在 /Users/ar/bin/tagfeed.py.bak-20260825000104,确认无误后可删。