Skip to content

v2.4.0 — PageIndex tree indexing + preserved originals

Choose a tag to compare

@psypeal psypeal released this 07 May 16:48
· 9 commits to main since this release

Highlights

  • Preserved originals — every ingested PDF (and EPUB / HTML clip) is now kept under .vault/originals/<slug>.<ext>, renamed to a bibliographic slug for long-term audit and re-reading.
  • Bibliographic slugs: papers → <first-author>-<year>-<keyword> (e.g. vaswani-2017-attention); reports / manuals / filings / guidelines → <org-abbrev>-<year>-<keyword> (e.g. who-2023-tuberculosis); other types keep title-based slugs from v2.3. Disambiguation suffixes -2, -3 are added automatically.
  • PageIndex tree indexing — vendored VectifyAI/PageIndex (MIT) routes through Claude Sonnet 4.6 via LiteLLM. Every PDF gets a hierarchical "table of contents" tree at raw/<slug>.tree.json, and the markdown body becomes a tree-derived outline.
  • 4-tier query routing/knowledge-vault:query now cascades: index.mdwiki/concepts + wiki/summariestree.json reasoning → page-range pdftotext extraction from the original. Compiled knowledge handles the easy 80%; trees route the hard 20% straight to the relevant pages instead of dumping the whole document into context.
  • v2.3 → v2.4 backfill/knowledge-vault:cleanup now offers an opt-in, idempotent backfill that recovers PDFs for legacy items via Zotero MCP, Unpaywall/Sci-Hub, or direct URL — preserving the existing slug so wikilinks don't break.
  • Lint picked up two new checks (originals integrity + tree integrity) — 10 checks total.

Setup

PageIndex is bundled but opt-in. To enable:

/knowledge-vault:setup-sources

Select PageIndex. The command runs pip3 install -r vendor/PageIndex/requirements.txt, verifies ANTHROPIC_API_KEY, writes a .env for the runner, and smoke-tests it.

If PageIndex isn't set up, the plugin works exactly as in v2.3 (flat condense). If a tree build fails on a particular PDF, that item silently falls back to flat condense — has_tree: false records this so a future retry can rebuild.

Migration

Existing v2.3 vaults work unchanged. To opportunistically backfill old items:

/knowledge-vault:cleanup

It scans the manifest, categorizes recoverable items (Zotero / DOI / direct URL), and walks through them with your approval. The body is left alone — only originals/ and tree.json are filled in.

Credits

VectifyAI/PageIndex — vectorless reasoning-based RAG, vendored under plugins/knowledge-vault/vendor/PageIndex/ (pinned commit dcda565).