You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Class nodes always have in_degree/out_degree = 0 despite real INHERITS edges existing #558
Confirmed via Cypher that the edges actually exist:
MATCH (child)-[:INHERITS]->(parent)
WHEREparent.name='AbstractAttachmentDto'RETURNchild.name
→ Returns 8 rows correctly.
Also confirmed that the degree properties are stored as 0 on the node itself, not computed live:
MATCH (n:Class{name:'AbstractAttachmentDto'})
RETURNn.in_degree, n.out_degree
→ 0, 0
Root cause hypothesis
The in_degree/out_degree properties appear to be written onto nodes during indexing (not computed dynamically from the graph). It looks like these counts are not being updated for Class nodes after INHERITS edges are resolved, leaving them at their initial value of 0.
Impact
search_graph returns misleading connectivity data for all classes
Any min_degree filter to find well-connected or abstract classes will silently exclude everything
Agents fall back to grep because search_graph results look like isolated/unused nodes
Workaround
Use query_graph with a Cypher traversal directly — the edges are correct, only the stored property is wrong:
MATCH (child)-[:INHERITS]->(parent{name:'MyAbstractClass'})
RETURNchild.name, child.file_path
Confirmations
I searched existing issues and this is not a duplicate.
Opened #572 with a fix for this. The root cause is in cbm_store_search: the on-demand in_degree/out_degree subqueries counted only CALLS/USAGE edges, so Class nodes connected by INHERITS showed degree 0 and min_degree filters silently excluded them. The PR broadens that predicate to include INHERITS/IMPLEMENTS and adds regression tests (parent with N INHERITS children now reports in_degree == N).
Activity
DeusData commentedon Jun 22, 2026
Hey, thx for this finding. Will check ASAP
mvanhorn commentedon Jun 23, 2026
Opened #572 with a fix for this. The root cause is in
cbm_store_search: the on-demandin_degree/out_degreesubqueries counted onlyCALLS/USAGEedges, soClassnodes connected byINHERITSshowed degree 0 andmin_degreefilters silently excluded them. The PR broadens that predicate to includeINHERITS/IMPLEMENTSand adds regression tests (parent with NINHERITSchildren now reportsin_degree == N).fix: address self-review findings — keep node_degree CALLS-only
docs(vendored): record the Swift scanner shift patch in MANIFEST.md