Description
EN. The CLI already has sync for importing notes, but re-syncing
re-imports everything. Build a DataPlug for an Obsidian vault (Markdown +
wikilinks) or Notion export that supports incremental sync: track a
content hash / mtime per source so unchanged files are skipped, and map
[[wikilinks]] to Link edges between ContextItems. Build on the
DataPlug protocol and the existing sync path.
Tasks: implement the plug + a small state store for the sync cursor; convert
wikilinks/relations into typed Links (src/contextseek/domain/links.py);
handle deletes (soft-delete vanished sources); add integration tests over a
fixture vault.
Acceptance: a second sync of an unchanged vault performs ~no writes; edits
produce exactly the changed items; wikilinks become links.
ZH. CLI 已有 sync 用于导入笔记,但重复 sync 会全量重导。请为 Obsidian
vault(Markdown + wikilink)或 Notion 导出 做一个支持增量 sync 的 DataPlug:
为每个源记录内容 hash / mtime,跳过未变文件,并把 [[wikilink]] 映射为
ContextItem 之间的 Link 边。基于 DataPlug 协议和现有 sync 路径实现。
任务: 实现插件 + 一个保存 sync 游标的小状态存储;把 wikilink/关系转成类型化
Link(src/contextseek/domain/links.py);处理删除(对消失的源做软删除);针对
fixture vault 写集成测试。
验收: 对未变 vault 第二次 sync 几乎无写入;编辑只产出变化的条目;wikilink
变成 link。
Description
EN. The CLI already has
syncfor importing notes, but re-syncingre-imports everything. Build a DataPlug for an Obsidian vault (Markdown +
wikilinks) or Notion export that supports incremental sync: track a
content hash / mtime per source so unchanged files are skipped, and map
[[wikilinks]]toLinkedges betweenContextItems. Build on theDataPlugprotocol and the existing sync path.Tasks: implement the plug + a small state store for the sync cursor; convert
wikilinks/relations into typed
Links (src/contextseek/domain/links.py);handle deletes (soft-delete vanished sources); add integration tests over a
fixture vault.
Acceptance: a second
syncof an unchanged vault performs ~no writes; editsproduce exactly the changed items; wikilinks become links.
ZH. CLI 已有
sync用于导入笔记,但重复 sync 会全量重导。请为 Obsidianvault(Markdown + wikilink)或 Notion 导出 做一个支持增量 sync 的 DataPlug:
为每个源记录内容 hash / mtime,跳过未变文件,并把
[[wikilink]]映射为ContextItem之间的Link边。基于DataPlug协议和现有 sync 路径实现。任务: 实现插件 + 一个保存 sync 游标的小状态存储;把 wikilink/关系转成类型化
Link(src/contextseek/domain/links.py);处理删除(对消失的源做软删除);针对fixture vault 写集成测试。
验收: 对未变 vault 第二次
sync几乎无写入;编辑只产出变化的条目;wikilink变成 link。