v1.6.9

abhigyanpatwari/GitNexusv1.6.9Jul 4, 2026by github-actions[bot]

AI Summary

Focuses on multi-repo API tracing with cross-repo call traces over the PDG, expanded taint modeling for Java and Python, and improved search capabilities including CJK bigram segmentation.

Key Highlights

  • Cross-repo call trace over the PDG for `group` commands
  • HTTP handler resolution across files and inline
  • Taint source/sink models added for Java and Python
  • Workspace index now follows the checked-out branch
  • Opt-in CJK bigram segmentation for FTS search

Breaking Changes

  • Index metadata renamed to `gitnexus.json` (dual-write compatible)
  • Re-indexing required to pick up workspace-index and Route-identity changes

New Features

  • Spring DI resolver for `@Autowired List<T>` injection
  • Compact, description-forward embedding text
  • Route nodes get `(method, url)` identity
  • Nuxt/Nitro auto-imports resolved
  • Doc comments searchable across all languages
  • Cross-file and inline HTTP handler resolution
  • Java and Python conservative taint models
  • Django route extraction for multi-repo
  • Kotlin Spring provider parity

Full Release Notes

# GitNexus v1.6.9

> **The multi-repo API-tracing release.** `group` now resolves HTTP routes and consumers across files, frameworks, and repos — including a cross-repo call trace over the PDG — while the default workspace index quietly follows whatever branch you have checked out, and taint modeling rounds out Java and Python.

## ✨ Highlights

