Skip to content

Merge 1.5.0 to main v2 - #1589

Open
nazgull30 wants to merge 37 commits into
colbymchenry:mainfrom
nazgull30:merge_1.5.0_to_main_v2
Open

Merge 1.5.0 to main v2#1589
nazgull30 wants to merge 37 commits into
colbymchenry:mainfrom
nazgull30:merge_1.5.0_to_main_v2

Conversation

@nazgull30

Copy link
Copy Markdown

No description provided.

KirisamaMarisa and others added 30 commits May 24, 2026 12:25
Adds first-class Godot project indexing for CodeGraph, covering GDScript
scripts and Godot scene/resource (.tscn/.tres) files:

- GDScript: classes, methods, variables, constants, signals, exports,
  annotations, preload/load references, node lookups
- Scenes/resources: scene components as graph nodes, ExtResource/SubResource
  ids, attached scripts, instanced scenes, signal connections
- Resolution: res:// paths, $/% node paths, get_node/find_child lookups,
  dynamic node-name constants, scene instance callers
- Agent instructions updated for Godot symbol queries

Co-authored-by: KirisamaMarisa <52296315+KirisamaMarisa@users.noreply.github.com>
- Fix references to 'normalizedSymbol' -> 'symbol' (PR code leaked into HEAD path)
- Fix references to 'referencePath' -> 'ref.referenceName' (PR code leaked into HEAD path)
- Remove unused normalizePathReference function
- Fix test assertions to match HEAD output format (StatusIconTemplate not _template)
…Name refs, preload/load resolution, call()/call_deferred(), tween paths, @tool metadata
…ath edges, add_to_group/remove_from_group, uid:// parsing, scene inheritance edges, codegraph_references tool, LimboAI detection
Symbols/scopes/signatures from the vendored grammar; Godot reference
passes (node paths, signal wiring, Callable targets, const-string
propagation) ported line-scans preserving the previous output contract.
Not yet routed — wiring lands in the next commit.
Register the declarative extractor in EXTRACTORS, treat gdscript as a
vendored GrammarLanguage (ABI-14 wasm), and drop the custom-extractor
routing branch. godot_resource (.tscn/.tres) keeps its custom extractor.
…er classes

New AST-only capabilities: static flags, lambda bodies produce no symbol
nodes while their calls still resolve, enum_member nodes (additive), and
no symbol extraction from code-like text inside strings.
nazgull30 and others added 7 commits August 22, 2026 12:52
- descend into unclaimed compound statements (locals nested in
  if/for/match bodies were dropped; beehave -727 variables)
- constructor_definition: func _init() parsed as its own node type —
  extract as method '_init' (121 files missed it)
- funcs in scripts without class_name/extends keep kind 'function'
- emit extends targets only from the AST walk; the line-pass regex
  double-counted every extends (+160)
- inline 'class_name X extends Y': extends nests inside
  class_name_statement — emit from the root scan
Superseded by the tree-sitter declarative extractor. Parity proven on
beehave (322 .gd) and dialogic (270 .gd): node/edge counts within ±0.4%,
references identical, +enum_member coverage, and the old extractor's
phantom-method false positives inside code-template strings are gone.
[autoload] entries in project.godot now emit marker components whose
signature carries the script's res:// path. The Godot framework resolver
maps bare global receivers (GameState.reset()) onto the script's class
or same-name method; methods that don't exist there stay unresolved
(silent beats wrong).
Three dynamic-dispatch channels so Godot flows connect end-to-end:
- class → _ready/_process/_input/... synthesized calls edges (engine
  virtuals have no static caller anywhere)
- has_method("x") joins call()/Callable() in the string-dispatch family
- .tscn [connection] wiring now carries the to-node's script path and a
  synthesizer links button press → handler method across files (unique
  candidate only — silent beats wrong)
# Conflicts:
#	.cursor/rules/codegraph.mdc
#	.gitignore
#	README.md
#	__tests__/extraction.test.ts
#	__tests__/frameworks-integration.test.ts
#	__tests__/mcp-tool-allowlist.test.ts
#	__tests__/resolution.test.ts
#	src/extraction/grammars.ts
#	src/extraction/languages/index.ts
#	src/mcp/server-instructions.ts
#	src/mcp/tools.ts
#	src/resolution/callback-synthesizer.ts
#	src/resolution/frameworks/index.ts
#	src/resolution/name-matcher.ts
#	src/types.ts
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants