Vault Editor
Markdown 阅读 + 编辑器 · CodeMirror 6 + WebSocket + 文件监听 · 任何子服务(papers / 未来的别的)注册 path rule + link resolver 即可复用 iframe。
Vault 路径
vault_editor 是这个设置的唯一所有者。Papers 等其他子服务都从这里读,不再各自存一份。改动保存后监听器会自动重启拿到新路径。
空着 = 不启用 vault 功能(论文 .md 不镜像、知识点 vault 文件不读写、wiki-link 不可用)。设置后所有 papers / 未来子服务自动启用。
首次启动会**自动**:探测 ~/Documents/ 下已有的 Obsidian vault → 用它;都没有就建 ~/Documents/Workbench Vault/ 并落 README。
文件监听器
watchdog(macOS FSEvents)监听 vault 根目录;任何外部对 .md 文件的修改(Claude 直接写 / 你在 Obsidian 里改)会推送到所有打开的编辑器,自动同步内容。
| 状态 | 运行中 |
| 监听目录 |
/Users/zhenjiangzhao/Documents/Workbench Vault
|
| 活跃编辑会话 |
0
(每个 iframe 是一个 WebSocket session)
|
注册的路径规则
vault_editor 不知道 paper / knowledge 概念 — 上层服务(papers)在 startup 注册 prefix → split_fn + post_save_fn。注册顺序就是匹配优先级。
| Path 前缀 | Split 函数 | Post-save 回调 |
|---|---|---|
|
_default_split |
(none) |
papers/ |
split_paper_for_editor |
(none) |
knowledge/ |
split_knowledge_for_editor |
<lambda> |
活跃编辑会话 (0)
每个打开的编辑器 iframe 一个 session。WebSocket 断开(你关 tab)就消失,没有 DB 持久化。
没有活跃会话。
Bearer token
独立 token,用于 /api/vault/* 的 REST + WebSocket auth。Iframe URL 把它当 query param 携带(浏览器无法在 WS / iframe 上设 Authorization 头)。