Summary
trace_path returns an empty result for every function/method I tried — callers or callees, plain or fully-qualified name, any depth — even though the underlying CALLS edges exist and are traversable via query_graph. The tool only ever echoes back {"function":...,"direction":...} with no paths/nodes.
This makes the headline call-graph traversal tool effectively non-functional in v0.8.1, at least on macOS arm64.
Environment
- Version: codebase-memory-mcp 0.8.1
- Platform: Darwin arm64 (macOS)
- Repo indexed: large polyglot repo (Python 569 files, Go 190, TS 20, …) → 15,915 nodes / 67,668 edges,
status:"indexed". Index reports 15,945 CALLS edges.
Repro
Index any multi-language repo, then:
$ codebase-memory-mcp cli trace_path '{"project":"<proj>","function_name":"read_file_status","direction":"callers","depth":1}'
{"function":"read_file_status","direction":"callers"}
Empty — no paths. But the edges clearly exist:
$ codebase-memory-mcp cli query_graph '{"project":"<proj>","query":"MATCH (a)-[:CALLS]->(b:Function) RETURN b.name, count(a) AS callers ORDER BY callers DESC LIMIT 8"}'
{"columns":["b.name","callers"],"rows":[["get",380],["info",374],["main",169],["load",112],["read_file_status",88],["save_files_from_dict",87],["WithTimeout",72],["keys",63]]}
read_file_status is a Function node with 88 incoming CALLS edges, yet trace_path finds nothing.
What I ruled out
- Not a label issue. Tried both
Method nodes (create) and Function nodes (read_file_status, save_files_from_dict, main, run_cmd) — all empty.
- Not direction.
callers and callees both empty.
- Not name resolution. Bare name and fully-qualified (
agentsv2.base_agent.BaseAgent.create) both empty.
- Not missing data. The exact CALLS edges traverse fine via
query_graph, so the graph is populated correctly — only the trace_path start-node lookup (or its traversal) appears to fail.
Expected
trace_path should return the caller/callee paths for read_file_status (88 callers exist), matching what query_graph can already walk.
Workaround
Use query_graph with a Cypher MATCH ... -[:CALLS*]-> ... instead; the graph data itself is correct.
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.