Highlights
Phase 8 & 9 type resolution — GitNexus now resolves field/property types and propagates return types through variable bindings. When you write const user = getUser(), GitNexus traces the return type of getUser() to resolve user.name, user.getProfile().bio, and other chained accesses — across all 11 supported languages.
What's Changed
Features
- Phase 8 field/property type resolution — ACCESSES edges with
declaredTypefor field reads/writes (#354) - Phase 9 return-type variable binding — call-result variable binding with unified fixpoint chain propagation (#379)
let x = getUser()→xresolves toUservia return type lookup- Field access:
user.nameresolves through the return type's class definition - Method chaining:
user.getProfile().bioresolves through intermediate return types - 22 new test fixtures, integration tests across all 10 language resolver suites
- ACCESSES edge type with read/write field access tracking (#372)
- Python
enumerate()for-loop support with nested tuple patterns (#356) by @cnighut - MCP tool/resource descriptions updated for Phase 9 ACCESSES edge semantics
Fixes
- MCP server crashes under parallel tool calls (#326, #349) by @RyuzakiH
- Undefined parsing error on languages missing from call routers (#364) by @demirciberk
- Kotlin missing from
Record<SupportedLanguages>maps in web package - Rust
awaitexpression unwrapping in async call-result binding - Docs corrected stale "single-pass" claims → walk+fixpoint architecture
Changed
- Upgrade
@ladybugdb/coreto 0.15.2 — removed segfault workarounds (#374) - Type resolution roadmap overhauled with Phases 10–14 engineering specs
New Contributors
- @RyuzakiH made their first contribution in #349
- @demirciberk made their first contribution in #364
- @cnighut contributed Python enumerate() support in #356
Full Changelog: v1.4.6...v1.4.7