Repository navigation
fix(viz): render FalkorDB relationships in the live graph - #1689
Shashankss1205 merged 1 commit into
Conversation
parse_element classified relationships by class name, matching only Relationship/KuzuRelationship. FalkorDB's edge class is named Edge, so it matched no branch and every FalkorDB relationship was silently dropped — on the backend that is CGC's default on Unix under Python 3.12+. parse_rel directly below already reads FalkorDB edges correctly; it was never reached. The offline renderer in cli_helpers already classified by duck typing and handled this (CodeGraphContext#1453). Both renderers now share those predicates in utils/graph_shapes, so classification cannot drift apart again.
|
@OfficialAbhinavSingh is attempting to deploy a commit to the shashankss1205's projects Team on Vercel. A member of the Team first needs to authorize it. |
Shashankss1205
left a comment
There was a problem hiding this comment.
Verified on a local trial-merge: consolidating the backend duck-typing into graph_shapes.py removes the cli_helpers/viz duplication that let the two paths drift (which is exactly how FalkorDB's Edge class fell through the viz classifier while the offline renderer worked), the FalkorDB attribute checks (relation/src_node before dict fallbacks) are ordered correctly, and the 152-line test file covers every backend's shape including the Kùzu-vs-Ladybug case-spelling split. Merges cleanly over today's #1682 module-label work in the same files. Full suite green (1455, +11). Thanks @OfficialAbhinavSingh!
…1676) * feat: add SSL connection parameters to cassandra_ingester.py * feat: add SSL connection parameters to mysql_ingester.py * fix(jobs): serialize last update time in job responses (#1679) * fix(cli): explain embedded database lock conflicts (#1684) * fix(setup-wizard): stop replacing IDE settings that are JSONC (#1677) VS Code and its forks write settings.json as JSONC. json.load rejects comments and trailing commas, and the wizard treated that rejection as "no settings yet" before writing the file back, so a user's whole configuration was replaced by a lone mcpServers key. Parse JSONC before giving up, and if the file still cannot be parsed, leave it alone instead of overwriting it. Back up the file before writing either way, and say so when comments are present, since json.dump cannot preserve them. Fixes #660 Signed-off-by: Aloys Jehwin <[email protected]> * feat(cgcignore): treat .gitignore as an ignore source (#1680) Anything git ignores is now ignored by the indexer, so a repository no longer needs a .cgcignore that restates its .gitignore. Patterns are layered defaults -> .gitignore -> .cgcignore. Matching is last-match-wins, so a negated pattern in .cgcignore can still bring a git-ignored path back into the graph. Fixes #729 Signed-off-by: Aloys Jehwin <[email protected]> * fix(viz): display source filenames for synthetic module nodes (#1682) * fix(viz): display source filenames for synthetic module nodes * fix(jobs): serialize last update time in job responses (#1679) * fix(cli): explain embedded database lock conflicts (#1684) * fix(setup-wizard): stop replacing IDE settings that are JSONC (#1677) VS Code and its forks write settings.json as JSONC. json.load rejects comments and trailing commas, and the wizard treated that rejection as "no settings yet" before writing the file back, so a user's whole configuration was replaced by a lone mcpServers key. Parse JSONC before giving up, and if the file still cannot be parsed, leave it alone instead of overwriting it. Back up the file before writing either way, and say so when comments are present, since json.dump cannot preserve them. Fixes #660 Signed-off-by: Aloys Jehwin <[email protected]> * feat(cgcignore): treat .gitignore as an ignore source (#1680) Anything git ignores is now ignored by the indexer, so a repository no longer needs a .cgcignore that restates its .gitignore. Patterns are layered defaults -> .gitignore -> .cgcignore. Matching is last-match-wins, so a negated pattern in .cgcignore can still bring a git-ignored path back into the graph. Fixes #729 Signed-off-by: Aloys Jehwin <[email protected]> * normalize module-node label to the plain filename in all render sites --------- Signed-off-by: Aloys Jehwin <[email protected]> Co-authored-by: Donovan Yohan <[email protected]> Co-authored-by: Aloys Jehwin <[email protected]> Co-authored-by: Shashank Shekhar Singh <[email protected]> * fix: find functions by argument type (#1686) * fix: find functions by argument type * fix(jobs): serialize last update time in job responses (#1679) * fix(cli): explain embedded database lock conflicts (#1684) * fix(setup-wizard): stop replacing IDE settings that are JSONC (#1677) VS Code and its forks write settings.json as JSONC. json.load rejects comments and trailing commas, and the wizard treated that rejection as "no settings yet" before writing the file back, so a user's whole configuration was replaced by a lone mcpServers key. Parse JSONC before giving up, and if the file still cannot be parsed, leave it alone instead of overwriting it. Back up the file before writing either way, and say so when comments are present, since json.dump cannot preserve them. Fixes #660 Signed-off-by: Aloys Jehwin <[email protected]> * feat(cgcignore): treat .gitignore as an ignore source (#1680) Anything git ignores is now ignored by the indexer, so a repository no longer needs a .cgcignore that restates its .gitignore. Patterns are layered defaults -> .gitignore -> .cgcignore. Matching is last-match-wins, so a negated pattern in .cgcignore can still bring a git-ignored path back into the graph. Fixes #729 Signed-off-by: Aloys Jehwin <[email protected]> * fix(viz): display source filenames for synthetic module nodes (#1682) * fix(viz): display source filenames for synthetic module nodes * fix(jobs): serialize last update time in job responses (#1679) * fix(cli): explain embedded database lock conflicts (#1684) * fix(setup-wizard): stop replacing IDE settings that are JSONC (#1677) VS Code and its forks write settings.json as JSONC. json.load rejects comments and trailing commas, and the wizard treated that rejection as "no settings yet" before writing the file back, so a user's whole configuration was replaced by a lone mcpServers key. Parse JSONC before giving up, and if the file still cannot be parsed, leave it alone instead of overwriting it. Back up the file before writing either way, and say so when comments are present, since json.dump cannot preserve them. Fixes #660 Signed-off-by: Aloys Jehwin <[email protected]> * feat(cgcignore): treat .gitignore as an ignore source (#1680) Anything git ignores is now ignored by the indexer, so a repository no longer needs a .cgcignore that restates its .gitignore. Patterns are layered defaults -> .gitignore -> .cgcignore. Matching is last-match-wins, so a negated pattern in .cgcignore can still bring a git-ignored path back into the graph. Fixes #729 Signed-off-by: Aloys Jehwin <[email protected]> * normalize module-node label to the plain filename in all render sites --------- Signed-off-by: Aloys Jehwin <[email protected]> Co-authored-by: Donovan Yohan <[email protected]> Co-authored-by: Aloys Jehwin <[email protected]> Co-authored-by: Shashank Shekhar Singh <[email protected]> * fix the argument query so it filters f; behavioral pin on real kuzu --------- Signed-off-by: Aloys Jehwin <[email protected]> Co-authored-by: Donovan Yohan <[email protected]> Co-authored-by: Aloys Jehwin <[email protected]> Co-authored-by: Upanshi Mittal <[email protected]> Co-authored-by: Shashank Shekhar Singh <[email protected]> * fix(viz): render FalkorDB relationships in the live graph (#1689) parse_element classified relationships by class name, matching only Relationship/KuzuRelationship. FalkorDB's edge class is named Edge, so it matched no branch and every FalkorDB relationship was silently dropped — on the backend that is CGC's default on Unix under Python 3.12+. parse_rel directly below already reads FalkorDB edges correctly; it was never reached. The offline renderer in cli_helpers already classified by duck typing and handled this (#1453). Both renderers now share those predicates in utils/graph_shapes, so classification cannot drift apart again. * expose --ssl-verify/--ssl-ca-certs on the datasource CLI; test the driver kwargs --------- Signed-off-by: Aloys Jehwin <[email protected]> Co-authored-by: Donovan Yohan <[email protected]> Co-authored-by: Aloys Jehwin <[email protected]> Co-authored-by: Upanshi Mittal <[email protected]> Co-authored-by: Shashank Shekhar Singh <[email protected]> Co-authored-by: Mansurshakh Japarov <[email protected]> Co-authored-by: Abhinav Singh <[email protected]>
…1567) (#1694) Every entry is sourced from an actual issue (#1673 census loop, #1683 lock conflicts, #1317 context desync, #1597 silent vector resolve, #1625 stale grammar venv, #1677 JSONC settings, #1680 ignore layering, #1685 arg types, #1689 missing viz edges), with the version each fix shipped in and the still-applicable workarounds. Linked from the README.
What's broken
cgc visualize's live web graph renders no edges on FalkorDB — CGC's default backend on Unix under Python 3.12+.parse_elementinviz/server.pyclassified relationships by class name:FalkorDB's edge class is named
Edge. It matched no branch, is not a dict, and was silently discarded.parse_reldirectly below already reads FalkorDB edges correctly — it was simply never reached.Confirmed against the real
falkordbpackage:Nodes were unaffected — falkordb's node class is named
Node, which the old check listed.Fix
The offline renderer in
cli_helpers.pyalready classified by duck typing and handled this (#1453). Both renderers now share those predicates inutils/graph_shapes.py, so classification cannot drift apart again. Id and property extraction stay duplicated — deliberately out of scope here.New regression test asserts the FalkorDB edge survives
parse_element, plus node/relationship classification across Neo4j, FalkorDB, Kùzu and Ladybug shapes. Reverting onlyviz/server.pymakes it fail with nodes present andedges == [].