GitNexus: The Zero-Server Code Intelligence Engine - GitNexus is a client-side knowledge graph creator that runs entirely in your browser. Drop in a git repository (Github, Gitlab, Azure, Local) or ZIP file, and get an interactive knowledge graph with a built in Graph RAG Agent. Perfect for code exploration
This report presents the forensic synthetic code analysis of abhigyanpatwari/GitNexus, a TypeScript project with 44,095 GitHub stars. SynthScan v2.0 examined 540,083 lines of code across 1823 source files, recording 2780 pattern matches distributed across 21 syntactic categories. The overall adjusted score of 11.3 places this repository in the Low AI signal band.
The scanner applied 160+ deterministic lexical heuristics, multi-line block detectors, abstract syntax tree depth profilers, and a cross-file Jaccard similarity matrix to construct a statistically normalised synthetic code estimate. All matches are individually weighted by severity coefficient and contextual multiplier before summation, and the resulting headline score is temporally discounted to account for the repository's development history relative to the commercial emergence of large language model coding tooling (November 2022 onward).
This chart maps the temporal evolution of the adjusted synthetic code score across successive scan runs. An upward trajectory indicates ongoing incorporation of AI-generated code or expanding LLM-assisted scaffolding; a stable or declining trajectory may reflect active human refactoring, code removal, or the adoption of stricter authorship policies. The dashed secondary line (right axis) independently tracks total raw pattern hit count, which can diverge from the normalised score when codebase size changes significantly between scans.
Classifies detected patterns by their diagnostic confidence and structural impact. CRITICAL patterns (coefficient 10) represent definitive synthetic signatures — hallucinated imports, explicit LLM attribution metadata — virtually never produced by human authors. HIGH (5) indicates strong structural tells such as cross-file repetition or cross-linguistic idioms. MEDIUM (2) covers recognisable conversational padding and AI-specific vocabulary. LOW (1) captures subtle indicators like tautological comments and generic boilerplate that require density to carry independent signal.
This horizontal bar chart decomposes the repository's raw synthetic code score by top-level directory, allowing you to pinpoint precisely which modules or components carry the highest AI authorship density. Directories with disproportionately high scores relative to their size warrant targeted manual review: concentrated AI signatures often trace back to mass-generated configuration layers, auto-ported test suites, LLM-scaffolded boilerplate classes, or entire subsystems authored under heavy copilot assistance. Use this view to prioritise your human code-review effort.
The scanner identified 2780 distinct pattern matches across 21 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a statistically significant AI authorship indicator. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the diagnostic confidence level (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — comment-context matches receive a ×1.5 weight because LLMs systematically over-annotate. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier as dense clusters constitute far stronger evidence of synthetic authorship than isolated hits.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | gitnexus-shared/src/index.ts | 31 | // ─── Scope-based resolution — RFC #909 (Ring 1 #910) ──────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/index.ts | 31 | // ─── Scope-based resolution — RFC #909 (Ring 1 #910) ──────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/graph/types.ts | 159 | // ── Taint/PDG substrate (issue #2080) ──────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/graph/types.ts | 159 | // ── Taint/PDG substrate (issue #2080) ──────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/integrations/circuit-breaker.ts | 250 | // ─── Per-process registry ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …tnexus-shared/src/scope-resolution/resolve-type-ref.ts | 45 | // ─── Public contracts ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tnexus-shared/src/scope-resolution/resolve-type-ref.ts | 58 | // ─── Strict policy constants ──────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tnexus-shared/src/scope-resolution/resolve-type-ref.ts | 98 | // ─── Main entry point ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/module-scope-index.ts | 57 | // ─── Internal ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 28 | // ─── §2.1 Type aliases ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 45 | // ─── Range + Capture (parser-agnostic) ────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 78 | // ─── Hook input/output types (RFC §5.2) ───────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 286 | // ─── §2.4 ImportEdge ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 321 | // ─── §2.3 BindingRef ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 338 | // ─── §2.5 TypeRef ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 366 | // ─── §2.2 Scope ───────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 396 | // ─── §2.6 Resolution + ResolutionEvidence ─────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 437 | // ─── §2.7 Reference + ReferenceIndex ──────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/types.ts | 465 | // ─── §4.1 LookupParams ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s-shared/src/scope-resolution/method-dispatch-index.ts | 33 | // ─── Public contracts ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s-shared/src/scope-resolution/method-dispatch-index.ts | 112 | // ─── Builder ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …s-shared/src/scope-resolution/method-dispatch-index.ts | 164 | // ─── Internal ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 19 | // ─── Where-found signals (visibility) ───────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 31 | // ─── Scope-chain deduction (per-hop) ────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 35 | // ─── Receiver-type-binding signal (decays by MRO depth) ─────────────────── | COMMENT |
| MEDIUM⚡ | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 44 | // ─── Corroborating signals ──────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 51 | // ─── Arity compatibility (from `provider.arityCompatibility`) ───────────── | COMMENT |
| MEDIUM⚡ | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 60 | // ─── Global fallback (only when nothing lexically visible) ──────────────── | COMMENT |
| MEDIUM⚡ | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 66 | // ─── Degraded signals ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …tnexus-shared/src/scope-resolution/evidence-weights.ts | 70 | // ─── Unresolved-import cap (multiplicative, applied per-signal) ─────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/position-index.ts | 87 | // ─── Internals ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 37 | // ─── Public contracts ─────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 168 | // ─── Entry point ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 314 | // ─── Internal: edge drafting (phase 0) ────────────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 430 | // ─── Internal: per-edge finalization (phase 3) ───────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 511 | // ─── Internal: re-export closure (phase 2.5) ─────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 821 | // ─── Internal: wildcard expansion (phase 4) ──────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 863 | // ─── Internal: bindings materialization (phase 5) ─────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 929 | // ─── Internal: Tarjan SCC ────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …us-shared/src/scope-resolution/qualified-name-index.ts | 75 | // ─── Internal ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/def-index.ts | 47 | // ─── Internal ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/scope-tree.ts | 31 | // ─── Public contract ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/scope-tree.ts | 50 | // ─── Build errors ─────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/scope-tree.ts | 73 | // ─── Builder ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/scope-tree.ts | 86 | // ── Pass 1: collect by id + duplicate check ─────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/scope-tree.ts | 97 | // ── Pass 2: validate parent pointers + build children buckets ───────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/scope-tree.ts | 137 | // ── Pass 3: sibling-overlap check ───────────────────────────────────── | COMMENT |
| MEDIUM | gitnexus-shared/src/scope-resolution/scope-tree.ts | 165 | // ─── Internals ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …xus-shared/src/scope-resolution/registries/evidence.ts | 29 | // ── Where-found ──────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …xus-shared/src/scope-resolution/registries/evidence.ts | 37 | // ── Type-binding path ────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …xus-shared/src/scope-resolution/registries/evidence.ts | 41 | // ── Corroborators ────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …xus-shared/src/scope-resolution/registries/evidence.ts | 47 | // ── Arity ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM⚡ | …xus-shared/src/scope-resolution/registries/evidence.ts | 50 | // ── Dynamic-unresolved passthrough ───────────────────────────────────── | COMMENT |
| MEDIUM | …xus-shared/src/scope-resolution/registries/evidence.ts | 65 | // ── Where-found visibility ───────────────────────────────────────────── | COMMENT |
| MEDIUM | …xus-shared/src/scope-resolution/registries/evidence.ts | 92 | // ── Type-binding / MRO path ──────────────────────────────────────────── | COMMENT |
| MEDIUM | …xus-shared/src/scope-resolution/registries/evidence.ts | 101 | // ── Owner match (explanatory for debug) ──────────────────────────────── | COMMENT |
| MEDIUM | …xus-shared/src/scope-resolution/registries/evidence.ts | 115 | // ── Arity ────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …xus-shared/src/scope-resolution/registries/evidence.ts | 130 | // ── Dynamic-unresolved (degraded signal) ─────────────────────────────── | COMMENT |
| MEDIUM | …xus-shared/src/scope-resolution/registries/evidence.ts | 153 | // ─── Internal ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …exus-shared/src/scope-resolution/registries/context.ts | 24 | // ─── Provider hooks consumed by the registries ───────────────────────────── | COMMENT |
| 1381 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …s-shared/src/scope-resolution/registries/tie-breaks.ts | 46 | export function compareByConfidenceWithTiebreaks( | CODE |
| LOW | …-shared/src/scope-resolution/registries/lookup-core.ts | 377 | function seedFromOwnerScopedContributor( | CODE |
| LOW | gitnexus/test/unit/skip-git-cli.test.ts | 196 | function expectCoolioRegistryEntry() { | CODE |
| LOW | …exus/test/unit/dockerfile-runtime-asset-parity.test.ts | 44 | function runtimeStageCopiedSources(dockerfile: string): string[] { | CODE |
| LOW | …exus/test/unit/dockerfile-runtime-asset-parity.test.ts | 320 | function shippedAssetRequiredAssets(copiedSources: string[]): { asset: string; source: string }[] { | CODE |
| LOW | gitnexus/test/unit/hooks.test.ts | 122 | function resolveHostGuardForReapingTests(): string | null { | CODE |
| LOW | gitnexus/test/unit/hooks.test.ts | 144 | function writeSelfTestingGuardWithMarkers( | CODE |
| LOW | gitnexus/test/unit/eval-server-bind-restriction.test.ts | 11 | function isEvalServerBindRestriction(stderr: string): boolean { | CODE |
| LOW | gitnexus/test/unit/onnxruntime-node-resolver.test.ts | 457 | function loadRedirectActiveResolver(registerHooksSpy: unknown) { | CODE |
| LOW | gitnexus/test/unit/receiver-extraction.test.ts | 52 | function extractExpressRouteReceivers(parser: Parser, code: string) { | CODE |
| LOW | gitnexus/test/unit/cli-index-help.test.ts | 76 | function extractRegisteredHelpDescriptions(): string[] { | CODE |
| LOW | gitnexus/test/unit/tree-sitter-queries.test.ts | 21 | function capturedDefinitionFunctionNames( | CODE |
| LOW | gitnexus/test/unit/group/http-route-extractor.test.ts | 2820 | def unrelated_scope_collision(): | CODE |
| LOW | gitnexus/test/unit/group/http-route-extractor.test.ts | 2824 | def module_scope_shadow_collision(): | CODE |
| LOW | gitnexus/test/unit/call-routing/ruby.test.ts | 54 | function makeRequireCallNodeNoContent(): MockNode { | CODE |
| LOW | gitnexus/test/integration/extension-binary-real.test.ts | 50 | function resolveInstalledFtsExtension(): string | null { | CODE |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 185 | function isEvalServerBindRestriction(stderr: string): boolean { | CODE |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 209 | function runEvalServerHostFlagTest( | CODE |
| LOW | …exus/test/integration/impact-pdg-fullchain-e2e.test.ts | 76 | async function persistFixtureGraphWithCallees(): Promise<{ | CODE |
| LOW | gitnexus/test/integration/go-pipeline-benchmark.test.ts | 254 | function generateGoQuarantineFixture( | CODE |
| LOW | gitnexus/test/integration/go-pipeline-benchmark.test.ts | 474 | function generateSyntheticInterfaceData(interfaceCount: number, structCount: number): ParsedFile[] { | CODE |
| LOW | gitnexus/test/integration/cfg/pipeline-pdg.test.ts | 378 | function cdgSourcedInHazardFunction(result: PipelineResult, hazardMarker: string): boolean { | CODE |
| LOW | gitnexus/test/helpers/literal-collectors.ts | 643 | function collectResolutionLayerLiterals(): ScanResult { | CODE |
| LOW | gitnexus/test/helpers/literal-collectors.ts | 772 | async function collectRegistryQueryProbes(): Promise<RegistryQueryProbe[]> { | CODE |
| LOW | gitnexus/src/core/tree-sitter/safe-parse.ts | 144 | export function resetDegradedParseCounter(): void { | CODE |
| LOW | gitnexus/src/core/ingestion/call-processor.ts | 71 | export function buildExportedTypeMapFromGraph( | CODE |
| LOW | gitnexus/src/core/ingestion/call-processor.ts | 111 | function resolveControllerByQualifiedName( | CODE |
| LOW | gitnexus/src/core/ingestion/call-processor.ts | 280 | export function resolveRouteHandlerSymbols( | CODE |
| LOW | gitnexus/src/core/ingestion/import-target-adapter.ts | 68 | export function buildImportTargetWorkspace( | CODE |
| LOW | gitnexus/src/core/ingestion/import-target-adapter.ts | 92 | export function resolveImportTargetAcrossLanguages( | CODE |
| LOW | gitnexus/src/core/ingestion/ts-js-hoc-utils.ts | 94 | export function deriveDefaultExportHocName(filePath: string): string { | CODE |
| LOW | gitnexus/src/core/ingestion/ts-js-hoc-utils.ts | 111 | export function isDefaultExportHocFunctionNode(node: SyntaxNode): boolean { | CODE |
| LOW | gitnexus/src/core/ingestion/ts-js-hoc-utils.ts | 121 | export function isBlockedDefaultExportHoc(node: SyntaxNode): boolean { | CODE |
| LOW | gitnexus/src/core/ingestion/csharp-namespace-gate.ts | 67 | export function csharpSuffixFallbackAllowed( | CODE |
| LOW | gitnexus/src/core/ingestion/csharp-namespace-gate.ts | 96 | export function importAlignsWithDeclaredNamespaces( | CODE |
| LOW | gitnexus/src/core/ingestion/language-config.ts | 208 | function getCsharpStructureScannerFactory(): Promise<() => CsharpStructureLineScanner> { | CODE |
| LOW | gitnexus/src/core/ingestion/language-config.ts | 405 | async function collectDeclaredNamespaces( | CODE |
| LOW | gitnexus/src/core/ingestion/mro-processor.ts | 524 | function emitMethodImplementsEdges( | CODE |
| LOW | gitnexus/src/core/ingestion/scope-extractor.ts | 544 | function buildDefFromDeclarationMatch( | CODE |
| LOW | gitnexus/src/core/ingestion/scope-extractor.ts | 624 | function parseJsonParameterTypeClassesCapture( | CODE |
| LOW | gitnexus/src/core/ingestion/scope-extractor.ts | 677 | function parseJsonStringArrayCapture( | CODE |
| LOW | gitnexus/src/core/ingestion/vue-sfc-extractor.ts | 93 | function collectBareEmitEventNames(input: string): string[] { | CODE |
| LOW | gitnexus/src/core/ingestion/vue-sfc-extractor.ts | 303 | export function extractTemplateComponents(vueContent: string): string[] { | CODE |
| LOW | gitnexus/src/core/ingestion/vue-sfc-extractor.ts | 386 | export function extractComponentEventBindings(vueContent: string): ComponentEventBinding[] { | CODE |
| LOW | gitnexus/src/core/ingestion/vue-sfc-extractor.ts | 445 | export function extractNativeElementEventHandlers(vueContent: string): string[] { | CODE |
| LOW | gitnexus/src/core/ingestion/vue-sfc-extractor.ts | 512 | export function extractTemplateAttributeBindings(vueContent: string): string[] { | CODE |
| LOW | gitnexus/src/core/ingestion/vue-sfc-extractor.ts | 549 | export function extractVueTemplateEdgeData( | CODE |
| LOW | gitnexus/src/core/ingestion/type-extractors/c-cpp.ts | 511 | function inferBracedInitLiteralType(node: SyntaxNode): string | undefined { | CODE |
| LOW | gitnexus/src/core/ingestion/type-extractors/swift.ts | 44 | function swiftNavigationSuffixName(node: SyntaxNode | null): string | undefined { | CODE |
| LOW | gitnexus/src/core/ingestion/type-extractors/swift.ts | 478 | function extractSwiftElementTypeFromTypeNode(typeNode: SyntaxNode): string | undefined { | CODE |
| LOW | gitnexus/src/core/ingestion/type-extractors/shared.ts | 163 | export function resolveIterableElementType( | CODE |
| LOW | gitnexus/src/core/ingestion/type-extractors/shared.ts | 616 | export function extractElementTypeFromString( | CODE |
| LOW | gitnexus/src/core/ingestion/type-extractors/dart.ts | 284 | function extractDartElementTypeFromTypeNode(typeNode: SyntaxNode): string | undefined { | CODE |
| LOW | …s/src/core/ingestion/class-extractors/configs/c-cpp.ts | 10 | function shouldSkipCppTemplateDuplicateCapture( | CODE |
| LOW | …s/src/core/ingestion/class-extractors/configs/c-cpp.ts | 26 | function extractCppTemplateArgumentsWithFallback( | CODE |
| LOW | …us/src/core/ingestion/call-extractors/configs/c-cpp.ts | 18 | function extractCppOperatorCallSite(callNode: SyntaxNode) { | CODE |
| LOW | …us/src/core/ingestion/call-extractors/configs/c-cpp.ts | 50 | function isPrimitiveOnlyBinaryOperatorCall(callNode: SyntaxNode): boolean { | CODE |
| LOW | …us/src/core/ingestion/call-extractors/configs/c-cpp.ts | 61 | function inferCppOperatorOperandType(node: SyntaxNode): string { | CODE |
| LOW | …us/src/core/ingestion/call-extractors/configs/c-cpp.ts | 102 | function lookupCppFunctionParameterType(scope: SyntaxNode, varName: string): string { | CODE |
| LOW | …us/src/core/ingestion/call-extractors/configs/c-cpp.ts | 132 | function findFirstDescendantOfType(node: SyntaxNode, type: string): SyntaxNode | null { | CODE |
| 516 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gitnexus-shared/src/integrations/resilient-fetch.ts | 181 | const random = opts.retry?.random ?? Math.random; | COMMENT |
| LOW | …exus-shared/src/scope-resolution/finalize-algorithm.ts | 761 | // The single-def case is unchanged: when only one def has the name, | COMMENT |
| LOW | deploy/kubernetes/cluster-image-policy.yaml | 1 | # Sigstore policy-controller ClusterImagePolicy for GitNexus container images. | COMMENT |
| LOW | deploy/kubernetes/cluster-image-policy.yaml | 21 | # kubectl label namespace <your-ns> policy.sigstore.dev/include=true | COMMENT |
| LOW | deploy/kubernetes/cluster-image-policy.yaml | 41 | # cover every `gitnexus:<tag>`, `gitnexus@sha256:...`, `gitnexus-web:<tag>`, | COMMENT |
| LOW | deploy/kubernetes/cluster-image-policy.yaml | 61 | url: https://fulcio.sigstore.dev | COMMENT |
| LOW | .devcontainer/post-create.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .devcontainer/post-create.sh | 21 | # | COMMENT |
| LOW | .devcontainer/post-create.sh | 61 | [ -f /home/node/.claude-mem/.claude-mem-seeded ] || DIRS+=(/home/node/.claude-mem) | COMMENT |
| LOW | .devcontainer/post-create.sh | 101 | # single config files, and single files can't be bind-mounted on Windows | COMMENT |
| LOW | .devcontainer/post-create.sh | 141 | # Seed $HOME/.claude.json from the host, but NOT as a straight copy. That file | COMMENT |
| LOW | .devcontainer/post-create.sh | 161 | # config is copied correctly. If `cursor-agent` reports auth errors after the | COMMENT |
| LOW | .devcontainer/post-create.sh | 181 | sync_from_host /host/.config/gh/config.yml /home/node/.config/gh/config.yml 644 | COMMENT |
| LOW | .devcontainer/post-create.sh | 241 | node "$SCRIPT_DIR/translate-plugin-registries.cjs" "${TRANSLATE_CLIS[@]}" | COMMENT |
| LOW | .devcontainer/post-create.sh | 261 | COMMENT | |
| LOW | .devcontainer/post-create.sh | 281 | # truncated file and treat the store as "already seeded", sticking the container | COMMENT |
| LOW | .devcontainer/install-deps.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | .devcontainer/install-deps.sh | 21 | # | COMMENT |
| LOW | .devcontainer/install-deps.sh | 41 | # On Docker Desktop for Windows, the bind-mount permission translation won't let | COMMENT |
| LOW | .devcontainer/devcontainer.json | 1 | // Devcontainer for GitNexus. It pre-installs Claude Code, the OpenAI Codex | COMMENT |
| LOW | .devcontainer/devcontainer.json | 21 | // To bump: pick a tag from github.com/oven-sh/bun/releases and update | COMMENT |
| LOW | .devcontainer/devcontainer.json | 41 | "ghcr.io/devcontainers/features/github-cli:1": {} | COMMENT |
| LOW | .devcontainer/devcontainer.json | 61 | // skill, agent, command, or plugin onto the host for the next host session | COMMENT |
| LOW | .devcontainer/devcontainer.json | 81 | // docker). gh and docker are read-only so a compromised dependency can't | COMMENT |
| LOW | .devcontainer/devcontainer.json | 101 | // That separation is the point: the `docker volume rm <cli>-config-*` | COMMENT |
| LOW | .devcontainer/devcontainer.json | 121 | // mount precedence is: the more specific path wins. | COMMENT |
| LOW | .devcontainer/devcontainer.json | 141 | // claude-mem ran on the host and in the container against the same DB at | COMMENT |
| LOW | .devcontainer/devcontainer.json | 161 | // KEEP IN SYNC: if you add/rename/remove a session sub-path, update all | COMMENT |
| LOW | .devcontainer/devcontainer.json | 181 | // sidecar, so there is no cross-filesystem single-file hazard. projects/ | COMMENT |
| LOW | .devcontainer/devcontainer.json | 201 | // "source=${localEnv:HOME}/.cursor/chats,target=/home/node/.cursor/chats,type=bind", | COMMENT |
| LOW | .devcontainer/devcontainer.json | 221 | COMMENT | |
| LOW | .devcontainer/devcontainer.json | 241 | // container's Linux paths, also seed-once, alongside the cache/ copy so | COMMENT |
| LOW | .devcontainer/devcontainer.json | 261 | "source=${localEnv:HOME}/.config/git,target=/home/node/.config/git,type=bind,readonly", | COMMENT |
| LOW | .devcontainer/devcontainer.json | 281 | "source=${localWorkspaceFolderBasename}-gitnexus-node-modules-${devcontainerId},target=/workspace/gitnexus/node_modu | COMMENT |
| LOW | .devcontainer/devcontainer.json | 301 | // CLAUDE_CONFIG_DIR is left unset on purpose. The Claude default is | COMMENT |
| LOW | .devcontainer/devcontainer.json | 361 | }, | COMMENT |
| LOW | gitnexus/test/unit/ignore-service.test.ts | 241 | // A `!__tests__/` line in `.gitnexusignore` must re-enable indexing of | COMMENT |
| LOW | gitnexus/test/unit/ignore-service.test.ts | 341 | expect(filter.childrenIgnored(mkPath('my-dir'))).toBe(true); | COMMENT |
| LOW | gitnexus/test/unit/call-attribution-issue-1166.test.ts | 541 | // result value, not a callable. The array-method blocklist now suppresses | COMMENT |
| LOW | gitnexus/test/unit/hook-db-lock-probe.test.ts | 261 | { GITNEXUS_HOOK_LINUX_PROC_BUDGET_MS: '5000' }, | COMMENT |
| LOW | gitnexus/test/unit/hook-db-lock-probe.test.ts | 341 | // ── D3b: cmdline escalation respects the scan budget (F3) ───────── | COMMENT |
| LOW | gitnexus/test/unit/hook-db-lock-probe.test.ts | 401 | // Production hooks run as `node <probe>.cjs` with neither VITEST nor | COMMENT |
| LOW | gitnexus/test/unit/hook-db-lock-probe.test.ts | 461 | }); | COMMENT |
| LOW | gitnexus/test/unit/ai-context.test.ts | 721 | expect(result).toContain('Custom CRLF'); | COMMENT |
| LOW | gitnexus/test/unit/route-process-linking.test.ts | 181 | ); | COMMENT |
| LOW | gitnexus/test/unit/binding-accumulator.test.ts | 201 | }); | COMMENT |
| LOW | gitnexus/test/unit/rate-limit.test.ts | 201 | // Production-wiring assertions — proves each of the 4 protected routes in | COMMENT |
| LOW | gitnexus/test/unit/incremental-orchestration.test.ts | 321 | } | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 101 | COMMENT | |
| LOW | gitnexus/test/unit/hooks.test.ts | 1201 | fs.rmSync(lsofMarkerPath, { force: true }); | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 1221 | // Unix lsof+ps path (the `Ladybug DB owner guard` suite, now relaned off | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 1241 | // nothing can reap it and the poll times out → red. The antigravity | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 1381 | // ─── Behavior: npx branch — SIGKILLed hook cannot strand the CLI grandchild ── | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 1401 | // PATH then spawns the SIGTERM-immune fake CLI as its own child and | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 1661 | // export must degrade to the unwrapped argv, not throw a TypeError | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 2101 | // These tests assert owner *detection* via the lsof + ps backend: a positive | COMMENT |
| LOW | gitnexus/test/unit/hooks.test.ts | 2581 | }); | COMMENT |
| LOW | gitnexus/test/unit/repo-manager.test.ts | 1361 | COMMENT | |
| LOW | gitnexus/test/unit/repo-manager.test.ts | 1441 | // Simulate the bug-producing scenario without depending on a real | COMMENT |
| LOW | gitnexus/test/unit/repo-manager.test.ts | 1621 | try { | COMMENT |
| 424 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | gitnexus/test/unit/method-extraction.test.ts | 1574 | print(format: string): void; | CODE |
| HIGH | gitnexus/test/unit/method-extraction.test.ts | 3610 | print(msg); | CODE |
| HIGH | gitnexus/test/unit/method-extraction.test.ts | 3679 | print(msg); | CODE |
| HIGH | gitnexus/test/unit/method-extraction.test.ts | 3706 | print(this); | CODE |
| HIGH | gitnexus/test/unit/ingestion-utils.test.ts | 664 | const code = `def process_data(items: list[int]) -> bool:\n return True`; | CODE |
| HIGH | gitnexus/test/unit/type-env.test.ts | 963 | return True | CODE |
| HIGH | gitnexus/test/unit/type-env.test.ts | 968 | return True | CODE |
| HIGH | …xus/test/unit/scope-resolution/workspace-index.test.ts | 96 | return True | CODE |
| HIGH | …xus/test/unit/scope-resolution/workspace-index.test.ts | 138 | return True | CODE |
| HIGH | …xus/test/unit/scope-resolution/workspace-index.test.ts | 158 | return True | CODE |
| HIGH | …xus/test/unit/scope-resolution/workspace-index.test.ts | 184 | return True | CODE |
| HIGH | …xus/test/unit/scope-resolution/workspace-index.test.ts | 208 | return True | CODE |
| HIGH | …nit/scope-resolution/python/cached-tree-parity.test.ts | 32 | print(item.upper()) | CODE |
| HIGH | gitnexus/test/integration/skills-e2e.test.ts | 505 | return True | CODE |
| HIGH⚡ | gitnexus/test/integration/skills-e2e.test.ts | 569 | print(f"[INFO] {msg}") | CODE |
| HIGH⚡ | gitnexus/test/integration/skills-e2e.test.ts | 572 | print(f"[ERROR] {msg}") | CODE |
| HIGH⚡ | gitnexus/test/integration/skills-e2e.test.ts | 581 | return True | CODE |
| HIGH | gitnexus/test/integration/skills-e2e.test.ts | 2237 | return True | CODE |
| HIGH | gitnexus/test/integration/has-method.test.ts | 623 | print(format: string): void; | CODE |
| HIGH | gitnexus/test/integration/resolvers/python.test.ts | 693 | 'app/services/marker.py': `def _marker(): return True | CODE |
| HIGH | gitnexus/test/integration/resolvers/python.test.ts | 754 | 'app/services/marker.py': `def _marker(): return True | CODE |
| HIGH | gitnexus/test/integration/resolvers/python.test.ts | 828 | 'app/services/marker.py': `def _marker(): return True | CODE |
| HIGH | gitnexus/test/integration/resolvers/python.test.ts | 848 | 'app/services/marker.py': `def _marker(): return True | CODE |
| HIGH | gitnexus/test/integration/resolvers/python.test.ts | 2984 | return True | CODE |
| HIGH | gitnexus/scripts/bench-scope-resolution.ts | 28 | lines.push(` return True`); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | eval/run_eval.py | 179 | patch_output = env.execute({"command": "cd /testbed && git diff"}) | CODE |
| HIGH | eval/tool_registry.py | 30 | fallback='cd /testbed && npx gitnexus query "$query" 2>&1', | CODE |
| HIGH⚡ | eval/tool_registry.py | 41 | fallback='cd /testbed && npx gitnexus context "$name" 2>&1', | CODE |
| HIGH⚡ | eval/tool_registry.py | 50 | fallback='cd /testbed && npx gitnexus impact "$target" --direction "$direction" 2>&1', | CODE |
| HIGH⚡ | eval/tool_registry.py | 59 | fallback='cd /testbed && npx gitnexus cypher "$query" 2>&1', | CODE |
| HIGH⚡ | eval/tool_registry.py | 67 | fallback='cd /testbed && npx gitnexus list 2>&1', | CODE |
| HIGH⚡ | eval/tool_registry.py | 74 | fallback='cd /testbed && npx gitnexus augment "$1" 2>&1 || true', | CODE |
| HIGH⚡ | eval/tool_registry.py | 74 | fallback='cd /testbed && npx gitnexus augment "$1" 2>&1 || true', | CODE |
| HIGH | eval/environments/gitnexus_docker.py | 114 | check = self.execute({"command": "node --version 2>/dev/null || echo 'NOT_FOUND'"}) | CODE |
| HIGH | eval/environments/gitnexus_docker.py | 134 | check = self.execute({"command": "npx gitnexus --version 2>/dev/null || echo 'NOT_FOUND'"}) | CODE |
| HIGH | eval/environments/gitnexus_docker.py | 158 | "command": f"cd /testbed && npx gitnexus analyze . {skip_flag} 2>&1", | CODE |
| HIGH | eval/environments/gitnexus_docker.py | 193 | "command": f"curl -sf http://{health_host}:{self.eval_server_port}/health 2>/dev/null || echo 'NOT_READY | CODE |
| HIGH | eval/environments/gitnexus_docker.py | 236 | '-H "Content-Type: application/json" -d "$payload" 2>/dev/null)' | CODE |
| HIGH⚡ | eval/environments/gitnexus_docker.py | 278 | "command": "cd /testbed && basename $(git remote get-url origin 2>/dev/null || basename $(pwd)) .git" | CODE |
| HIGH⚡ | eval/environments/gitnexus_docker.py | 278 | "command": "cd /testbed && basename $(git remote get-url origin 2>/dev/null || basename $(pwd)) .git" | CODE |
| HIGH⚡ | eval/environments/gitnexus_docker.py | 280 | commit_result = self.execute({"command": "cd /testbed && git rev-parse HEAD 2>/dev/null || echo unknown"}) | CODE |
| HIGH⚡ | eval/environments/gitnexus_docker.py | 280 | commit_result = self.execute({"command": "cd /testbed && git rev-parse HEAD 2>/dev/null || echo unknown"}) | CODE |
| HIGH | eval/environments/gitnexus_docker.py | 348 | "command": "npx gitnexus list 2>/dev/null | grep -o '/root/.gitnexus/[^ ]*' | head -1 || echo '/root | CODE |
| HIGH | eval/environments/gitnexus_docker.py | 378 | "command": f"curl -sf -X POST http://127.0.0.1:{self.eval_server_port}/shutdown 2>/dev/null || true" | CODE |
| HIGH | eval/agents/gitnexus_agent.py | 113 | "command": f'gitnexus-augment "{pattern}" 2>&1 || true', | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | gitnexus/test/unit/install-duckdb-extension.test.ts | 72 | expect(factory.conn.query.mock.calls.some(([sql]) => String(sql).includes('INSTALL'))).toBe( | CODE |
| CRITICAL | gitnexus/test/unit/spring-interface-inheritance.test.ts | 234 | @org.springframework.web.bind.annotation.RequestMapping("/api") | CODE |
| CRITICAL | gitnexus/test/unit/spring-interface-inheritance.test.ts | 236 | @org.springframework.web.bind.annotation.GetMapping("/list") Object list(); | CODE |
| CRITICAL | gitnexus/test/unit/group/http-route-extractor.test.ts | 2371 | @org.springframework.web.bind.annotation.RequestMapping("/api") | CODE |
| CRITICAL | gitnexus/test/unit/group/http-route-extractor.test.ts | 2373 | @org.springframework.web.bind.annotation.GetMapping("/users") | CODE |
| CRITICAL | gitnexus/test/unit/group/http-route-extractor.test.ts | 2400 | @org.springframework.web.bind.annotation.GetMapping("/orders/{id}") | CODE |
| CRITICAL | gitnexus/test/unit/group/grpc-extractor.test.ts | 563 | // `com.acme.auth.proto.AuthServiceGrpc.newBlockingStub(...)`, | COMMENT |
| CRITICAL | gitnexus/test/unit/group/grpc-extractor.test.ts | 579 | this.stub = com.acme.auth.proto.AuthServiceGrpc.newBlockingStub(ch); | CODE |
| CRITICAL | gitnexus/test/unit/group/grpc-extractor.test.ts | 588 | // fully-qualified `com.acme.auth.proto.AuthServiceGrpc.newStub(...)` | COMMENT |
| CRITICAL | gitnexus/test/unit/group/grpc-extractor.test.ts | 655 | this.stub = com.acme.auth.proto.AuthServiceGrpc.newBlockingStub(ch); | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 212 | // Step 1: initial index. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 215 | // Step 2: comment-only edit, same as the test above. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 220 | // Step 3: incremental writeback for the edited file. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 231 | // Step 4: force a full rebuild from the SAME on-disk file state. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 241 | // Step 5: exact-equality across every stat. `toEqual` would also | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 506 | // Step 1: analyze repoA with --name shared → registry entry created. | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 528 | // Step 2: analyze repoB with the SAME --name → collision error. | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 548 | // Step 3: REGRESSION GUARD for the missing collision-bypass wire | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 580 | // Step 4: REGRESSION GUARD for the design decision in review | COMMENT |
| LOW⚡ | gitnexus/src/core/augmentation/engine.ts | 110 | // Step 1: BM25 search (fast, no embeddings) | COMMENT |
| LOW⚡ | gitnexus/src/core/augmentation/engine.ts | 113 | // Step 2: Map BM25 file results to symbols | COMMENT |
| LOW | gitnexus/src/core/augmentation/engine.ts | 173 | // Step 3: Batch-fetch callers/callees/processes/cohesion for top matches | COMMENT |
| LOW | gitnexus/src/core/augmentation/engine.ts | 299 | // Step 4: Rank by cohesion (internal signal) and format | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/community-processor.ts | 237 | // Step 3: Create community nodes with heuristic labels | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/community-processor.ts | 247 | // Step 4: Create membership mappings | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 100 | // Step 1: Find entry points (functions that call others but have few callers) | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 107 | // Step 2: Trace processes from each entry point | COMMENT |
| LOW | gitnexus/src/core/ingestion/process-processor.ts | 127 | // Step 3: Deduplicate similar traces (subset removal) | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 138 | // Step 4: Limit to max processes (prioritize longer traces) | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 145 | // Step 5: Create process nodes | COMMENT |
| LOW⚡ | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 134 | // Step 1: run generic MRO (Class-only, EXTENDS-only). | COMMENT |
| LOW⚡ | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 137 | // Step 2: build a graphId → defId map for ALL class-like defs including Traits. | COMMENT |
| LOW | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 156 | // Step 3: collect direct trait-use edges (IMPLEMENTS where target is a Trait). | COMMENT |
| LOW | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 174 | // Step 4: augment every class's MRO by prepending the traits used by | COMMENT |
| LOW | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 203 | // Step 5: also insert Trait-only entries for classes that use traits | COMMENT |
| LOW⚡ | …src/core/ingestion/languages/php/namespace-siblings.ts | 212 | // Step 1: extract namespace structure for each file. Also seed the | COMMENT |
| LOW | …src/core/ingestion/languages/php/namespace-siblings.ts | 225 | // Step 2: group class-like defs and module scopes by namespace. | COMMENT |
| LOW | …src/core/ingestion/languages/php/namespace-siblings.ts | 280 | // Step 3: For each namespace bucket, inject sibling class bindings | COMMENT |
| LOW | …src/core/ingestion/languages/php/namespace-siblings.ts | 339 | // Step 4: Mirror return-type bindings from same-namespace sibling files. | COMMENT |
| LOW | …nexus/src/core/ingestion/languages/cpp/simple-hooks.ts | 63 | // The orchestrator provides the function scope; we need to check if | COMMENT |
| LOW⚡ | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 164 | // Step 1: EXTENDS chain via the generic MRO builder (direct class inheritance). | COMMENT |
| LOW⚡ | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 167 | // Step 2: Build defId ↔ graphId bridge for class-like defs. | COMMENT |
| LOW⚡ | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 177 | // Step 3: Collect IMPLEMENTS edges, partitioned by reason. | COMMENT |
| LOW | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 204 | // Step 4: Reorder MRO per Ruby semantics. | COMMENT |
| LOW | …exus/src/core/ingestion/scope-resolution/passes/mro.ts | 45 | // Step 1: parentsByGraphId — typed iterator skips the per-edge type | COMMENT |
| LOW | …exus/src/core/ingestion/scope-resolution/passes/mro.ts | 58 | // Step 2: defIdByGraphId — translate graph ids to scope-resolution DefIds. | COMMENT |
| LOW | …exus/src/core/ingestion/scope-resolution/passes/mro.ts | 82 | // Step 3: linearize per class. | COMMENT |
| LOW | …ngestion/scope-resolution/passes/overload-narrowing.ts | 282 | // Step 1: compute per-slot ranks and exclude non-viable candidates. | COMMENT |
| LOW | …ngestion/scope-resolution/passes/overload-narrowing.ts | 316 | // Step 2: pairwise dominance — remove candidates dominated by any other. | COMMENT |
| LOW | gitnexus/src/core/group/extractors/grpc-extractor.ts | 559 | // Step 1: java_package translation. The import-derived package | COMMENT |
| LOW | gitnexus/src/core/group/extractors/grpc-extractor.ts | 580 | // Step 2: proto map cross-check. When this repo also carries a | COMMENT |
| LOW | gitnexus/src/core/group/extractors/grpc-extractor.ts | 631 | // Step 3: import-derived fallback. No `.proto` in this repo | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 1814 | // Step 1: Run hybrid search to get matching symbols. BM25 and vector | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 1863 | // Step 2: For each match with a nodeId, trace to process(es) | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 2056 | // Step 3: Rank processes by aggregate score + internal cohesion boost | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 2067 | // Step 4: Build response | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 3020 | // Step 3: Build full context | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4274 | // Step 1: Find the target symbol (reuse context's lookup) | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4295 | // Step 2: Collect edits from graph (high confidence) | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4373 | // Step 3: Text search for refs the graph might have missed | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4434 | // Step 4: Apply or preview | COMMENT |
| LOW | gitnexus/src/cli/skill-gen.ts | 80 | // Step 1: Build communities from memberships (not the filtered communities array). | COMMENT |
| LOW | gitnexus/src/cli/skill-gen.ts | 91 | // Step 2: Filter to significant communities | COMMENT |
| LOW⚡ | gitnexus/src/cli/skill-gen.ts | 103 | // Step 3: Build lookup maps | COMMENT |
| LOW⚡ | gitnexus/src/cli/skill-gen.ts | 110 | // Step 4: Clear and recreate output directory | COMMENT |
| LOW⚡ | gitnexus/src/cli/skill-gen.ts | 118 | // Step 5: Generate skill files | COMMENT |
| LOW | gitnexus-web/src/core/llm/tools.ts | 77 | // Step 1: Enriched search via backend (connections, cluster, processes pre-joined) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 212 | // Step 1: initial index. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 215 | // Step 2: comment-only edit, same as the test above. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 220 | // Step 3: incremental writeback for the edited file. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 231 | // Step 4: force a full rebuild from the SAME on-disk file state. | COMMENT |
| LOW⚡ | gitnexus/test/unit/incremental-orchestration.test.ts | 241 | // Step 5: exact-equality across every stat. `toEqual` would also | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 506 | // Step 1: analyze repoA with --name shared → registry entry created. | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 528 | // Step 2: analyze repoB with the SAME --name → collision error. | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 548 | // Step 3: REGRESSION GUARD for the missing collision-bypass wire | COMMENT |
| LOW | gitnexus/test/integration/cli-e2e.test.ts | 580 | // Step 4: REGRESSION GUARD for the design decision in review | COMMENT |
| LOW⚡ | gitnexus/src/core/augmentation/engine.ts | 110 | // Step 1: BM25 search (fast, no embeddings) | COMMENT |
| LOW⚡ | gitnexus/src/core/augmentation/engine.ts | 113 | // Step 2: Map BM25 file results to symbols | COMMENT |
| LOW | gitnexus/src/core/augmentation/engine.ts | 173 | // Step 3: Batch-fetch callers/callees/processes/cohesion for top matches | COMMENT |
| LOW | gitnexus/src/core/augmentation/engine.ts | 299 | // Step 4: Rank by cohesion (internal signal) and format | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/community-processor.ts | 237 | // Step 3: Create community nodes with heuristic labels | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/community-processor.ts | 247 | // Step 4: Create membership mappings | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 100 | // Step 1: Find entry points (functions that call others but have few callers) | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 107 | // Step 2: Trace processes from each entry point | COMMENT |
| LOW | gitnexus/src/core/ingestion/process-processor.ts | 127 | // Step 3: Deduplicate similar traces (subset removal) | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 138 | // Step 4: Limit to max processes (prioritize longer traces) | COMMENT |
| LOW⚡ | gitnexus/src/core/ingestion/process-processor.ts | 145 | // Step 5: Create process nodes | COMMENT |
| LOW⚡ | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 134 | // Step 1: run generic MRO (Class-only, EXTENDS-only). | COMMENT |
| LOW⚡ | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 137 | // Step 2: build a graphId → defId map for ALL class-like defs including Traits. | COMMENT |
| LOW | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 156 | // Step 3: collect direct trait-use edges (IMPLEMENTS where target is a Trait). | COMMENT |
| LOW | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 174 | // Step 4: augment every class's MRO by prepending the traits used by | COMMENT |
| LOW | …xus/src/core/ingestion/languages/php/scope-resolver.ts | 203 | // Step 5: also insert Trait-only entries for classes that use traits | COMMENT |
| LOW⚡ | …src/core/ingestion/languages/php/namespace-siblings.ts | 212 | // Step 1: extract namespace structure for each file. Also seed the | COMMENT |
| LOW | …src/core/ingestion/languages/php/namespace-siblings.ts | 225 | // Step 2: group class-like defs and module scopes by namespace. | COMMENT |
| LOW | …src/core/ingestion/languages/php/namespace-siblings.ts | 280 | // Step 3: For each namespace bucket, inject sibling class bindings | COMMENT |
| LOW | …src/core/ingestion/languages/php/namespace-siblings.ts | 339 | // Step 4: Mirror return-type bindings from same-namespace sibling files. | COMMENT |
| LOW⚡ | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 164 | // Step 1: EXTENDS chain via the generic MRO builder (direct class inheritance). | COMMENT |
| LOW⚡ | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 167 | // Step 2: Build defId ↔ graphId bridge for class-like defs. | COMMENT |
| LOW⚡ | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 177 | // Step 3: Collect IMPLEMENTS edges, partitioned by reason. | COMMENT |
| LOW | …us/src/core/ingestion/languages/ruby/scope-resolver.ts | 204 | // Step 4: Reorder MRO per Ruby semantics. | COMMENT |
| LOW | …exus/src/core/ingestion/scope-resolution/passes/mro.ts | 45 | // Step 1: parentsByGraphId — typed iterator skips the per-edge type | COMMENT |
| LOW | …exus/src/core/ingestion/scope-resolution/passes/mro.ts | 58 | // Step 2: defIdByGraphId — translate graph ids to scope-resolution DefIds. | COMMENT |
| LOW | …exus/src/core/ingestion/scope-resolution/passes/mro.ts | 82 | // Step 3: linearize per class. | COMMENT |
| LOW | …ngestion/scope-resolution/passes/overload-narrowing.ts | 282 | // Step 1: compute per-slot ranks and exclude non-viable candidates. | COMMENT |
| LOW | …ngestion/scope-resolution/passes/overload-narrowing.ts | 316 | // Step 2: pairwise dominance — remove candidates dominated by any other. | COMMENT |
| LOW | gitnexus/src/core/group/extractors/grpc-extractor.ts | 559 | // Step 1: java_package translation. The import-derived package | COMMENT |
| LOW | gitnexus/src/core/group/extractors/grpc-extractor.ts | 580 | // Step 2: proto map cross-check. When this repo also carries a | COMMENT |
| LOW | gitnexus/src/core/group/extractors/grpc-extractor.ts | 631 | // Step 3: import-derived fallback. No `.proto` in this repo | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 1814 | // Step 1: Run hybrid search to get matching symbols. BM25 and vector | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 1863 | // Step 2: For each match with a nodeId, trace to process(es) | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 2056 | // Step 3: Rank processes by aggregate score + internal cohesion boost | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 2067 | // Step 4: Build response | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 3020 | // Step 3: Build full context | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4274 | // Step 1: Find the target symbol (reuse context's lookup) | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4295 | // Step 2: Collect edits from graph (high confidence) | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4373 | // Step 3: Text search for refs the graph might have missed | COMMENT |
| LOW | gitnexus/src/mcp/local/local-backend.ts | 4434 | // Step 4: Apply or preview | COMMENT |
| LOW | gitnexus/src/cli/skill-gen.ts | 80 | // Step 1: Build communities from memberships (not the filtered communities array). | COMMENT |
| LOW | gitnexus/src/cli/skill-gen.ts | 91 | // Step 2: Filter to significant communities | COMMENT |
| LOW⚡ | gitnexus/src/cli/skill-gen.ts | 103 | // Step 3: Build lookup maps | COMMENT |
| LOW⚡ | gitnexus/src/cli/skill-gen.ts | 110 | // Step 4: Clear and recreate output directory | COMMENT |
| LOW⚡ | gitnexus/src/cli/skill-gen.ts | 118 | // Step 5: Generate skill files | COMMENT |
| LOW | gitnexus-web/src/core/llm/tools.ts | 77 | // Step 1: Enriched search via backend (connections, cluster, processes pre-joined) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | gitnexus/test/unit/git-utils.test.ts | 288 | // the test is robust to platform path-format quirks (Windows 8.3 short | COMMENT |
| MEDIUM | gitnexus/test/unit/cli-commands.test.ts | 118 | // explicit and robust to a future tree-sitter change. | COMMENT |
| MEDIUM | gitnexus/test/unit/parser-loader-skip-optional.test.ts | 59 | // install-state-robust — C's native binding is intentionally fallible, so | COMMENT |
| MEDIUM | gitnexus/test/unit/parser-loader-skip-optional.test.ts | 70 | // Baseline (no skip) so the isolation check is install-state-robust. | COMMENT |
| MEDIUM | gitnexus/test/unit/group/grpc-extractor.test.ts | 631 | // is robust against client-jar consumers and same-short-name | COMMENT |
| MEDIUM | …tnexus/test/unit/cfg/reaching-defs-equivalence.test.ts | 2 | * #2201 — differential equivalence harness for the reaching-defs solvers. | COMMENT |
| MEDIUM | gitnexus/test/integration/cli-e2e.test.ts | 1558 | // Derive the real uid + filePath from context so the test is robust to the | COMMENT |
| MEDIUM | gitnexus/test/integration/mcp/server-startup.test.ts | 274 | // path containing braces can never truncate the parse (more robust than | COMMENT |
| MEDIUM | gitnexus/src/core/ingestion/cfg/visitors/c-cpp.ts | 722 | // (A bare `try {}` with no catch is ill-formed C++, but stay robust.) | COMMENT |
| MEDIUM | gitnexus/src/core/ingestion/cfg/visitors/swift.ts | 535 | // flow conservatively (Swift forbids fall-through, but stay robust). | COMMENT |
| MEDIUM | gitnexus/src/core/group/bridge-db.ts | 671 | // meta.json, and we don't want meta write to be less robust than the | COMMENT |
| MEDIUM | gitnexus/src/core/lbug/lbug-config.ts | 333 | // Matching is case-insensitive to remain robust across wrappers/platforms. | COMMENT |
| MEDIUM | gitnexus/src/core/lbug/lbug-adapter.ts | 1715 | // starts), but the lock makes it robust to future reordering — a concurrent | COMMENT |
| MEDIUM | .github/workflows/impact-pdg-mutation-report.yml | 12 | # The harness shells out to `gitnexus analyze --pdg`, which spawns workers from | COMMENT |
| MEDIUM | .github/workflows/impact-pdg-mutation-report.yml | 46 | # analyze workers the mutation harness spawns. | COMMENT |
| MEDIUM | .github/workflows/docker.yml | 245 | # Use `while read` instead of `for $TAGS` to be robust against tags that | COMMENT |
| MEDIUM⚡ | .github/scripts/triage/test_embedding_utils.py | 196 | # 500 samples, 10 dims — well-conditioned for robust covariance | COMMENT |
| MEDIUM | .github/scripts/triage/sweep.py | 40 | # Governs how aggressively the robust covariance downweights extreme points. | COMMENT |
| MEDIUM | gitnexus-web/package-lock.json | 8014 | "resolved": "https://registry.npmjs.org/robust-predicates/-/robust-predicates-3.0.2.tgz", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/check-tree-sitter-upgrade-readiness.py | 14 | CODE | |
| LOW | …ub/scripts/test_check_tree_sitter_upgrade_readiness.py | 17 | CODE | |
| LOW | .github/scripts/check-workflow-concurrency.py | 28 | CODE | |
| LOW | .github/scripts/triage/test_sweep.py | 2 | CODE | |
| LOW | .github/scripts/triage/test_sweep.py | 21 | CODE | |
| LOW | .github/scripts/triage/test_sweep.py | 21 | CODE | |
| LOW | .github/scripts/triage/test_sweep.py | 458 | CODE | |
| LOW | .github/scripts/triage/test_sweep.py | 460 | CODE | |
| LOW | .github/scripts/triage/embedding_utils.py | 6 | CODE | |
| LOW | .github/scripts/triage/test_embedding_utils.py | 2 | CODE | |
| LOW | .github/scripts/triage/test_embedding_utils.py | 7 | CODE | |
| LOW | .github/scripts/triage/test_embedding_utils.py | 13 | CODE | |
| LOW | .github/scripts/triage/test_embedding_utils.py | 13 | CODE | |
| LOW | .github/scripts/triage/test_embedding_utils.py | 13 | CODE | |
| LOW | .github/scripts/triage/test_embedding_utils.py | 13 | CODE | |
| LOW | .github/scripts/triage/test_embedding_utils.py | 13 | CODE | |
| LOW | .github/scripts/triage/sweep.py | 7 | CODE | |
| LOW | .github/scripts/triage/sweep.py | 17 | CODE | |
| LOW | .github/scripts/triage/sweep.py | 17 | CODE | |
| LOW | .github/scripts/triage/sweep.py | 17 | CODE | |
| LOW | .github/scripts/triage/sweep.py | 17 | CODE | |
| LOW | .github/scripts/triage/sweep.py | 17 | CODE | |
| LOW | eval/run_eval.py | 30 | CODE | |
| LOW | eval/run_eval.py | 35 | CODE | |
| LOW | eval/tool_registry.py | 1 | CODE | |
| LOW | eval/analysis/analyze_results.py | 20 | CODE | |
| LOW | eval/bridge/mcp_bridge.py | 17 | CODE | |
| LOW | eval/tests/test_mcp_bridge.py | 4 | CODE | |
| LOW | eval/tests/test_property_based.py | 1 | CODE | |
| LOW | eval/utils/errors.py | 1 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …t/unit/scope-resolution/python/python-fixtures.test.ts | 172 | except Exception: | CODE |
| LOW | .github/scripts/check-tree-sitter-upgrade-readiness.py | 1012 | except Exception: | CODE |
| LOW | eval/run_eval.py | 181 | except Exception as patch_err: | CODE |
| LOW | eval/run_eval.py | 248 | except Exception as e: | CODE |
| LOW | eval/run_eval.py | 319 | except Exception as e: | CODE |
| LOW | eval/analysis/analyze_results.py | 72 | except Exception: | CODE |
| LOW | eval/analysis/analyze_results.py | 197 | except Exception as e: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 88 | except Exception as e: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 105 | except Exception: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 108 | except Exception: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 169 | except Exception: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 183 | except Exception: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 223 | except Exception as e: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 244 | except Exception as e: | CODE |
| LOW | eval/bridge/mcp_bridge.py | 317 | except Exception as e: | CODE |
| LOW | eval/environments/gitnexus_docker.py | 86 | except Exception as e: | CODE |
| LOW | eval/environments/gitnexus_docker.py | 321 | except Exception as e: | CODE |
| LOW | eval/environments/gitnexus_docker.py | 363 | except Exception as e: | CODE |
| LOW | eval/environments/gitnexus_docker.py | 381 | except Exception: | CODE |
| LOW⚡ | eval/tests/test_errors.py | 12 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW⚡ | eval/tests/test_errors.py | 24 | except Exception as exc: # noqa: BLE001 | CODE |
| LOW | eval/agents/gitnexus_agent.py | 127 | except Exception as e: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | gitnexus/bench/parse-throughput.md | 1 | # Parse-throughput benchmark (scaffold) | COMMENT |
| MEDIUM | gitnexus/test/unit/pdg-mode-flip.test.ts | 3 | * (#2099 F1). Sibling of incremental-orchestration.test.ts: real on-disk git | COMMENT |
| MEDIUM | …xus/src/core/ingestion/taint/summary-harvest-driver.ts | 2 | * Summary-harvest driver (#2084 M4 U1) — the in-phase orchestration that turns | COMMENT |
| MEDIUM | .github/workflows/ci.yml | 26 | # ── Reusable workflow orchestration ───────────────────────────────── | COMMENT |
| MEDIUM | .github/scripts/triage/sweep.py | 62 | # 512-token context window (~4 chars/token). We keep title + body under | COMMENT |
| MEDIUM | .github/scripts/triage/sweep.py | 137 | # Truncate to fit the embedding model's token window. | COMMENT |
| MEDIUM | gitnexus-web/src/core/llm/agent.ts | 236 | // This is critical for agentic workflows with tool calls | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | .github/scripts/check-tree-sitter-upgrade-readiness.py | 506 | CODE | |
| LOW | .github/scripts/check-tree-sitter-upgrade-readiness.py | 561 | CODE | |
| LOW | .github/scripts/check-tree-sitter-upgrade-readiness.py | 642 | CODE | |
| LOW | .github/scripts/check-workflow-concurrency.py | 38 | CODE | |
| LOW | .github/scripts/check-workflow-concurrency.py | 96 | CODE | |
| LOW | .github/scripts/triage/sweep.py | 255 | CODE | |
| LOW | eval/run_eval.py | 279 | CODE | |
| LOW | eval/analysis/analyze_results.py | 37 | CODE | |
| LOW | eval/analysis/analyze_results.py | 206 | CODE | |
| LOW | eval/analysis/analyze_results.py | 253 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gitnexus/test/unit/ingestion-utils.test.ts | 664 | const code = `def process_data(items: list[int]) -> bool:\n return True`; | CODE |
| LOW | gitnexus/test/unit/type-env.test.ts | 5747 | const code = `const dbClient: Database = connectDb();\nfunction handleRequest() {\n const localRequest: Request = | CODE |
| LOW | …xus/test/unit/group/python-workspace-extractor.test.ts | 135 | await writeFile('lib/utils/__init__.py', 'def helper(): pass\nclass Config: pass\n'); | CODE |
| LOW | …xus/test/unit/scope-resolution/workspace-index.test.ts | 79 | def helper() -> int: | CODE |
| LOW | …xus/test/unit/scope-resolution/workspace-index.test.ts | 98 | def helper() -> int: | CODE |
| LOW | …xus/test/unit/scope-resolution/workspace-index.test.ts | 238 | def helper() -> int: | CODE |
| LOW | …s/src/core/ingestion/scope-resolution/scope/walkers.ts | 833 | // on `class U: def save(self): def helper(): ...` — helper.ownerId will | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gitnexus/test/unit/cursor-hook.test.ts | 81 | spawnSync('git', ['config', 'user.email', 'test@test.com'], { cwd: tmpDir, stdio: 'pipe' }); | CODE |
| LOW | gitnexus/test/unit/cursor-hook.test.ts | 88 | spawnSync('git', ['config', 'user.email', 'test@test.com'], { | CODE |
| LOW | gitnexus/test/unit/hooks.test.ts | 182 | runGit(tmpDir, ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | gitnexus/test/unit/hooks.test.ts | 216 | runGit(dir, ['config', 'user.email', 'test@test.com']); | CODE |
| LOW | gitnexus/test/integration/antigravity-hook-e2e.test.ts | 90 | spawnSync('git', ['config', 'user.email', 'test@test.com'], { cwd: tmpDir, stdio: 'pipe' }); | CODE |
| LOW | gitnexus/test/integration/hooks-e2e.test.ts | 50 | spawnSync('git', ['config', 'user.email', 'test@test.com'], { cwd: tmpDir, stdio: 'pipe' }); | CODE |
| LOW | gitnexus-web/src/locales/zh-CN/chat.json | 17 | "placeholder": "询问这个代码库...", | CODE |
| LOW | gitnexus-web/src/locales/en/chat.json | 17 | "placeholder": "Ask about the codebase...", | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | gitnexus-web/src/lib/mermaid-generator.ts | 29 | rawMermaid?: string; // AI-generated mermaid code (sanitized before rendering) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | .github/scripts/triage/test_embedding_utils.py | 160 | # Create a tight cluster with one obvious outlier | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | gitnexus/hooks/claude/pre-tool-use.sh | 48 | # Check if we're in a GitNexus-indexed repo | COMMENT |
| LOW | eval/bridge/mcp_bridge.py | 157 | # Check if npx is available (preferred - uses local install) | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | gitnexus-web/src/core/llm/agent.ts | 96 | - Don't pad with generic "let me know if you need more" — users will ask. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eval/run_eval.py | 351 | CODE | |
| LOW | eval/run_eval.py | 377 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | eval/bridge/gitnexus_tools.sh | 9 | # Usage: | COMMENT |