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 onhttp://127.0.0.1:11435(configurable viawiki.httpPort). Starts automatically when the vault-mind extension loads. GET /vault-mind/status— running state, vaults, uptime, dispatch recordsPOST /vault-mind/scan— explicit file scan for@agentmarkersPOST /vault-mind/dispatch— reserved for future manual dispatch/wiki server statuscommand — show port, uptime, and available endpoints- Shellcommands bridge docs — step-by-step config walkthrough in
docs/OBSIDIAN_SETUP.mdwith platform-specific curl commands.obsidian-shellcommandsplugin bumped from Optional to Recommended.
Changed¶
- Default embedding model:
nomic-embed-text→embeddinggemma(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.tsfromdist/test/index.test.js, fixed allpi-llm-wiki→pi-vault-mindrefs. - 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.mdsynced with actualpackage.jsonfiles field.FUTURE_WORK.mdcleaned — 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.mdanddocs/TESTING.mdrewritten 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.tsfromwiki-{role}tovault-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 setupto scaffold a new one. - Stale
.gitignoreentries:ledger/andpi-qmd-ledger.config.jsonremoved;collections/added.
Fixed¶
- Bug in
createInjectorWizard(caught during cleanup): was writingledger:field on disk for new injectors. The merge layer recovered viaij.collection || ij.ledger, but the user's config file would have a strayledger:field. Now writescollection:directly. - Bug in
events.tsbefore_agent_startcontext: referenced the non-existentappend_ledgertool. Updated toappend_wiki.
Security¶
- Dependabot alerts: All 12 open npm vulnerabilities resolved via
pnpm.overridesfor transitive deps (brace-expansion,ws,protobufjs) and a version bump of@earendil-works/pi-coding-agentto 0.79.x.pnpm auditreports 0 vulnerabilities. - Husky pre-commit hook: fixed.
npx tsc --noEmit(which fails because npx looks uptscas an npm package) replaced withpnpm 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¶
- Package renamed:
pi-llm-wiki→pi-vault-mind(the old name was taken on npm and too generic) - GitHub repo renamed: https://github.com/kylebrodeur/pi-vault-mind
Added¶
- Vault Watcher (
src/watcher.ts) — passive file-system observer that monitors Obsidian vaults for@agent-Rolemarkers 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.vaultsis configured - Passive Interaction Model (
docs/PASSIVE_INTERACTION_MODEL.md) — session isolation design using forked subagents withcontext: "fork" /wiki setup— interactive wizard for global config (vault path, embedding provider, Ollama model selection). CLI mode:--vault,--provider,--modelflags. Writes to~/.pi/agent/llm-wiki.config.json.- Watcher result writeback — dispatch IDs track subagent tasks; subagents replace
their marker comments with
> summariesin 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:
lancedb→wikiwith nestedembedding,graph,vaults - Config back-compat: old
ledgersandlancedbkeys silently migrated on load - Tools unified: all legacy
/wiki-*commands consolidated into/wikiparent
[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
qmdbinary dependency — all search now uses native LanceDB (no external binaries) - Config change:
qmdblock replaced withlancedbblock (embeddingProvider, ollamaModel, ftsEnabled, graphEnabled) - Tools renamed:
qmd_search→wiki_search,qmd_status→wiki_status; addedwiki_graph_query - Commands renamed:
/qmd-init→/wiki-init,/qmd-validate→/wiki-validate,/qmd-approve→/wiki-approve, etc. - Config files:
pi-qmd-ledger.config.json→pi-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-embeddingcommand — interactive embedding management: provider switching, model discovery, pull models- Ollama integration — uses
pi.execfor managed model discovery (matching pi-model-router patterns) - New config fields:
ollamaModel,ollamaHostinlancedbconfig block - LanceDB status in
wiki_statustool andledger_stats
Changed¶
append_ledgerautopilot now dual-writes to JSONL + LanceDB with auto-embeddingdescribe_ledger,query_ledgerwork unchanged on JSONL layerconfigure_ledgerreads/writespi-llm-wiki.config.json- Skills directory moved to
skills/llm-wiki/
Removed¶
child_process.execFile('qmd', ...)calls — replaced by LanceDB native queriesQmdDeftype,qmd.binaryconfig field
[0.5.4] - 2026-06-05¶
- Bumped @earendil-works/pi-coding-agent SDK to 0.78.1.
- Updated tool
executesignatures 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_ledgertool allows agents to stage selected entries into thependingqueue with_promotion_targetand_promotion_reasonmetadata. /qmd-approvecommand updated to respect_promotion_targetmetadata, automatically migrating approved entries to their intended destination instead of the default ledger.- Updated
SKILL.mdto 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-auditcommand 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-createand/qmd-injector-createcommands that guide users through creating new ledgers and injectors directly in the TUI without editing JSON files. - Settings Dashboard: Added
/qmd-settingsinteractive menu to manage ledgers, injectors, and extension integrations visually.
[0.3.2] — 2026-04-26¶
Fixed¶
- Explicitly commit and bundle modified
src/index.tsandSKILL.mdfiles that were missed in the0.3.1release (git sync fix).
[0.3.1] — 2026-04-26¶
Fixed¶
- Changed Active Ledger Selection shortcut from
ctrl+ltoctrl+alt+lto 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-selectcommand (bound toctrl+alt+l) that opens a TUISelectListto interactively switch the active ledger. - Agent Guidelines: Updated the
append_ledgertool guidelines andbefore_agent_startcontext 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
mastertomainacross source code, templates, documentation, and test docs. The wordmasteris 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/typeboxwithtypeboxdevDependency, pin peerDependency, forward AbortSignal to child processes, fix/qmd-initreturn 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-initnow prints a helpful tip about using the "Remember:" trigger./qmd-initnow automatically prompts the user to enablepi-contextintegration 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/typeboxwithtypeboxdevDependency, pin peerDependency, forward AbortSignal to child processes, fix/qmd-initreturn shape.
0.2.0 — 2026-04-23¶
Added¶
- Extension compatibility framework with pi-context integration.
- New
context_eventsledger 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).toolMapandctx.toolCallwhich do not exist onExtensionContext; replaced withpi.getAllTools()and inline ledger append logic. - Changed
ctx.ui.editorcalls in command handlers toctx.ui.notifyfor 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.mdfor empty search results and pending queue path mismatches.
[0.1.3] — 2026-04-22¶
Added¶
- Added
promptSnippetandpromptGuidelinesto all 8 tools for vastly improved LLM agent discoverability and usage instructions. - Added
getArgumentCompletionsto/qmd-approvecommand for ledger name auto-completion.
Fixed¶
- Fixed stale error messages referencing the old
/init_ledgercommand (now/qmd-init).
[0.1.2] — 2026-04-22¶
Added¶
- New tool
qmd_statusto show index collections, indexed docs, and pending embeddings. - New command
/qmd-indexto runqmd update(BM25) andqmd embed(vectors).
[0.1.1] — 2026-04-22¶
Changed¶
- qmd setup: prebuilt binary is now the recommended install path;
cargo install qmd-climoved to fallback /qmd-validate,/qmd-init, andqmd_searchnow 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 binaryquery_ledger— deterministic JSONL search with text + filter queriesappend_ledger— HITL append (strict / gated / autopilot) with dedupconfigure_ledger— read / write config at runtimedescribe_ledger— introspect schema, counts, sample entriesledger_stats— dashboard of all ledgers + qmd healthledger_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 pibefore_agent_start— dynamic injector system for context injection- Config v2 with
ledgers,injectors, andqmdsections - Schema inheritance (ledger schema can reference another ledger by name)
dedupFieldper 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