mirror of
https://github.com/abhigyanpatwari/GitNexus.git
synced 2026-10-09 03:17:54 +00:00
4 KiB
4 KiB
Changelog
All notable changes to GitNexus will be documented in this file.
[1.4.6] - 2026-03-18
Added
- Phase 7 type resolution — return-aware loop inference for call-expression iterables (#341)
ReturnTypeLookupinterface withlookupReturnType/lookupRawReturnTypesplitForLoopExtractorContextcontext object replacing positional(node, env)signature- Call-expression iterable resolution across 8 languages (TS/JS, Java, Kotlin, C#, Go, Rust, Python, PHP)
- PHP
$this->propertyforeach via@varclass property scan (Strategy C) - PHP
function_call_expressionandmember_call_expressionforeach paths extractElementTypeFromStringas canonical raw-string container unwrapper inshared.tsextractReturnTypeNamededuplicated fromcall-processor.tsintoshared.ts(137 lines removed)SKIP_SUBTREE_TYPESperformance optimization with documentedtemplate_stringexclusionpendingCallResultsinfrastructure (dormant — Phase 9 work)
Fixed
- impact: return structured error + partial results instead of crashing (#345)
- impact: add
HAS_METHODandOVERRIDEStoVALID_RELATION_TYPES(#350) - cli: write tool output to stdout via fd 1 instead of stderr (#346)
- postinstall: add permission fix for CLI and hook scripts (#348)
- workflow: use prefixed temporary branch name for fork PRs to prevent overwriting real branches
- test: add
--repoto CLI e2e tool tests for multi-repo environment - php: add
declaration_listtype guard onfindClassPropertyElementTypefallback - docs: correct
pendingCallResultsdescription in roadmap and system docs
Chore
- Add
.worktrees/to.gitignore
[1.4.5] - 2026-03-17
Added
- Ruby language support for CLI and web (#111)
- TypeEnvironment API with constructor inference, self/this/super resolution (#274)
- Return type inference with doc-comment parsing (JSDoc, PHPDoc, YARD) and per-language type extractors (#284)
- Phase 4 type resolution — nullable unwrapping, for-loop typing, assignment chain propagation (#310)
- Phase 5 type resolution — chained calls, pattern matching, class-as-receiver (#315)
- Phase 6 type resolution — for-loop Tier 1c, pattern matching, container descriptors, 10-language coverage (#318)
- Container descriptor table for generic type argument resolution (Map keys vs values)
- Method-aware for-loop extractors with integration tests for all languages
- Recursive pattern binding (C#
ispatterns, Kotlinwhen/issmart casts) - Class field declaration unwrapping for C#/Java
- PHP
$this->propertyforeach member access - C++ pointer dereference range-for
- Java
this.data.values()field access patterns - Position-indexed when/is bindings for branch-local narrowing
- Type resolution system documentation with architecture guide and roadmap
.gitignoreand.gitnexusignoresupport during file discovery (#231)- Codex MCP configuration documentation in README (#236)
skipGraphPhasespipeline option to skip MRO/community/process phases for faster test runshookTimeout: 120000in vitest config for CI beforeAll hooks
Changed
- Migrated from KuzuDB to LadybugDB v0.15 (#275)
- Dynamically discover and install agent skills in CLI (#270)
Performance
- Worker pool threshold — skip worker creation for small repos (<15 files or <512KB total)
- AST walk pruning via
SKIP_SUBTREE_TYPESfor leaf-only nodes (string, comment, number literals) - Pre-computed
interestingNodeTypesset — single Set.has() replaces 3 checks per AST node fastStripNullable— skip full nullable parsing for simple identifiers (90%+ case)- Replace
.children?.find()with manual for loops inextractFunctionNameto eliminate array allocations
Fixed
- Same-directory Python import resolution (#328)
- Ruby method-level call resolution, HAS_METHOD edges, and dispatch table (#278)
- C++ fixture file casing for case-sensitive CI
- Template string incorrectly included in AST pruning set (contains interpolated expressions)