Skip to content

Materialize Jelly's synthesized anonymous-callback signatures as nodes (edges dangle in Neo4j) #13

Description

@rahlk

Follow-up to #11/#12. Jelly emits edges to synthesized anonymous-callback signatures (<host>:<line:col>, from jellyProvider.synthesize()) that are never added to the symbol table, so the endpoints have no node: in analysis.json the edge references a signature absent from symbol_table, and in Neo4j the Cypher writer resolves both ends with MATCH (:Symbol {signature}) and silently drops the relationship when the node is missing. Fix (Option A, mirroring the existing external-symbol mechanism): mint a thin :Symbol:AnonymousCallable {signature,name,path,start_line,start_column,_module} node keyed by signature — jellyProvider returns a synthesized_callables map alongside its edges (built from data it already has at synth time), the union merges it like external_symbols, project.ts emits the nodes plus a DECLARES containment edge from the host symbol/module so they're wipe-reachable, and the catalog/schema.neo4j.json gain the new label. No REL_TYPES change is needed since CALLS/DECLARES already accept Symbol targets by merge-label. Pre-existing in --call-graph-provider jelly; surfaced by #12 making jelly part of the default.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workingenhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions