The v2 Neo4j build dropped decorator projection entirely (1.x had :Decorator nodes + DECORATED_BY edges; the v2 schema has neither, only a legacy-prune mention in bolt.ts). The python-sdk's TS bulk accessors (python-sdk#298, shipped on the 1.4 line as 1.5.0) need decorator names on the read-only Neo4j backend for get_callables_overview's decorators field and get_decorated_callables(markers). Cheapest shape, mirroring codeanalyzer-python: persist decorators: string[] as a TSCallable node property — no new label or rel needed. Until this lands, the SDK's 2.0 forward-port degrades honestly (decorators=[] in overviews, get_decorated_callables empty on Neo4j; in-memory unaffected).
The v2 Neo4j build dropped decorator projection entirely (1.x had :Decorator nodes + DECORATED_BY edges; the v2 schema has neither, only a legacy-prune mention in bolt.ts). The python-sdk's TS bulk accessors (python-sdk#298, shipped on the 1.4 line as 1.5.0) need decorator names on the read-only Neo4j backend for get_callables_overview's decorators field and get_decorated_callables(markers). Cheapest shape, mirroring codeanalyzer-python: persist decorators: string[] as a TSCallable node property — no new label or rel needed. Until this lands, the SDK's 2.0 forward-port degrades honestly (decorators=[] in overviews, get_decorated_callables empty on Neo4j; in-memory unaffected).