v0.7.0: Warm sync with file watcher, placement learning, fuzzy links#8
Merged
devwhodevs merged 22 commits intomainfrom Mar 25, 2026
Merged
v0.7.0: Warm sync with file watcher, placement learning, fuzzy links#8devwhodevs merged 22 commits intomainfrom
devwhodevs merged 22 commits intomainfrom
Conversation
Replaces 0.9/0.1 exponential moving average with true online mean math. Adds adjust_folder_centroid() for incremental add/remove. Fixes file_count to represent actual file count, not chunk count. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds created_by TEXT column to files table for tracking note origin. Adds update_file_path() that preserves file_id for edge integrity. Updates insert_file() signature with optional created_by parameter. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds store method to retrieve chunk vectors by file_id from BLOB column. Creates placement_corrections table for tracking user folder corrections. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Allows filtering notes by their creator agent via the list MCP tool. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Self-contained per-file indexing: chunk, embed, store in a single transaction. run_index now delegates to index_file per file. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
remove_file handles vec/FTS cleanup before cascade delete. rename_file uses UPDATE to preserve file_id and edge integrity. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Splits run_index into run_index (creates own resources) and run_index_shared (accepts shared references). Needed for watcher's FullRescan path. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
OS thread watches vault recursively with 2s debounce. Filters to .md files, applies exclude patterns, converts to WatchEvent types. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Two-pass batch processing: mutations then edge rebuild. Content hash move detection for cross-platform reliability. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Watcher starts on serve, reconciles index on startup, then watches for real-time changes. Shuts down cleanly with the server. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Detects when user moves a note from suggested_folder to a different folder. Updates centroids incrementally, logs correction, strips frontmatter. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Introduces confidence-scored fuzzy matching with type priority for overlap resolution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Byte-offset-aware fuzzy matching via normalized Levenshtein with 0.92 threshold. Respects existing exact matches, sorts by type priority for overlap resolution. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Unique first-name matches emitted at 650bp confidence, never auto-applied. Fuzzy matches above 920bp auto-applied. FirstName matches returned as suggestions in MCP tool response. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Fixes content hash divergence between diff_vault (raw bytes) and run_index_inner (post-read_to_string bytes) that could cause BOM-prefixed files to appear perpetually changed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
index_file skips its own transaction when already inside one. run_index_inner wraps the file loop in a single transaction for bulk indexing performance. Watcher still uses per-file transactions. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Centroids now updated when files are added or removed via external edits, preventing drift. FullRescan lock scope documented as known limitation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Moves handler now releases the store lock before writing frontmatter to disk, reducing MCP latency. remove_file wrapped in transaction for crash safety. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
engraph serve— real-time detection of vault changes vianotify-debouncer-full, automatic re-indexing with 2s debouncesuggested_folderto a different folder, updates centroids incrementallycreated_byfiltering — track note origin, filter vialistMCP toolindex_file,remove_file,rename_filefor per-file operationsArchitecture
Test plan
engraph servewith live vault editingsuggested_folderfrontmattercreateMCP tool response🤖 Generated with Claude Code