v2.4.0 — PageIndex tree indexing + preserved originals
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,-3are 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:querynow cascades:index.md→wiki/concepts + wiki/summaries→tree.jsonreasoning → page-rangepdftotextextraction 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:cleanupnow 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).