Repository navigation
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.
fix(mcp): resolver reliability, structured diagnostics, token-efficiency tools #12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Uh oh!
There was an error while loading. Please reload this page.
fix(mcp): resolver reliability, structured diagnostics, token-efficiency tools #12
Changes from 1 commit
9f0dfc3786717fc78906bf59b6c363f38b055096f0f9bcacc3e903be4881335File filter
Filter by extension
Conversations
Uh oh!
There was an error while loading. Please reload this page.
Jump to
Uh oh!
There was an error while loading. Please reload this page.
…ctured not-found diagnostics Several independent but related resolution bugs made uri+line and nodeId lookups unreliable across almost every MCP tool: - nodeId args were read with `.as_str()` only, so a numeric `{"nodeId": 1306}` (the same JSON type codegraph_symbol_search itself returns) silently failed to resolve. Add arg_node_id() to accept both. - The indexer stores node paths relative to the workspace root, while handlers required an absolute file:// URI and compared with `==` — the two never matched. Worse, a failed URI parse silently became an empty string, which could accidentally match synthetic nodes and return an unrelated symbol with no error at all. Add paths_match()/resolve_uri_to_path() and use them everywhere a strict `==`/file:// URI was assumed. - find_nearest_node treated nodes without an explicit line range (e.g. a Python module's CodeFile node) as a 0..0 range, which won every containment check for target_line == 0 and shadowed real symbols. Skip nodes without a line range instead. - Failed resolutions returned one generic "Could not find symbol" message regardless of cause. Add SymbolNotFoundReason (invalid_uri / workspace_not_indexed / file_not_indexed) with a hint and suggested_next_queries(), wired into every uri+line/nodeId tool. - Add a match_confidence ("exact" | "fallback") field, always present, so callers don't have to reconstruct trust level from the optional used_fallback field. - codegraph_reindex_workspace could report status: "success" on a reindex that left the graph empty. Compare node_count after indexing against files processed and mark the response "degraded"; auto-retry once with force=true before returning, since that's what reliably fixes it.Uh oh!
There was an error while loading. Please reload this page.
There are no files selected for viewing
Uh oh!
There was an error while loading. Please reload this page.