Skip to content

Changelog

All notable changes to pi-vault-mind are documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased] - 2026-06-10

Added — HTTP bridge for Obsidian shellcommands integration

  • Lightweight HTTP server (src/server.ts): health/scan/dispatch endpoints on http://127.0.0.1:11435 (configurable via wiki.httpPort). Starts automatically when the vault-mind extension loads.
  • GET /vault-mind/status — running state, vaults, uptime, dispatch records
  • POST /vault-mind/scan — explicit file scan for @agent markers
  • POST /vault-mind/dispatch — reserved for future manual dispatch
  • /wiki server status command — show port, uptime, and available endpoints
  • Shellcommands bridge docs — step-by-step config walkthrough in docs/OBSIDIAN_SETUP.md with platform-specific curl commands. obsidian-shellcommands plugin bumped from Optional to Recommended.

Changed

  • Default embedding model: nomic-embed-textembeddinggemma (Google's 300M parameter, 768-dim embedding model). Updated across all 16 source, docs, skills, and test files.
  • Docs site audit: competitive analysis (COMPETITOR_COMPARISON.md), naming decisions, and reviewed links CSV excluded from the published GH Pages site. These remain in the repo for internal reference.
  • Tooling: Replaced ESLint + Prettier with Biome (matching pi-extension-toolkit pattern). Added CI workflow (build, check, test on Node 20 + 22). Added source test file (test/index.test.ts) with 17 passing tests. Fixed pre-commit hook.

Fixed

  • Stale references in compiled test — created test/index.test.ts from dist/test/index.test.js, fixed all pi-llm-wikipi-vault-mind refs.
  • CHANGELOG duplicate — removed duplicate sentence in legacy audit section.
  • Biome lint: 4 style issues fixed (noNonNullAssertion, noForEach, noShadowRestrictedNames, noExplicitAny disabled for project's strictness level).
  • Docs: PUBLISHING.md synced with actual package.json files field. FUTURE_WORK.md cleaned — removed already-shipped items.

[0.7.0] - 2026-06-09

A comprehensive audit (139 findings, 13 blockers) found residual references to the project's two previous names (pi-qmd-ledger and pi-llm-wiki) and to the ledger data model that was renamed to collection in v0.7.0. The full audit and its resolution log live at docs/plans/legacy-audit.md (in the repo, not in the published docs site). All findings have been addressed across 8 work batches and 8 commits.

  • Batches A–F (src/): Wizard rewrites, function/variable/comment renames, config filename migration, LanceDB table/column rename. See docs/plans/legacy-audit.md "Resolution Log" for the commit list.
  • Batch G (docs/): 17 doc files updated to remove stale terminology. docs/CONTRIBUTING.md and docs/TESTING.md rewritten to reflect the current project structure.
  • Batch H (skills/): 5 skills directories renamed:
  • skills/llm-wiki/skills/vault-mind/
  • skills/wiki-broadcaster/skills/vault-mind-broadcaster/
  • skills/wiki-heavy-lifter/skills/vault-mind-heavy-lifter/
  • skills/wiki-manager/skills/vault-mind-manager/
  • skills/wiki-miner/skills/vault-mind-miner/
  • Subagent dispatch names updated in src/watcher.ts from wiki-{role} to vault-mind-{role} to match the renamed skills.

Removed

  • Backward-compat shims: the merge layer no longer falls back to ledgers: / pi-llm-wiki.config.json / llm-wiki.config.json. Users with pre-rename configs should re-run /wiki setup to scaffold a new one.
  • Stale .gitignore entries: ledger/ and pi-qmd-ledger.config.json removed; collections/ added.

Fixed

  • Bug in createInjectorWizard (caught during cleanup): was writing ledger: field on disk for new injectors. The merge layer recovered via ij.collection || ij.ledger, but the user's config file would have a stray ledger: field. Now writes collection: directly.
  • Bug in events.ts before_agent_start context: referenced the non-existent append_ledger tool. Updated to append_wiki.

Security

  • Dependabot alerts: All 12 open npm vulnerabilities resolved via pnpm.overrides for transitive deps (brace-expansion, ws, protobufjs) and a version bump of @earendil-works/pi-coding-agent to 0.79.x. pnpm audit reports 0 vulnerabilities.
  • Husky pre-commit hook: fixed. npx tsc --noEmit (which fails because npx looks up tsc as an npm package) replaced with pnpm exec tsc --noEmit. Plus .husky/_ gitignore pattern updated for Husky 9 conventions so user-defined hooks are tracked for all contributors.

[0.7.0] - 2026-06-06

Renamed

Added

  • Vault Watcher (src/watcher.ts) — passive file-system observer that monitors Obsidian vaults for @agent-Role markers and dispatches isolated subagent tasks
  • Multi-role grouping: same-role markers in one file bundled into single task
  • Named IDs (@agent-Miner:customId) force isolation
  • Debounced watching (1000ms) groups rapid saves
  • Concurrency limiting (max 3 concurrent dispatches)
  • Commands: /wiki watcher start, /wiki watcher stop, /wiki watcher status
  • Auto-starts on extension load if wiki.vaults is configured
  • Passive Interaction Model (docs/PASSIVE_INTERACTION_MODEL.md) — session isolation design using forked subagents with context: "fork"
  • /wiki setup — interactive wizard for global config (vault path, embedding provider, Ollama model selection). CLI mode: --vault, --provider, --model flags. Writes to ~/.pi/agent/llm-wiki.config.json.
  • Watcher result writeback — dispatch IDs track subagent tasks; subagents replace their marker comments with > summaries in the source file
  • End-to-end watcher tests — 10 new tests (17 total), covering scanFile grouping, dispatch IDs, markProcessing, and status reporting

Changed

  • Agent rename: "Sovereign" → "Manager" across all docs, skills, and AGENTS.md
  • Config structure: lancedbwiki with nested embedding, graph, vaults
  • Config back-compat: old ledgers and lancedb keys silently migrated on load
  • Tools unified: all legacy /wiki-* commands consolidated into /wiki parent

[0.6.0] - 2026-06-05

Breaking Changes

  • Renamed from pi-qmd-ledger to pi-llm-wiki — package, config file, tools, and commands renamed
  • Removed qmd binary dependency — all search now uses native LanceDB (no external binaries)
  • Config change: qmd block replaced with lancedb block (embeddingProvider, ollamaModel, ftsEnabled, graphEnabled)
  • Tools renamed: qmd_searchwiki_search, qmd_statuswiki_status; added wiki_graph_query
  • Commands renamed: /qmd-init/wiki-init, /qmd-validate/wiki-validate, /qmd-approve/wiki-approve, etc.
  • Config files: pi-qmd-ledger.config.jsonpi-llm-wiki.config.json
  • Module resolution: switched to NodeNext (required by LanceDB 0.30.x)

Added

  • LanceDB vector search — hybrid vector + FTS search via @lancedb/lancedb, fully local, no external deps
  • Graph relationships — automatic entity extraction and BFS graph traversal (wiki_graph_query)
  • Dual-write architecture — JSONL WAL for durability + LanceDB for search speed
  • Embedding provider selection — Ollama (embeddinggemma, 768d) or transformers.js (all-MiniLM-L6-v2, 384d, offline)
  • /wiki-embedding command — interactive embedding management: provider switching, model discovery, pull models
  • Ollama integration — uses pi.exec for managed model discovery (matching pi-model-router patterns)
  • New config fields: ollamaModel, ollamaHost in lancedb config block
  • LanceDB status in wiki_status tool and ledger_stats

Changed

  • append_ledger autopilot now dual-writes to JSONL + LanceDB with auto-embedding
  • describe_ledger, query_ledger work unchanged on JSONL layer
  • configure_ledger reads/writes pi-llm-wiki.config.json
  • Skills directory moved to skills/llm-wiki/

Removed

  • child_process.execFile('qmd', ...) calls — replaced by LanceDB native queries
  • QmdDef type, qmd.binary config field

[0.5.4] - 2026-06-05

  • Bumped @earendil-works/pi-coding-agent SDK to 0.78.1.
  • Updated tool execute signatures to match the new SDK API.

Changelog

All notable changes to this project follow Semantic Versioning.

[Unreleased]

[0.5.0] — 2026-04-26

Added

  • Ledger-to-Ledger (L2L) Knowledge Promotion: Agents can now autonomously discover "gold nuggets" in ephemeral or project-specific ledgers and promote them to global/permanent ledgers.
  • New promote_ledger tool allows agents to stage selected entries into the pending queue with _promotion_target and _promotion_reason metadata.
  • /qmd-approve command updated to respect _promotion_target metadata, automatically migrating approved entries to their intended destination instead of the default ledger.
  • Updated SKILL.md to instruct agents on how to act as "Knowledge Curators" by distilling and transferring insights across ledgers.

[0.4.2] — 2026-04-26

Fixed

  • Fixed configuration merge bug where project-level ledger/injector definitions were replacing defaults instead of augmenting them. This prevents accidental loss of critical ledgers like context_events.

Added

  • New /qmd-audit command to detect and repair missing default ledgers and injectors in project configuration.

[0.4.0] — 2026-04-26

Added

  • Interactive Configuration Wizards: Added /qmd-ledger-create and /qmd-injector-create commands that guide users through creating new ledgers and injectors directly in the TUI without editing JSON files.
  • Settings Dashboard: Added /qmd-settings interactive menu to manage ledgers, injectors, and extension integrations visually.

[0.3.2] — 2026-04-26

Fixed

  • Explicitly commit and bundle modified src/index.ts and SKILL.md files that were missed in the 0.3.1 release (git sync fix).

[0.3.1] — 2026-04-26

Fixed

  • Changed Active Ledger Selection shortcut from ctrl+l to ctrl+alt+l to fix a conflict with the built-in Model Selector shortcut.

[0.3.0] — 2026-04-26

Added

  • Active Ledger Selection UX: Added a session-level state manager for the active ledger, defaulting to the first available ledger.
  • TUI Widget: Added a persistent UI widget above the editor input to display the currently active ledger.
  • Command & Shortcut: Added /qmd-ledger-select command (bound to ctrl+alt+l) that opens a TUI SelectList to interactively switch the active ledger.
  • Agent Guidelines: Updated the append_ledger tool guidelines and before_agent_start context injection so the LLM automatically knows and uses the active ledger as the default target.

[0.2.2] — 2026-04-25

Changed

  • Renamed default ledger key from master to main across source code, templates, documentation, and test docs. The word master is no longer used as a ledger identifier anywhere in the project.

[0.2.1] — 2026-04-25

Added

  • pi-context integration now reports its actions: captures event counts, tag injection counts, and clear enable/disable status messages.

Fixed

  • Extension review fixes: SKILL.md YAML frontmatter, remove stale tarballs, replace @sinclair/typebox with typebox devDependency, pin peerDependency, forward AbortSignal to child processes, fix /qmd-init return shape.

[0.2.4] — 2026-04-25

Added

  • LLM prompt guidelines now explicitly teach the agent to auto-append facts when the user says "Remember: [fact]" or "Record this decision: [fact]".
  • /qmd-init now prints a helpful tip about using the "Remember:" trigger.
  • /qmd-init now automatically prompts the user to enable pi-context integration if the tools are detected during scaffolding.

[0.2.3] — 2026-04-25

Fixed

  • pi-context enable toggle now accepts aliases (on/true/yes/1, off/false/no/0) and shows current status when run without arguments.
  • getPiContextConfig now merges stored values over full defaults, preventing silent event-handler exits when the config only contains { enabled: true }.
  • /qmd-enable-pi-context writes the complete pi-context config object (not partial) and confirms persistence after writing.

[0.2.2] — 2026-04-25

Added

  • pi-context integration now reports its actions: captures event counts, tag injection counts, and clear enable/disable status messages.

Fixed

  • Extension review fixes: SKILL.md YAML frontmatter, remove stale tarballs, replace @sinclair/typebox with typebox devDependency, pin peerDependency, forward AbortSignal to child processes, fix /qmd-init return shape.

0.2.0 — 2026-04-23

Added

  • Extension compatibility framework with pi-context integration.
  • New context_events ledger for capturing pi-context lifecycle events automatically.
  • New commands for extension management: /qmd-list-extensions, /qmd-extension-status, /qmd-enable-pi-context.

Fixed

  • Removed incorrect use of (ctx as any).toolMap and ctx.toolCall which do not exist on ExtensionContext; replaced with pi.getAllTools() and inline ledger append logic.
  • Changed ctx.ui.editor calls in command handlers to ctx.ui.notify for read-only output display.

[0.1.4] — 2026-04-22

Added

  • Comprehensive test plan (TESTING.md) for agent, human, and HITL personas.
  • New troubleshooting steps in TROUBLESHOOTING.md for empty search results and pending queue path mismatches.

[0.1.3] — 2026-04-22

Added

  • Added promptSnippet and promptGuidelines to all 8 tools for vastly improved LLM agent discoverability and usage instructions.
  • Added getArgumentCompletions to /qmd-approve command for ledger name auto-completion.

Fixed

  • Fixed stale error messages referencing the old /init_ledger command (now /qmd-init).

[0.1.2] — 2026-04-22

Added

  • New tool qmd_status to show index collections, indexed docs, and pending embeddings.
  • New command /qmd-index to run qmd update (BM25) and qmd embed (vectors).

[0.1.1] — 2026-04-22

Changed

  • qmd setup: prebuilt binary is now the recommended install path; cargo install qmd-cli moved to fallback
  • /qmd-validate, /qmd-init, and qmd_search now show platform-aware qmd install instructions when the binary is missing

0.1.0 — 2026-04-22

Added

  • Universal configurable JSONL ledger system with user-defined schemas
  • 7 tools:
  • qmd_search — fuzzy semantic search via qmd binary
  • query_ledger — deterministic JSONL search with text + filter queries
  • append_ledger — HITL append (strict / gated / autopilot) with dedup
  • configure_ledger — read / write config at runtime
  • describe_ledger — introspect schema, counts, sample entries
  • ledger_stats — dashboard of all ledgers + qmd health
  • ledger_export — export to JSON, CSV, or Markdown
  • 3 commands:
  • /qmd-init — scaffold config, ledgers, and artifact templates
  • /qmd-validate — health check qmd, config, and all ledger paths
  • /qmd-approve [target] — batch-review pending entries
  • 2 events:
  • resources_discover — auto-expose skills directory to pi
  • before_agent_start — dynamic injector system for context injection
  • Config v2 with ledgers, injectors, and qmd sections
  • Schema inheritance (ledger schema can reference another ledger by name)
  • dedupField per ledger for autopilot duplicate prevention
  • Domain-agnostic architecture — works for research, decisions, requirements, etc.
  • 3 example domain configs: research, decisions, requirements
  • Agent Skills standard skill at skills/qmd-ledger/SKILL.md
  • Scaffold templates for config, ledgers, and artifacts
  • Full reference docs for config and tools
  • Comprehensive test suite with mock pi ExtensionAPI