Repository navigation
0.1.6
MemVector 0.1.6 represents an important architectural milestone. This release sharpens the core MemVector philosophy: prioritizing high-dimensional semantic vector embeddings and intentional, typed domain relationships over raw, untyped Obsidian link structures. It also introduces per-hop GraphRAG context quotas, a live scrollable context preview, independent synthesis hop controls, and a toggle to declutter the 2D canvas from intermediate relation notes.
Highlights
1. Strengthening the Pure MemVector Paradigm: Opt-In WikiLinks (#100)
- Focused Knowledge Graph: Standard Obsidian
[[WikiLinks]]are no longer automatically converted into untypedLINKS_TOgraph relations by default (includeWikiLinksAsRelations: false). - Semantic Integrity: The SQLite graph store, GraphRAG multi-hop traversal, and 2D force simulation topology are now strictly reserved for semantic embeddings and explicit, typed relationships (
wiki/relations/*created via the Relation Builder). - Opt-In Compatibility: Users who wish to continue tracking raw wiki links in the graph store can re-enable the toggle under Settings → Knowledge Domain & Embedding Provider. Documented in ADR-0001.
2. GraphRAG Per-Hop Quotas & Live Context Preview (#89, #103)
- Independent Synthesis Hop Depth (#89): Decoupled GraphRAG synthesis traversal depth (1–3 hops) from visual canvas edge hops.
- Balanced Per-Hop Quotas (#103): Replaced flat neighbor cuts with a per-hop level quota (
hopLevelNeighborLimit, default: 2) and round-robin assembly across hops, ensuring hop-1 notes no longer crowd out deeper conceptual connections. - Configurable Context Budgets: Moved hardcoded context caps into plugin settings (
vectorNeighborLimit,totalContextLimit,agentsGuidelinesCharCap,contentCapChars). - Vector Similarity Gate: Added
minVectorSimilarity(default: 0.75) with an interactive live slider in the toolbar Synthesis section. - Live Scrollable Context Preview: The Synthesis section now displays an interactive preview of all candidate context notes live on selection change, annotated with channel badges (
[v],[g],[v+g]), hop distance, and similarity scores.
3. 2D Scatter Plot Relation Note Toggle (#59)
- Clean Concept Views: Added a toggle in the scatter plot toolbar under View (
lblShowRelationNotes) to hide intermediate relation notes (wiki/relations/*/type: relation). - Zero Layout Shift: Toggling relation visibility filters rendering, hit-testing, auto-fit, and lasso selection instantly without recalculating or resetting node coordinates. Direct edges between regular concept notes remain intact.
4. Resilient SQLite Storage Path Resolution (PR #97)
- Manifest-Relative Paths: Resolved SQLite database and WASM file paths using
this.manifest.dirinstead ofthis.manifest.id, ensuring reliable database access when plugins are cloned or installed into custom folder names. - Automated Directory Creation: Ensures the plugin directory exists via
app.vault.adapter.mkdirbefore writingmemvector-local.sqliteand WASM binaries, preventing ENOENT errors.
5. Codebase Hardening & Architecture Cleanups (#72, #78, #79, #81, #83, #90)
- Canonical Identity at Store Boundary (#81): Unified
pathToIdacross storage boundaries, resolving SQLite vector dual-identity and path encoding edge cases. - Position Provider Contract (#78): Replaced runtime duck-typing with a type-safe
NodePositionProviderinterface, and extracted sharedvaultFilter.ts. - Deduplication (#79): Consolidated duplicate implementations of string hashing, node map indexing, coordinate projections, and frontmatter parsing.
- Ghost Backend Cleanup (#72): Aligned
storeFactoryand documentation to eliminate unbacked claims. - Model Tiers & Cleanup (#83): Added
deepseek-reasonerto the frontier tier, eliminated caller array mutation inRelationBuilderModal, and ensured canvas interaction cleanup on teardown.
6. Full Localization & Expanded Test Suite (307 Passing Tests)
- Complete DE/EN UI Parity (#69, PR #106): Fully localized ribbon icons, commands, notices, indexing progress, synthesis modals, and canvas controls without mixed language fragments.
- 60 New Automated Tests: Expanded test suite from 247 to 307 automated unit and adversarial tests across 39 test files, with zero errors on ESLint.
Changelog
Added
- Opt-in setting
includeWikiLinksAsRelations(default:false) to restrict graph extraction and topology forces to explicit typed relations (#100, PR #101). - Quick toggle in 2D scatter plot toolbar under View to show or hide relation notes without layout reset (#59, PR #99).
- Per-hop GraphRAG context quotas (
hopLevelNeighborLimit) and round-robin assembly across hop levels (#103, PR #105). - Live scrollable context preview with compact badges (
v,g,v+g, score, hops) and real-time similarity slider in the toolbar Synthesis section (#103, PR #105). - Independent GraphRAG hop depth control (1–3 hops) in the toolbar Synthesis section (#89, PR #98).
- Settings-based context limits for vector neighbors, total context, and guideline caps (#103, PR #105).
ADR-0001: Architectural decision record on opt-in WikiLink relation extraction.
Changed
- GraphRAG neighbor assembly now respects per-hop quotas rather than cutting off deeper hops prematurely (#103).
- SQLite storage path now resolves from
this.manifest.dirwith automated directory creation before write (PR #97). - Canvas node position provider formalized as
NodePositionProviderinterface (#78, PR #94). - Model tier routing now includes
deepseek-reasonerand OpenRouter frontier endpoints (#83, PR #96).
Fixed
- Fixed SQLite database and WASM initialization failing with ENOENT when plugin folder name diverges from manifest ID (PR #97).
- Fixed dual-identity discrepancy for vector IDs across store boundaries (#81, PR #92).
- Fixed caller array mutation in
RelationBuilderModal(#83, PR #96). - Fixed canvas listener leaks by registering clean interaction teardown on view close (#83, PR #96).
- Fixed hardcoded UI strings, error notices, and toolbar labels across the plugin by routing them through the i18n layer (#69, PR #93, PR #106).
- Fixed lost relation edits and added validation for default types and duplicate filenames (#90).
Documentation
- Documented
ADR-0001for opt-in WikiLink relation extraction indocs/adr/0001-wikilinks-opt-in-graph-relations.md. - Updated
README.md,CHANGELOG.md,docs/ARCHITECTURE.md,docs/CONFIGURATION.md, anddocs/GRAPHRAG.md.
Installation & Upgrade
Community Plugins (Automatic)
Search for MemVector Knowledge Engine in Obsidian Community Plugins and click Update (or Install).
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the release assets on GitHub. - Copy all three files into your vault's plugin directory:
<vault>/.obsidian/plugins/obsidian-memvector-knowledge-engine/ - Reload Obsidian or toggle the plugin off and on under Settings → Community Plugins.