Skip to content

v1.0.1 — diagnostics at scale

Choose a tag to compare

@kurushimee kurushimee released this 10 Jun 03:28
ec99b83

The urgent diagnostics-correctness release. A post-v1.0.0 full-project sweep (didOpen every .gd, tally publishDiagnostics) found error-level false positives in ~45–55% of files on real layered projects — all violations of the "never lie" rule, all reproducing on vanilla Godot 4.6.3. v1.0.1 fixes the four families behind that and the long tail the new sweep gate exposed, closes both v1.0.0 follow-ups (#13, #14), and removes the last manual setup step.

Outcome: the Pixelorama sweep reports 0 files with errors (from 133/243 with 1,223 errors); a 2,338-script production project went from 1,051 error-files to 43 — every remaining one independently rejected by Godot itself or using engine-fork-only syntax. Conformance ratchets hold at parser 186/186 and analyzer 300/300. Measured NTFS startup on that project: cold ~10.8 s → 3.5 s, warm ~11.2 s → 2.3 s.

Highlights

  • Cross-file inheritance typing (#15): extends ClassName across files now carries native lineage ($/@onready work) and inherited members (signals, vars, consts, funcs) through a shared, memoized script-chain resolver; self passes compatibility against base classes and native roots.
  • Cross-file member navigation (#13): references find obj.signal.emit(…) sites across files; definition on a member access jumps to the declaration; hover renders var/const member shapes.
  • Zero-config native types (#20): gdls auto-dumps extension_api.json (with project context — GDExtension classes included) into .gdls/ via your Godot binary (godotBinaryPathGDLS_GODOT → PATH), regenerating only when the binary or .gdextension set changes. autoDumpExtensionApi: false opts out.
  • Windows/NTFS startup (#14): the dominant cost was the file watcher's full-tree, handle-per-file arming scan — eliminated (NoCache), with walk-metadata reuse and a discovery-only startup backstop.
  • uid:// autoload script targets resolve (#19); Packed*Array iteration (#17); builtin-constant arithmetic (Vector3.UP * 3.0, #16); cross-file const chains (#18); and a long tail of sweep-found fixes (relative preload paths, autoloads as type annotations, builtin instance members, transform operators, native signals, parameter defaults, X.new() member inference, and more — see the CHANGELOG).

Upgrade note

The on-disk index cache format moved to v2 (interfaces now carry enum values and unnamed-enum hoists) — old caches are ignored automatically; expect one cold start after upgrading.

Full details: CHANGELOG.md.

Install

Download the binary for your platform below, place it on PATH. Native types now configure themselves — see the README quickstart.


Known issues — fixed in v1.0.2: on a machine where no extension_api.json source resolves (fresh install, no Godot on PATH, or the auto-dump fails/times out), v1.0.1 runs with an empty native DB and reports false-positive Could not find type "X" in the current scope. errors for every native class; the synchronous auto-dump can also stall the first request for up to 60 s, and hover on declarations renders an opaque <Script #N> placeholder. Upgrade to v1.0.2.