NeoMei221 downloadsSynchronize mapped vault folders with AgentWiki spaces.
AgentWiki Sync 是一个移动端兼容的 Obsidian 插件,通过可预览、可确认的同步中心,将 Vault 映射目录与 AgentWiki Space 双向同步。
插件核心、事务恢复、Obsidian 原生 UI 和公开 API 客户端已实现,同时支持 Sync v3 引用图片、Sync v2 树同步与 Legacy v1。服务端支持 v3 时自动选择 Sync v3;明确不支持时才依次尝试 v2、v1。已进入 v3 generation 的映射不会自动降级;旧服务端遇到受管图片候选会阻止同步,避免静默漏图。插件依赖已发布的 @neomei/[email protected]。仓库中的自动化兼容和故障注入测试使用公开端口与隔离 fake 服务端驱动真实同步 runtime;这些测试不等同于真实桌面或移动设备验收。
/api/sync/v3/capabilities 并校验严格能力哈希。引用图片只同步 pages/ Markdown 实际引用的 PNG、JPEG、WebP 和 GIF;未引用图片不读字节、不进入预览,也不上传或下载。main.js、manifest.json、styles.css 放入 Vault 的 .obsidian/plugins/agentwiki-sync/ 目录,然后在 Obsidian 中启用插件。同步中断后,下次打开同步中心会先恢复未完成的 Pull/Push 事务;恢复无法唯一判定时会冻结该 Space,不会静默覆盖当前文件。
同步中心可明确切换任意已映射 Space,包括待首次同步和只读 Space。只读 Space 可查看状态并以服务器内容 Pull,不提供 Push 策略。扫描、下载、合并和分批上传会显示进度并可取消;Pull 本地事务开始后和 Push finalize 开始后进入不可中断的原子阶段。
要求 Node.js 24 LTS:
npm ci
npm run check
产物为 main.js、manifest.json、styles.css。开发和测试只能使用独立测试 Vault。
.agentwiki/ 控制状态按 device/space 隔离,通过 DataAdapter 相对路径访问;基线采用不可变 generation + current pointer,不使用 Node fs 或桌面专属 API。.agentwiki/ 控制目录;不会写入映射目录外的用户文件。Blob 通过需要授权的固定 Revision API 传输,不生成公开图片 URL。自动化质量门、生产 Web/API、真实 Obsidian 桌面、Android、GitHub Release、社区市场和实际安装 bundle 是独立证据面。当前 Sync v3 的逐项记录见 docs/verification/referenced-image-sync-v3-2026-09-04.md;任一真实设备或发布渠道仍为 pending 时,不应把自动化测试称为“完整发布”或“真实双端通过”。