- 🌐 **Cross-repo call trace over the PDG** — `group` can trace the shortest call path across a `ContractLink` between two repositories, not just within one. (#2269)
- 🔗 **HTTP handler resolution goes cross-file and inline for `group`** — named handlers defined in another file, and inline provider handlers resolved by call-site line. (#2275, #2277, #2276, #2282)
- 🍃 **HTTP route/consumer extraction rounded out** — Java and Kotlin HTTP consumer extraction expanded with Kotlin Spring provider parity, Django route extraction for multi-repo `group`, and a Spring DI resolver for `@Autowired List<T>` injection. (#2268, #2254, #1836, #2200)
- 🌱 **Taint source/sink models added for Java and Python**, alongside the intra/inter-procedural taint engine shipped in 1.6.8. (#2267, #2253)
- 🌿 **The default (non-multi-branch) workspace index now follows the checked-out branch** instead of staying pinned to whichever branch it was created on. (#2364)
- 🔍 **Search gets sharper** — opt-in CJK bigram segmentation for FTS, a configurable FTS stemmer and vector distance threshold, and more compact, description-forward embedding text. (#2339, #2307, #2330, #2333, #2334)

---

## 🚀 Added

- **Flat workspace index follows the checked-out branch** — the default (non-multi-branch) index now tracks `git checkout` instead of staying pinned to the branch it was created on (#2364)
- **Spring DI resolver for `@Autowired List<T>` injection** — collection-typed constructor/field injection resolves to all matching bean implementations (#2200)
- **Opt-in CJK bigram segmentation for FTS search** — improves search relevance over Chinese/Japanese/Korean text (#2339)
- **Compact, description-forward embedding text** — shorter, more targeted embedding input for symbol search (#2333, #2334)
- **`Route` nodes get a `(method, url)` identity** — distinct HTTP verbs on the same URL are no longer merged into one node (#2289, #2302)
- **Nuxt/Nitro auto-imports resolved in the TypeScript scope resolver** (#2026)
- **Doc comments searchable across all languages** via FTS (#2286)
- **Cross-file and inline HTTP handler resolution for `group`** — named handlers across files (#2275, #2277) and inline provider handlers via call-site line (#2276, #2282)
- **Cross-repo call trace using PDG** for `group` (#2269)
- **Java and Python conservative taint source/sink models** (#2267, #2253)
- **Java and Kotlin HTTP consumer extraction expanded**, with Kotlin Spring provider parity (#2268, #2254, #1888)
- **Django route extraction for multi-repo `group`** (#1836)
- **Kilo Code + GitNexus MCP setup guide** (#2259)

## 🐛 Fixed

- **Index metadata renamed to `gitnexus.json`** with dual-write compatibility for existing indexes (#2363)
- **Java call graph** — cast-wrapped and `this.method()` receivers now resolve call edges (#2357)
- **Icon imports consolidated** — fixes stale refs and a package-name collision (#2343)
- **Embeddings** — CUDA 13 hosts now use a system-matched `onnxruntime-node` build for GPU acceleration (#2341)
- **Ladybug single-writer transaction contention** now retries instead of failing (#2342)
- **`--limit` CLI flag** — i18n-safe, guards 0/negative values, and truncates at the correct path (#2310)
- **Ladybug pinned to 0.18.0**, validating the multi-writer deadlock fix (#2340)
- **Full text file content stays searchable** in the FTS index (#2323)
- **Vector distance threshold made configurable** (#2330)
- **LadybugDB-incompatible multi-label Cypher replaced** in `group` queries (#2325, #2327)
- **Windows `@group` reopen** — read-only bridge handle is cached to fix repeated reopen failures (#2274, #2313)
- **FTS stemmer made configurable** (#2307)
- **FastAPI `APIRouter` constructor prefixes applied** to nested routes (#2312)
- **MCP `api_impact` response shape stabilized** for same-URL multi-verb routes (#2308, #2309)
- **Generator function declarations indexed** (#2305)
- **FTS indexes the `description` field** so doc comments are keyword-searchable (#2300)
- **Spring interface-inherited routes resolved** (#2288, #2290)
- **Spring method-level array-form route mappings recognized** (#2281)
- **MCP `impact` callgraph mode tolerates adapter-materialized `line:0`** (#2279, #2283)
- **Kotlin `fun interface` extraction** via a tree-sitter-kotlin re-vendor (#2271)
- **`--pdg analyze` double-free fixed** — LadybugDB close-destructor crash avoided and connection serialization hardened (#2264)

## 🔧 Changed

- **Root README restructured and all READMEs fact-checked** (#2360)
- **Bundled skill reference drift fixed** in docs (#2362)

## ⚡ Performance

- **`group`/HTTP route extraction skips source parsing** for files already covered by the graph (#2138 Part 2, #2265)

<details>
<summary><b>📦 Chore / Dependencies</b> — 20 dependency &amp; CI-action bumps</summary>

- **gitnexus runtime** — `node-addon-api` 8.8.0 → 8.9.0 (#2366), `commander` 14.0.3 → 15.0.0 (#2322), `onnxruntime-node` (#2321), `onnxruntime-common` (#2320), `uuid` 14.0.0 → 14.0.1 (#2285)
- **gitnexus dev** — `@types/node` (#2273)
- **gitnexus-web** — `lucide-react` (#2349), `@langchain/langgraph` (#2344), `@playwright/test` (#2346), `@langchain/openai` (#2348, #2291), `@langchain/google-genai` (#2345), `langchain` 1.4.4 → 1.4.6 (#2294), `@vitest/coverage-v8` (#2297), `lru-cache` 11.3.6 → 11.5.1 (#2298), `@langchain/core` (#2293)
- **CI actions** — `softprops/action-gh-release` 3.0.0 → 3.0.1 (#2352), `actions/cache` 5.0.5 → 6.1.0 (#2351), `actions/setup-python` 6.2.0 → 6.3.0 (#2350), `actions/checkout` 6.0.3 → 7.0.0 (#2292), `release-drafter/release-drafter` 7.3.1 → 7.4.0 (#2295)

</details>

---

## 📥 Upgrade

```bash
npm install -g gitnexus@1.6.9
```

Then re-index to pick up the workspace-index and Route-identity changes:

```bash
gitnexus analyze
```

**Full changelog:** [`v1.6.8...v1.6.9`](https://github.com/abhigyanpatwari/GitNexus/compare/v1.6.8...v1.6.9)