-
Notifications
You must be signed in to change notification settings - Fork 2.7k
trace_path silently accepts invalid direction values and returns empty results #480
Copy link
Copy link
Open
Labels
bugSomething isn't workingSomething isn't workingcypherCypher query language parser/executor bugsCypher query language parser/executor bugsparsing/qualityGraph extraction bugs, false positives, missing edgesGraph extraction bugs, false positives, missing edgespriority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.Needs near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.stability/performanceServer crashes, OOM, hangs, high CPU/memoryServer crashes, OOM, hangs, high CPU/memoryux/behaviorDisplay bugs, docs, adoption UXDisplay bugs, docs, adoption UX
Milestone
Description
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't workingcypherCypher query language parser/executor bugsCypher query language parser/executor bugsparsing/qualityGraph extraction bugs, false positives, missing edgesGraph extraction bugs, false positives, missing edgespriority/highNeeds near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.Needs near-term maintainer attention; high-impact bug, regression, safety issue, or release blocker.stability/performanceServer crashes, OOM, hangs, high CPU/memoryServer crashes, OOM, hangs, high CPU/memoryux/behaviorDisplay bugs, docs, adoption UXDisplay bugs, docs, adoption UX
Summary
trace_pathreturns an empty result for every function/method I tried — callers or callees, plain or fully-qualified name, any depth — even though the underlyingCALLSedges exist and are traversable viaquery_graph. The tool only ever echoes back{"function":...,"direction":...}with nopaths/nodes.This makes the headline call-graph traversal tool effectively non-functional in v0.8.1, at least on macOS arm64.
Environment
status:"indexed". Index reports 15,945CALLSedges.Repro
Index any multi-language repo, then:
Empty — no paths. But the edges clearly exist:
read_file_statusis aFunctionnode with 88 incoming CALLS edges, yettrace_pathfinds nothing.What I ruled out
Methodnodes (create) andFunctionnodes (read_file_status,save_files_from_dict,main,run_cmd) — all empty.callersandcalleesboth empty.agentsv2.base_agent.BaseAgent.create) both empty.query_graph, so the graph is populated correctly — only thetrace_pathstart-node lookup (or its traversal) appears to fail.Expected
trace_pathshould return the caller/callee paths forread_file_status(88 callers exist), matching whatquery_graphcan already walk.Workaround
Use
query_graphwith a CypherMATCH ... -[:CALLS*]-> ...instead; the graph data itself is correct.