Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
0334587
feat: add Method Resolution Order (MRO) with language-specific rules
magyargergo Mar 10, 2026
fcf90dd
feat: add scope-based symbol resolution replacing raw lookupFuzzy
magyargergo Mar 10, 2026
d0a29a2
refactor: tighten symbol resolution — Tier 3 refuses ambiguous matches
magyargergo Mar 11, 2026
a1403d7
fix: critical language support bugs in import resolution and MRO
magyargergo Mar 11, 2026
cddec8a
feat: add strict multi-language integration tests + fix C/C++ import …
magyargergo Mar 11, 2026
f6510e5
fix: language-gate heritage heuristic, add Swift extension heritage, …
magyargergo Mar 11, 2026
6a7bb88
feat: add Go struct embedding heritage + PackageMap optimization
magyargergo Mar 11, 2026
2ff9118
test: add Kotlin heritage integration tests
magyargergo Mar 11, 2026
0c017d2
feat: extract resolvers, add PHP tests, ambiguous tests for all langu…
magyargergo Mar 11, 2026
afc4812
feat: update integration tests to include resolver tests for multiple…
magyargergo Mar 11, 2026
eff3dbd
fix: address code review — schema gap, Rust impl name, Property OVERR…
magyargergo Mar 11, 2026
fc67a8c
feat: harden CALLS-edge resolution — Phase 0 validation
magyargergo Mar 11, 2026
ad3666a
chore: remove C# build artifacts from fixtures
magyargergo Mar 11, 2026
b8d9182
feat: add call-form discrimination and ownerId to symbol table (Phase 1)
magyargergo Mar 11, 2026
521fa77
feat: constructor/struct-literal resolution across all languages (Pha…
magyargergo Mar 11, 2026
167ac0e
feat: receiver-constrained resolution with integration tests for all …
magyargergo Mar 11, 2026
b7a8db9
feat: NamedImportMap, scoped TypeEnv, broadened signatures + TS rest-…
magyargergo Mar 11, 2026
883b041
fix: alias import resolution, Go multi-assign TypeEnv, dead code removal
magyargergo Mar 12, 2026
7dbdb5c
feat: alias import extraction for Kotlin, Rust, PHP, C# + integration…
magyargergo Mar 12, 2026
802af37
refactor: use SupportedLanguages enum everywhere instead of raw strings
magyargergo Mar 12, 2026
d8c1e1e
fix: tier-ordering bug, re-export chains, PHP grouped imports, Java n…
magyargergo Mar 12, 2026
20eb278
refactor: consolidate alias extraction + add variadic/constructor/sha…
magyargergo Mar 12, 2026
054a344
fix: PHP non-aliased imports, Python node identity, re-export chain d…
magyargergo Mar 12, 2026
005ff3a
feat: Rust non-aliased use bindings, Kotlin non-aliased imports, re-e…
magyargergo Mar 12, 2026
ce347de
fix: skip Kotlin lowercase member imports in NamedImportMap
magyargergo Mar 12, 2026
3b8adb8
fix: skip spurious path-prefix bindings in Rust grouped imports
magyargergo Mar 12, 2026
9f83baa
fix: use startIndex in TypeEnv scope key to prevent same-name method …
magyargergo Mar 13, 2026
3e27dfa
test: document C# namespace-level import limitation in named binding …
magyargergo Mar 13, 2026
57f2010
test: document same-arity overload discrimination limitation in call …
magyargergo Mar 13, 2026
5be58b1
merge: resolve conflicts with origin/main (keep branch stats)
magyargergo Mar 13, 2026
814fac1
perf: parallelize calls/heritage/routes processing in worker path
magyargergo Mar 13, 2026
0227448
docs: improve Promise.all safety comment and walkBindingChain JSDoc
magyargergo Mar 13, 2026
4eb13a7
refactor: extract language-specific processing into modular dispatch …
magyargergo Mar 13, 2026
9633a2b
refactor: extract type binding logic into type-extractors/ directory …
magyargergo Mar 13, 2026
7004cec
refactor: extract config loaders to language-config.ts (Phase 2)
magyargergo Mar 13, 2026
42f959f
Merge branch 'worktree-agent-aaa6551a' into feat/method-resolution-order
magyargergo Mar 13, 2026
839e575
Merge branch 'worktree-agent-ad5f3d99' into feat/method-resolution-order
magyargergo Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
20 changes: 19 additions & 1 deletion .github/workflows/ci-integration.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ jobs:
# on Linux, and its C++ destructors segfault during
# process.exit(). Running each file in its own process lets
# the OS reclaim all resources cleanly.
# pipeline — 3 files: ingestion pipeline + csv, each creates own temp DB
# pipeline — 12 files: ingestion pipeline + csv + 9 resolver tests
# e2e — 2 files: child-process only (spawnSync), no in-process kuzu
# standalone — 4 files: pure logic, no kuzu, no child processes
test-matrix:
Expand All @@ -42,6 +42,15 @@ jobs:
test/integration/pipeline.test.ts
test/integration/csv-pipeline.test.ts
test/integration/parsing.test.ts
test/integration/resolvers/typescript.test.ts
test/integration/resolvers/csharp.test.ts
test/integration/resolvers/cpp.test.ts
test/integration/resolvers/java.test.ts
test/integration/resolvers/python.test.ts
test/integration/resolvers/rust.test.ts
test/integration/resolvers/go.test.ts
test/integration/resolvers/kotlin.test.ts
test/integration/resolvers/php.test.ts
- test-group: e2e
test-glob: >-
test/integration/cli-e2e.test.ts
Expand Down Expand Up @@ -141,6 +150,15 @@ jobs:
test/integration/enrichment.test.ts
test/integration/tree-sitter-languages.test.ts
test/integration/worker-pool.test.ts
test/integration/resolvers/typescript.test.ts
test/integration/resolvers/csharp.test.ts
test/integration/resolvers/cpp.test.ts
test/integration/resolvers/java.test.ts
test/integration/resolvers/python.test.ts
test/integration/resolvers/rust.test.ts
test/integration/resolvers/go.test.ts
test/integration/resolvers/kotlin.test.ts
test/integration/resolvers/php.test.ts

- name: Upload integration coverage
if: always()
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- gitnexus:start -->
# GitNexus — Code Intelligence

This project is indexed by GitNexus as **GitNexus** (1683 symbols, 4407 relationships, 127 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
This project is indexed by GitNexus as **GitNexus** (1747 symbols, 4569 relationships, 130 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.

> If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first.

Expand Down
2 changes: 1 addition & 1 deletion CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<!-- gitnexus:start -->
# GitNexus — Code Intelligence

This project is indexed by GitNexus as **GitNexus** (1683 symbols, 4407 relationships, 127 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.
This project is indexed by GitNexus as **GitNexus** (1747 symbols, 4569 relationships, 130 execution flows). Use the GitNexus MCP tools to understand code, assess impact, and navigate safely.

> If any GitNexus tool warns the index is stale, run `npx gitnexus analyze` in terminal first.

Expand Down
21 changes: 20 additions & 1 deletion gitnexus/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,26 @@ GitNexus supports indexing multiple repositories. Each `gitnexus analyze` regist

## Supported Languages

TypeScript, JavaScript, Python, Java, C, C++, C#, Go, Rust, PHP, Swift
TypeScript, JavaScript, Python, Java, C, C++, C#, Go, Rust, PHP, Kotlin, Swift

### Language Feature Matrix

| Language | Imports | Types | Exports | Named Bindings | Config | Frameworks | Entry Points | Heritage |
|----------|---------|-------|---------|----------------|--------|------------|-------------|----------|
| TypeScript | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| JavaScript | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Python | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| C# | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| Java | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ |
| Kotlin | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ |
| Go | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ | ✓ |
| Rust | ✓ | ✓ | ✓ | ✓ | — | ✓ | ✓ | ✓ |
| PHP | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | — |
| Swift | — | ✓ | ✓ | — | ✓ | ✓ | ✓ | ✓ |
| C | — | ✓ | ✓ | — | — | ✓ | ✓ | ✓ |
| C++ | — | ✓ | ✓ | — | — | ✓ | ✓ | ✓ |

**Imports** — cross-file import resolution · **Types** — type annotation extraction · **Exports** — public/exported symbol detection · **Named Bindings** — `import { X }` tracking · **Config** — language toolchain config parsing (tsconfig, go.mod, etc.) · **Frameworks** — AST-based framework pattern detection · **Entry Points** — entry point scoring heuristics · **Heritage** — class inheritance / interface implementation

## Agent Skills

Expand Down
18 changes: 12 additions & 6 deletions gitnexus/src/core/graph/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,12 +35,14 @@ export type NodeLabel =
| 'Template';


import { SupportedLanguages } from '../../config/supported-languages.js';

export type NodeProperties = {
name: string,
filePath: string,
startLine?: number,
endLine?: number,
language?: string,
language?: SupportedLanguages,
isExported?: boolean,
// Optional AST-derived framework hint (e.g. @Controller, @GetMapping)
astFrameworkMultiplier?: number,
Expand All @@ -61,19 +63,23 @@ export type NodeProperties = {
// Entry point scoring (computed by process detection)
entryPointScore?: number,
entryPointReason?: string,
// Method signature (for MRO disambiguation)
parameterCount?: number,
returnType?: string,
}

export type RelationshipType =
| 'CONTAINS'
| 'CALLS'
| 'INHERITS'
| 'OVERRIDES'
export type RelationshipType =
| 'CONTAINS'
| 'CALLS'
| 'INHERITS'
| 'OVERRIDES'
| 'IMPORTS'
| 'USES'
| 'DEFINES'
| 'DECORATES'
| 'IMPLEMENTS'
| 'EXTENDS'
| 'HAS_METHOD'
| 'MEMBER_OF'
| 'STEP_IN_PROCESS'

Expand Down
Loading
Loading