Skip to content

v1.4.5

Choose a tag to compare

@github-actions github-actions released this 18 Mar 06:35
9980974

Highlights

This release brings a major type resolution overhaul (Phases 4–6), Ruby language support, a database migration from KuzuDB to LadybugDB, and significant performance optimizations to the ingestion pipeline.


Type Resolution System (Phases 4–6)

The type resolution pipeline now covers 12 languages with deep support for receiver-constrained call resolution:

  • Phase 4 — Nullable unwrapping, for-loop element typing, assignment chain propagation (#310)
  • Phase 5 — Chained method calls, pattern matching, class-as-receiver dispatch (#315)
  • Phase 6 — Container descriptors (Map keys vs values), recursive pattern binding (C# is, Kotlin when/is), for-loop Tier 1c across all languages (#318)
    • C# nested member foreach (this.data.Values)
    • C++ pointer dereference range-for (*usersPtr)
    • Java this.data.values() field access
    • PHP $this->property foreach member access
    • Position-indexed branch-local narrowing for Kotlin smart casts

Performance Optimizations

  • Worker pool threshold — skip thread pool for small repos (<15 files or <512KB), saving 100–400ms
  • AST walk pruning — SKIP_SUBTREE_TYPES skips leaf-only subtrees (strings, comments, literals)
  • Pre-computed interestingNodeTypes — single Set.has() replaces 3 checks per AST node
  • fastStripNullable — fast-path nullable check for simple identifiers (90%+ of lookups)
  • extractFunctionName refactor — replace .children?.find() with manual for loops to eliminate array allocations
  • skipGraphPhases pipeline option — skip MRO/community/process phases for faster test runs

New Features

  • Ruby language support for CLI and web (#111) by @candidosales
  • TypeEnvironment API with constructor inference, self/this/super/base/parent resolution (#274)
  • Return type inference with JSDoc, PHPDoc, and YARD doc-comment parsing (#284)
  • .gitignore and .gitnexusignore support during file discovery (#231) by @ivkond and @jecanore
  • Codex MCP configuration documentation (#236) by @ZakAnun
  • Type resolution system documentation with architecture guide and roadmap

Infrastructure

  • Migrated from KuzuDB to LadybugDB v0.15 (#275) by @candidosales
  • hookTimeout: 120000 in vitest config for CI reliability

Bug Fixes

  • Same-directory Python import resolution (#328) by @cnighut
  • Ruby method-level call resolution, HAS_METHOD edges, and dispatch table (#278)
  • Dynamic agent skill discovery and installation in CLI (#270) by @cnighut
  • Template string incorrectly included in AST pruning set (contains interpolated expressions)

What's Changed

🚀 Features

⚡ Performance

  • perf: worker pool threshold, AST walk pruning, fastStripNullable, extractFunctionName refactor

🔧 Infrastructure

🐛 Bug Fixes

New Contributors

Full Changelog: abhigyanpatwari/GitNexus@v1.4.0...v1.4.5