Skip to content

Vault query and index

State: open/building · Kind: subsystem · Audience: system

  • The query plane is packages/ts/obsidian-bases over packages/ts/obsidian-vault’s scan index: composable filters, formulas, and named views in the ergonomic shape of Obsidian Bases, without claiming compatibility with that proprietary format.
  • The notes experience (solutions/determined/experiences/notes) is its consumer.
  • .base files are a supported input where practical; the query engine is our own.

Search, graph, stats, agenda, and digest features each independently walked and parsed the vault until fsindex amortized it for the determined suite. The query plane is obsidian-bases, which runs boolean filter composition over frontmatter and file properties, computed formulas, summaries, and named views against the scan index in obsidian-vault. Obsidian Bases supplies the ergonomic reference; the engine, grammar, and index are independent. vault-graph’s TS selector DSL and the determined-index walk are separate paths that have not moved onto it.

  • Incremental index: frontmatter values, link graph, structural facts (sections, anchors, tags), watched and invalidated on file change.
  • Query API: filters (boolean composition, property predicates, hasTag/hasLink/ inFolder-class helpers), formulas, sorting, named views.
  • Best-effort .base file reading mapped onto the native query model.
  • CLI verbs (packages/ts/obsidian-bases/src/cli.ts). The plane is TypeScript; no Rust query surface or WASM binding exists for it (C-X2PB-wasm-ts-surface).

Two TypeScript packages, packages/ts/obsidian-bases (query engine) and packages/ts/obsidian-vault (scan index); extended by M-N2HG-query-and-index-plane. solutions/determined/crates/determined-notes/src/fsindex.rs is a separate, private incremental cache used only inside determined-notes. Other inputs: vault-graph selector DSL (TS migration source), determined-notes::event (recurrence/agenda queries as the hardest existing consumer), Obsidian Bases syntax as ergonomic prior art.

  • packages/ts/obsidian-bases/src/
  • packages/ts/obsidian-bases/src/cli.ts
  • solutions/determined/crates/determined-notes/src/fsindex.rs
  • packages/ts/obsidian-vault/src/

← Back to Capabilities