refactor: hash-based change detection, file-based metadata evaluation - #1
Open
jdbadger wants to merge 1 commit into
Open
refactor: hash-based change detection, file-based metadata evaluation#1jdbadger wants to merge 1 commit into
jdbadger wants to merge 1 commit into
Conversation
jdbadger
commented
Jan 31, 2026
Owner
- Adds cache.CacheManager, integrates in Repo.cache
- Add build_hashmap(), get_hashmap(), set_hashmap() methods to Repo
- Move is_stale from RepoMetadata to Repo as computed property
- Update IndexResult: remove nodes_updated, documents_checked fields
- Fix CLI/MCP to use correct field names (nodes/documents vs nodes_indexed/documents_indexed)
- Update all tests to match new API signatures
- Add comprehensive docstrings for new methods
- Update README programmatic usage example
jdbadger
force-pushed
the
change_detection_and_metadata_eval
branch
from
February 6, 2026 18:02
c063375 to
ded6057
Compare
Replace store-based change detection with a local file cache for incremental indexing. Document hashes are now persisted via CacheManager (XDG-compliant cache dir) instead of scrolling the Qdrant collection, enabling faster hash comparison and eliminating expensive store queries during index operations. Key changes: - Add CacheManager for per-repo hashmap caching (path → hash) - Move document hash from DocumentMetadata to a computed property on Document, decoupling walker metadata from content hashing - Replace store.get_document_hashes/count_nodes with cache-based hashmap diffing (_get_hashes_to_add/_get_hashes_to_delete) - Switch store deletion from document_path to document_hash filtering (delete_by_hashes replaces delete_by_document_paths) - Simplify Repo.get_one/get_all by removing store and with_metadata params; metadata is now evaluated from file state and cache - Add Repo.is_stale as a computed property comparing cached vs current hashmaps - Convert Walker.walk from async generator to sync generator, replace async file reads with synchronous reads - Remove RepoMetadata.from_repo (no longer queries the store) - Consolidate per-language parser tests into shared conftest fixtures - Add new test suites for CacheManager, config, parser models, and walker fixtures
jdbadger
force-pushed
the
change_detection_and_metadata_eval
branch
from
February 7, 2026 22:44
ded6057 to
5e8ad8f
Compare
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.