fix(callflow): load graph directed — caller/callee columns are swapped on 43% of edges - #2508
fix(callflow): load graph directed — caller/callee columns are swapped on 43% of edges#2508Tomaskobel wants to merge 2 commits into
Graphify — looks good
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Details
Graphify reviewed this change.
Looks safe to merge — no coupling regressions and no blocking issues, checked against the code graph (not a self-assessment).
Graphify review — findings
This PR modifies how callflow_html.py loads the graph and builds the call table. In the node-link loading path it now forces directed/multigraph to True when parsing graph.json (which is stored as undirected), and it extends generate_call_table_rows to accept optional full-graph all_edges/all_nodes parameters so the Caller/Callee columns can be computed against the whole graph rather than only section-local edges. The call site in write_callflow_html is updated to pass the full edges/nodes. The PR also adds two tests covering preserved edge direction after loading and the Caller column correctly recognizing callers from other sections.
No blocking issues surfaced. 2 lower-confidence candidates did not survive cross-model review.
Analysis details — impact, health, verification
Impact & health
Graphify review
Impact — 371 functions depend on the 151 functions this change touches.
Health — this change adds coupling hotspots:
- worse:
load_graph()— 5 callers, 7 callees - worse:
generate_call_table_rows()— 3 callers, 6 callees
Verification — 371 functions in the blast radius were not formally verified this run (proofs are advisory here).
Gate & verification
graphify gate
PASS — objectively clean (no health regressions, tests not run — proofs not run this pass (advisory)). Grounded, not self-assessed.
Advisory (not blocking):
- verification_scope: 241 function(s) in the blast radius were not formally verified this run