Repository navigation
fix(mcp): reject stale AST coordinates after source changes - #2216
lorenzozanee wants to merge 1 commit into
Conversation
|
Thanks for opening this — it has been seen, and it is queued. This note is automated, but it is not a brush-off: it exists so you know where your PR stands instead of having to guess from silence. Current review status: working through a backlog. What that means for this PR, concretely:
Things that will genuinely speed it up whenever review does happen:
If this fixes a bug, a reproduction we can run is worth more than a description of the symptom. Thanks for contributing, and sorry in advance for the wait. |
|
Thank you for carrying the stale-range work into this focused replacement. Current source still uses indexed source ranges, with freshness checks forming a separate contract. Review needs to retain the supplied boundary cases and check the Windows metadata and untracked-store behavior explicitly. The queue is busy, so it may take a little time to complete that review. |
|
Thank you — rejecting stale AST coordinates after the source has changed is exactly the kind of correctness fix this project cares about. Returning a snippet keyed to bytes that have moved is worse than returning nothing. Two blockers, both small. 1. The memory-core linter (this is what One raw Use
2. The #2241 and #2242 merged cleanly today with correct sign-offs, so the habit is already there — these branches just predate it. |
Treat explicit project names as literals and reject conflicting roots before staging a replacement index. Preserve coverage rows and imports into a fresh clone. Recognize Swift test files and capture Git HEAD when a watcher registers so commits made before the first poll are detected, including in subdirectories. Adapt snippet and code-search freshness checks from upstream PR DeusData#2216, commit 729c3ac. Signed-off-by: Patrick Smith <25066580+aspenas@users.noreply.github.com>
|
Thanks again for the stale-coordinate fix. Following up on the existing review: the allocator ownership/pairing and commit sign-offs remain the recorded requests. If the freed buffer comes from an untouched raw-allocation API, please flag that ownership so the next review can resolve it correctly. |
|
Thank you again for the stale-coordinate guard. The allocator-pairing and sign-off requests remain recorded; please flag any buffer owned by an unchanged allocation API rather than changing only its deallocator. We also need to reconcile this with the updated #1788 before further integration work. |
|
Thank you for the stale-coordinate guard, and for rebuilding it here from #2105 after the original branch was gone. Rejecting a snippet whose bytes have moved, rather than returning plausible wrong code, is exactly the right instinct for this project. We are closing this PR because #2600, now merged in 2658a18, fixes the get_code_snippet side of the same defect (#1750). It compares the file against the SHA-256 recorded at index time instead of its metadata, so it also catches a same-size edit that kept its timestamp, and it slices the snippet from the exact bytes it verified. With that in place, the sign-off and allocator items from the earlier review no longer need any work from you. Keeping raw search matches while dropping stale attribution, as you did for search_code, is the part #2600 does not cover. #1750 stays open for it, and your approach is a useful reference for that work. Thank you again for caring about this correctness problem. |
Fixes #1750. Source edits can invalidate AST line ranges, so this update uses the canonical file metadata on Windows before exposing stored coordinates, rejects stale snippet reads, and preserves raw search matches without stale AST attribution.
Supersedes #2105(原PR分支已删,按原提交重建)