GitNexus/gitnexus/test/integration
Gergő Magyar 010a7d806a
fix(schema): declare the full scope-resolution relation cross product (#2792) (#2793)
* fix(schema): declare the full scope-resolution relation cross product (#2792)

`RELATION_SCHEMA` was hand-listed, and every prior fix added only the
FROM/TO pair named in a crash report — `Const→Method` in #2769, the
Swift/Rust member pairs before it. So `analyze` kept aborting at
`assertDeclaredPair` on the next codebase whose edges happened to land on
a different pair; #2792 reports `Class→Variable` on Java.

Audit the surface instead of the symptom. `buildGraphNodeLookup` skips
any node whose label is not in `isLinkableLabel`, so the lookup holds
only linkable-labelled nodes — and both endpoints of every graph-bridge
edge resolve through that lookup. The emittable surface is therefore
exactly:

  FROM  LINKABLE_LABELS + File   (the module-level caller fallback)
  TO    LINKABLE_LABELS + CALL_TARGET_TYPES

`isCallerAnchorLabel` is a strict subset of linkable and contributes
nothing on top. `CALL_TARGET_TYPES` contributes `Delegate`, which
`tryEmitEdgeWithExplicitTargetId` can emit without going through the
lookup at all.

Generate that 14x14 block into the DDL rather than listing it: 223 -> 322
declared pairs, and no future pair from these sets can be missing by
construction. The containment/inheritance/DI/route/cluster/PDG pairs stay
hand-declared — no single predicate describes them.

Both label sets live in the ingestion layer, which `core/lbug` must not
import, so schema.ts carries twin lists. test/unit/schema-pair-coverage.ts
derives the requirement from the originals and fails CI when either set
grows without the pairs landing here — the piecemeal loop this fix ends.

Measured before widening: at 322 pairs the cost is inside noise
(1.09s vs 1.12s per 300 anchored queries on a 32-table DB), but the full
32x32 cross product is ~1.8x on untyped-endpoint anchored queries. The
audited subset is the right scope, not "declare everything".

INCREMENTAL_SCHEMA_VERSION 34 -> 35: LadybugDB fixes endpoint pairs when
the rel table is created, so a pre-v35 database physically cannot store
these edges.

Closes #2792

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

* fix(schema): declare the non-bridge structural pairs COBOL and Vue emit

The generated scope-resolution block closed the half of RELATION_SCHEMA a
label predicate can describe. The hand-declared half was still stale: with
#2791's Function->Variable fix applied, `analyze` continued to abort on this
repo's own test/fixtures/lang-resolution with

  Relationship label pair Module→Property is not declared

A full sweep (assertDeclaredPair patched to log-and-skip, run over the whole
fixture corpus) found 13 undeclared pairs over 106 edges. This branch already
covered 3 of them via the cross product; the remaining 10 come from emitters
outside the graph bridge:

  - cobol-processor.ts mints Module / Namespace / Record / Property /
    CodeElement and wires them with CONTAINS, CALLS and ACCESSES (9 pairs)
  - vue-sfc-extractor.ts emits BINDS_EVENT_HANDLER from a handler Function to
    the child component's File, the only edge whose target is a File (1 pair)

CodeElement, Namespace, Record and File are in neither scope-bridge label set,
so neither the generated block nor schema-pair-coverage.test.ts can reach them.

Adds test/integration/structural-pair-coverage.test.ts, which derives the
requirement from a corpus instead of a predicate: it runs the real pipeline
over the non-bridge fixtures and requires every FROM/TO pair they produce to
be declared. Mutation-checked — dropping `FROM Function TO File` fails it with
exactly Function|File.

Verified: cobol-app, vue-basic and php-transitive-traits now index instead of
aborting; the full lang-resolution corpus completes at 10,876 nodes / 18,517
edges; scrypster/muninndb at 0b7a4272 (the #2789 repro) completes at 20,069
nodes / 71,580 edges, matching #2791 exactly, so this supersedes that PR.

* refactor(test): simplify the structural pair coverage guard

Cleanup pass over the previous commit. No behaviour change to the schema.

- reuse `FIXTURES` and `runPipelineFromRepo` from resolvers/helpers.ts instead
  of re-deriving the fixture root and importing pipeline.js directly
- gate on `distWorkerExists()` like every other integration test that passes
  `workerUrlForTest`, so a missing dist skips rather than fails
- run the three fixtures with `it.concurrent.each`; they share nothing and the
  cost is almost all worker spawn plus grammar load, which overlaps well
  (tests phase 21-24s -> 5.6s measured)
- replace the sentinel-in-a-Set filter with a plain `.filter()` chain, matching
  the sibling unit test, and move the declared/table lookups off the per-edge
  path onto the deduped set
- move the pure string pin out of the integration tier into
  schema-pair-coverage.test.ts, where the identical construct already lives, so
  it needs no build and survives fixture deletion
- trim the schema and test prose that restated the code, and correct the
  BINDS_EVENT_HANDLER attribution: it is emitted by
  languages/vue/scope-resolver.ts, not vue-sfc-extractor.ts
- amend the v35 comment to mention the 10 structural pairs it now also stamps

Still mutation-checked: dropping `FROM Function TO File` now fails both the
integration sweep and the unit pin with exactly Function|File. 89 tests green.

* fix(schema): generate the attachment pair surface and close four analyze aborts

Review of the generated scope-bridge cross product found four `analyze`
hard-aborts still live at head, each reproduced end-to-end on the default
user path (`analyze --index-only --skip-git`):

  Method→Annotation   Spring `@Bean` + `@ConditionalOnMissingBean` (Java + Kotlin)
  Method→File         Vue Options-API `methods:` handler bound to a child event
  Namespace→Record    COBOL `DECLARATIVES` / `USE AFTER STANDARD ERROR ON <file>`
  Class→Tool          `@mcp.tool()` applied to a class

All four are pre-existing on main, and both existing guards were structurally
blind to them: the unit guard derives from LINKABLE_LABELS ∪ CALL_TARGET_TYPES
(none of Annotation/Tool/Record/File-as-target is a member) and the corpus
guard ran three fixtures that exercise none of these emitters. All 16 tests
passed while all four crashes were live.

The PR's model — "bridge endpoint × structural endpoint" — does not fit:
Namespace→Record is structural on both sides. The property that does hold is
that the ANCHOR is a lookup result, not a literal at the emit site, so the
emitter cannot constrain its label. That gives a second closed-form rule:

  DEFINITION_ANCHOR_LABELS × ATTACHMENT_TARGET_LABELS

DEFINITION_ANCHOR_LABELS is derived from NODE_TABLES by subtraction, so a new
node table joins automatically. 332 → 450 declared pairs.

Sized against a committed harness (gitnexus/bench/schema-pairs), real
@ladybugdb/core, identical data: 450 costs 0.93–1.05× of 332 on untyped-endpoint
anchored queries — inside noise — versus 1.22–1.43× at 641 and 2.03–2.34× at
1024. The harness reproduces the known #2792 cliff, which is what makes the 450
figure trustworthy.

Also in this change:

- Delete the 161 hand-declared pairs the rules already generate (233 → 72).
  The declared set is byte-identical at 450; those lines were load-bearing
  shadow, because the generator suppresses anything already declared
  structurally, so narrowing a rule later would silently keep pairs alive.
  A new guard fails CI if a hand-declared pair is ever re-added inside a rule.
- Import LINKABLE_LABELS / CALL_TARGET_TYPES instead of hand-copying them.
  The twins' stated justification ("the ingestion layer must not be imported
  here") is false: csv-generator.ts and lbug-adapter.ts, siblings in the same
  directory, already do, and no rule in AGENTS.md / ARCHITECTURE.md /
  CONTRIBUTING.md / GUARDRAILS.md states otherwise.
- Resolve `resolveStreamGraphEmit` after the guards that rebind `options.force`,
  not at function entry. It gates on `force`, and every freshness guard runs
  ~360 lines later, so the v34→v35 bump would have pushed every existing index
  down the non-streamed emit path — losing the #2680 memory streaming added for
  the #2649 kernel-scale OOM, for exactly the population most likely to be
  memory-constrained.
- `UndeclaredRelationPairError` now carries the relationship type, both node ids
  and the source file, with a matching CLI branch. The old message named only
  the abstract label pair, which a user could not act on. Found through the
  cause chain, since pipeline-phases/runner.ts rewraps every phase failure.
- Share one classifier (`relPairKeyFor`) across the router, both emit sinks and
  the corpus guard, which previously hand-mirrored the router's skip rule; one
  cause-chain walker in lib/utils.ts; one exported pair-matching regex.
- Corpus guard: four new fixtures reproducing the aborts, per-fixture sentinel
  pairs so a fixture that stops emitting fails loudly instead of passing
  vacuously on an empty graph.

The per-edge path stays allocation-free: the failure context is passed
positionally and the message is built only inside the throw.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0182jkjQqzACkJKYw4MLDnhX

* test(bench): re-baseline the COBOL capture fingerprint for the new fixture

`bench/scope-capture` globs `lang-resolution/cobol-*`, so the
`cobol-declaratives` fixture added in 81daf370e (to reproduce the
`Namespace→Record` analyze abort) joined that corpus and shifted the
fingerprint — 14 → 15 files.

Verified corpus-only, not a capture change: with that one fixture moved
aside the fingerprint is byte-identical to the prior baseline
(d45bb091…), and 81daf370e touches no COBOL capture code. The new value
reproduces CI's reported hash exactly. Scaling 0.677 < 1.5 budget.

`bench/scope-capture/measure.mjs --check` → PASS (15 languages).

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0182jkjQqzACkJKYw4MLDnhX

---------

Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-02 16:26:25 +01:00
..
cfg fix(scope-resolution): a named receiver's member never resolves lexically, + two #2695 follow-ups (#2714) 2026-07-27 17:56:38 +01:00
cli feat(core): adopt pino structured logger (#1336) 2026-05-07 20:56:25 +01:00
group fix(group): preserve manifest-only impact crossings (#2784) 2026-08-01 20:24:06 +01:00
mcp feat(mcp): paginate list_repos to avoid client token truncation (#2119) (#2120) 2026-06-09 19:59:54 +01:00
optional-grammars feat(install): toolchain-free tree-sitter via vendored prebuilds (#2113) 2026-06-09 18:16:24 +01:00
resolvers fix(resolution): resolve Go pointer-receiver calls, and report the program boundary instead of hedging (#2766) (#2782) 2026-08-01 22:42:18 +01:00
analyze-atomic-swap.test.ts fix(analyze): single-writer lock for the index write path (#2658) (#2677) 2026-07-25 05:08:13 +01:00
analyze-embedding-flags-e2e.test.ts fix(ci): shard platform-sensitive matrix + spawn built CLI to fix Windows cross-platform timeout (#2394) 2026-07-08 09:09:11 +01:00
analyze-heap-oom-e2e.test.ts fix: large-repo analyze OOM and false worker-timeout cascade (#2649) (#2679) 2026-07-25 09:16:17 +01:00
analyze-index-lock-concurrency.test.ts fix(analyze): single-writer lock for the index write path (#2658) (#2677) 2026-07-25 05:08:13 +01:00
analyze-wal-checkpoint-failure.test.ts fix(analyze): single-writer lock for the index write path (#2658) (#2677) 2026-07-25 05:08:13 +01:00
analyzer-identity-cli.test.ts feat(skills): GitNexus Engineering Tool Kits (#2566) 2026-07-19 15:07:24 +01:00
antigravity-hook-e2e.test.ts fix(hook): emit MCP query hint when server owns DB lock (#2396) (#2397) 2026-07-08 18:34:05 +01:00
api-impact-e2e.test.ts feat(cli): Fingerprint indexed repos by remote URL to detect sibling-clone graph drift (#982) 2026-04-21 21:58:54 +01:00
api-impact-method-e2e.test.ts fix(mcp): stabilize api_impact response shape for same-URL multi-verb routes (#2308) (#2309) 2026-06-26 19:50:10 +01:00
api-query.test.ts fix: Use Ladybug native read-only enforcement and prepared statement execution for Cypher query paths (#1655) 2026-05-18 06:54:24 +01:00
ast-helpers-object-literal-binding.test.ts feat(ingestion): Link object literal methods to exported bindings (#1718) 2026-05-21 17:18:27 +01:00
augmentation.test.ts fix(core): ensure path prefix and traversal guards support root directories (#2559) 2026-07-20 08:12:15 +01:00
basicblock-roundtrip.test.ts feat(pdg): control dependence — post-dominators + CDG (Ferrante) [M5 #2085] (#2188) 2026-06-13 18:49:03 +01:00
block-scope-shadowing.test.ts fix(scope-resolution): a named receiver's member never resolves lexically, + two #2695 follow-ups (#2714) 2026-07-27 17:56:38 +01:00
c-cpp-typedef-legacy-parse.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
callable-capture-options-literal-gate.test.ts fix(scope-resolution): resolve callable reference flows (#2437) (#2522) 2026-07-17 17:20:02 +01:00
caller-identity-regression.test.ts fix(deps): bump @ladybugdb/core to ^0.18.3 — rel-property IN-predicate fix (#2508) (#2634) 2026-07-22 16:31:56 +01:00
cjs-exports-assignment.test.ts fix(js): index CommonJS exports.foo = function () {} exports (#2723) (#2729) 2026-07-28 19:45:01 +01:00
class-impact-all-languages.test.ts feat(cli): Fingerprint indexed repos by remote URL to detect sibling-clone graph drift (#982) 2026-04-21 21:58:54 +01:00
cli-e2e.test.ts feat(eval): require bearer auth for remote binding 2026-07-14 01:45:28 +07:00
cli-limit-e2e.test.ts fix(ci): shard platform-sensitive matrix + spawn built CLI to fix Windows cross-platform timeout (#2394) 2026-07-08 09:09:11 +01:00
closure-binding-labels.test.ts test(scope-resolution): guard closure identity invariants (#2748) 2026-07-30 05:34:21 +01:00
closure-review-findings.test.ts fix(ingestion): join multi-line closure bindings on initializer startLine (#2735) (#2762) 2026-07-31 11:58:47 +01:00
cobol-pipeline-benchmark.test.ts refactor(ingestion): delete legacy call-resolution DAG + heritage processor (RING4-1, #942) (#2023) 2026-06-04 11:07:37 +01:00
const-function-twin.test.ts fix(scope-resolution): resolve calls through a closure-valued binding across languages (#2693) (#2695) 2026-07-27 07:52:18 +01:00
context-resource-staleness.test.ts fix(mcp): context resource reads stale lastCommit/stats after out-of-process analyze (#2438) (#2439) 2026-07-16 09:20:18 +01:00
context-typed-property.test.ts fix(csharp): include generic typed properties in context and impact (#1399) 2026-05-09 09:07:24 +01:00
copy-parallel-invariant.test.ts perf(lbug): overlap node COPY with relationship emit (#2203) (#2226) 2026-06-16 10:57:26 +01:00
cpp-adl-benchmark.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
cpp-captures-typeclass-benchmark.test.ts fix: stop Napi::Error SIGABRT on analyze — index C++ type lookups, terminate workers only at JS-safe points (#2432) (#2436) 2026-07-11 18:07:08 +01:00
cpp-pipeline-benchmark.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
cross-file-binding.test.ts fix(ingestion): classify Python class methods as Method (#1102) 2026-04-27 09:04:50 +01:00
csharp-pipeline-benchmark.test.ts fix(csharp): eliminate global-namespace typeBindings O(files²) OOM (#1871) (#1954) 2026-05-31 18:21:07 +01:00
csharp-scope-capture-tripwire.test.ts perf(ingestion): linearize scope-capture across all languages + Python import resolution (O(n²)→O(n)) (#1918) 2026-05-30 19:44:22 +01:00
csv-pipeline.test.ts feat(spring): index @Bean factories and @Resource injection (#2740) 2026-07-31 10:33:42 +01:00
django-route-extraction-e2e.test.ts feat(group): Support Django route extraction for multi-repo (#1836) 2026-06-21 20:11:30 +01:00
doc-comment-description-e2e.test.ts fix(swift): preprocess indented conditional directives so class bodies survive parsing (#2771) 2026-08-01 20:10:58 +00:00
enrichment.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
expo-routes.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
extension-binary-real.test.ts fix(test): harden findInstalledFtsExtension for cross-OS filesystem quirks 2026-07-21 06:14:58 +00:00
fastapi-composed-route-constants.test.ts fix: resolve imported/composed FastAPI route path constants (#2391) (#2393) 2026-07-07 13:23:05 +01:00
fastapi-prefix-pipeline.test.ts fix(fastapi): apply APIRouter constructor prefixes (#2312) 2026-06-28 13:37:31 +01:00
filesystem-walker.test.ts fix(config): honor parts negation on Windows (#2720) 2026-07-28 20:04:34 +01:00
fts-cjk-segmentation-search.test.ts feat(search): add opt-in CJK bigram segmentation for FTS search (#2339) 2026-07-01 16:41:41 +01:00
fts-description-search.test.ts fix(search): index description field for FTS so doc comments are keyword-searchable (#2300) 2026-06-25 14:21:44 +01:00
fts-extension-e2e.test.ts fix(test): discover the installed FTS extension version dir instead of assuming it equals lbug.VERSION 2026-07-21 06:06:42 +00:00
fts-fullfile-search.test.ts fix(indexing): keep full text file content searchable (#2323) 2026-07-01 08:27:09 +01:00
fts-repair-warm-session.test.ts fix(mcp): resolve false FTS-missing warnings in the query tool (#2773) 2026-08-01 08:42:51 +01:00
fts-stemmer-sweep.test.ts fix(deps): pin Ladybug 0.18.0, validate the multi-writer deadlock fix (#2340) 2026-07-01 18:35:57 +01:00
function-local-identity.test.ts test(scope-resolution): guard closure identity invariants (#2748) 2026-07-30 05:34:21 +01:00
go-multi-name-worker-metadata.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
go-pipeline-benchmark.test.ts fix(go): generic composite literal constructor inference (F33) (#1976) 2026-06-03 05:24:31 +01:00
grammar-introspection.test.ts feat(ingestion): tree-sitter node-type/field validation gate + remove dead literals (#1937) 2026-05-31 10:29:41 +01:00
grammar-literal-validation.test.ts feat(ingestion): tree-sitter node-type/field validation gate + remove dead literals (#1937) 2026-05-31 10:29:41 +01:00
graph-emit-streaming-roundtrip.test.ts feat(spring): model profiles, conditions, and auto-configuration (#2678) 2026-07-28 07:05:41 +01:00
has-method.test.ts feat(cpp): C/C++ MethodExtractor config with pure virtual detection (#617) 2026-04-01 18:07:11 +01:00
hooks-e2e.test.ts fix(hooks): resolve gitnexus on PATH with a pure-Node scan, all-OS (#1938) (#1980) 2026-06-03 03:19:49 +01:00
http-inline-handler-symbol-roundtrip.test.ts fix(test): stabilize local Windows gate baselines (#2314) 2026-06-29 22:27:50 +01:00
ignore-and-skip-e2e.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
impact-ambiguous-blast-radius.test.ts fix(ingestion): stop double-indexing const X = () => {} as Function + edgeless Const twin (#2687) (#2691) 2026-07-25 16:56:17 +01:00
impact-epistemic-lower-bound.test.ts fix(resolution): resolve Go pointer-receiver calls, and report the program boundary instead of hedging (#2766) (#2782) 2026-08-01 22:42:18 +01:00
impact-pdg-callsummary-degradation.test.ts fix(lbug/mcp): exact symbol content + 0-based line storage with 1-based MCP display (#2377, #2379) (#2380) 2026-07-06 16:16:45 +01:00
impact-pdg-degradation.test.ts fix(storage): rename index metadata to gitnexus.json with dual-write compatibility (#2363) 2026-07-03 19:32:59 +01:00
impact-pdg-e2e.test.ts feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
impact-pdg-fixtures.test.ts feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
impact-pdg-fullchain-e2e.test.ts feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
impact-pdg-id-degradation.test.ts fix(storage): rename index metadata to gitnexus.json with dual-write compatibility (#2363) 2026-07-03 19:32:59 +01:00
impact-pdg-interproc.test.ts feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
impact-pdg-shape.test.ts feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
impact-pdg-statement-precise.test.ts feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
impact-pdg-traversal.test.ts feat(impact): opt-in PDG-backed impact mode - statement + inter-procedural slicing, resolved-callee-id soundness, mutation-oracle validated (#2227) 2026-06-20 12:04:32 +01:00
instance-ownership-pipeline-benchmark.test.ts fix(scope-resolution): gate C#/Kotlin free calls by instance ownership (#2563) (#2654) 2026-07-24 13:31:56 +01:00
java-class-impact.test.ts feat(cli): Fingerprint indexed repos by remote URL to detect sibling-clone graph drift (#982) 2026-04-21 21:58:54 +01:00
js-array-method-callback-attribution.test.ts refactor(ingestion): delete legacy call-resolution DAG + heritage processor (RING4-1, #942) (#2023) 2026-06-04 11:07:37 +01:00
lbug-close-handle-release.test.ts fix(lbug): drain checkpoint result before close (#1506) 2026-05-12 14:03:45 +01:00
lbug-conn-serialization.test.ts fix(lbug): stop --pdg analyze double-free (skip LadybugDB close-destructor crash) + harden connection serialization (#2264) 2026-06-21 15:25:56 +01:00
lbug-core-adapter.test.ts feat(spring): model AOP transactions, caching, and security (#2783) 2026-08-01 17:22:12 +01:00
lbug-delete-nodes-for-files.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
lbug-load-overlap-errors.test.ts perf(lbug): overlap node COPY with relationship emit (#2203) (#2226) 2026-06-16 10:57:26 +01:00
lbug-load-overlap.test.ts fix(indexing): keep full text file content searchable (#2323) 2026-07-01 08:27:09 +01:00
lbug-load-prof.test.ts perf(lbug): overlap node COPY with relationship emit (#2203) (#2226) 2026-06-16 10:57:26 +01:00
lbug-lock-retry.test.ts fix(lbug): retry single-writer transaction contention (#2342) 2026-07-02 06:17:12 +01:00
lbug-multiwriter-deadlock.test.ts feat: gate Icebug community engine prototype (#2376) 2026-07-09 05:43:49 +01:00
lbug-non-ascii-path.test.ts fix(lbug): resolve non-ASCII paths for KuzuDB on Windows (#1811) (#1817) 2026-05-25 21:28:12 +01:00
lbug-open-retry.test.ts fix(lbug): robust Windows lock acquisition for CI integration tests (#1430) 2026-05-08 11:58:01 +01:00
lbug-orphan-sidecar-recovery.test.ts fix(lbug): reclaim missing-shadow WAL quarantine files on write-path init (#2638) 2026-07-22 21:30:52 +01:00
lbug-pool-stability.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
lbug-pool.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
lbug-query-importers-batch.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
lbug-readonly-init.test.ts fix(lbug): skip init lock and filesystem mutations for read-only opens (#1783) (#1784) 2026-05-24 08:05:27 +01:00
lbug-vector-extension.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
literal-collectors.test.ts fix(test): stabilize local Windows gate baselines (#2314) 2026-06-29 22:27:50 +01:00
local-backend-calltool.test.ts feat(mcp): normalize impact and context aliases 2026-07-14 01:54:49 +07:00
local-backend.test.ts feat(spring): model AOP transactions, caching, and security (#2783) 2026-08-01 17:22:12 +01:00
local-symbol-pruner-pipeline.test.ts fix(ingestion): stop double-indexing const X = () => {} as Function + edgeless Const twin (#2687) (#2691) 2026-07-25 16:56:17 +01:00
markdown-processor-crlf.test.ts fix(lbug/mcp): exact symbol content + 0-based line storage with 1-based MCP display (#2377, #2379) (#2380) 2026-07-06 16:16:45 +01:00
mcp-line-display.test.ts fix(lbug/mcp): exact symbol content + 0-based line storage with 1-based MCP display (#2377, #2379) (#2380) 2026-07-06 16:16:45 +01:00
multi-branch-analyze.test.ts feat: flat workspace index follows the checked-out branch (#2364) 2026-07-03 20:55:27 +01:00
multi-verb-route-identity.test.ts feat(ingestion/routes): give Route nodes a (method, url) identity (#2289) (#2302) 2026-06-26 07:59:46 +01:00
object-literal-method-exports.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
object-literal-owner-resolution.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
orm-dataflow.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
parse-impl-chunk-concurrency.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
parse-impl-clone-skip.test.ts fix(parse): survive non-cloneable worker results so large-repo analyze doesn't crash (#2112) (#2135) 2026-06-10 13:47:22 +01:00
parse-impl-env-reads.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
parse-impl-large-fixture.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
parse-impl-progress-monotonic.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
parse-impl-quarantine-cache-skip.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
parsing.test.ts feat(ingestion): tree-sitter node-type/field validation gate + remove dead literals (#1937) 2026-05-31 10:29:41 +01:00
pdg-emit-streaming-roundtrip.test.ts perf(lbug): overlap node COPY with relationship emit (#2203) (#2226) 2026-06-16 10:57:26 +01:00
pdg-query.test.ts fix(lbug/mcp): exact symbol content + 0-based line storage with 1-based MCP display (#2377, #2379) (#2380) 2026-07-06 16:16:45 +01:00
php-pipeline-benchmark.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
php-scope-capture-tripwire.test.ts perf(ingestion): linearize scope-capture across all languages + Python import resolution (O(n²)→O(n)) (#1918) 2026-05-30 19:44:22 +01:00
pipeline-graph-golden.test.ts fix(test): isolate cli-e2e from shared mini-repo fixture (#954) 2026-04-18 12:54:59 +01:00
pipeline.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
python-import-index-reuse.test.ts perf(ingestion): linearize scope-capture across all languages + Python import resolution (O(n²)→O(n)) (#1918) 2026-05-30 19:44:22 +01:00
python-scope-capture-tripwire.test.ts perf(ingestion): linearize scope-capture across all languages + Python import resolution (O(n²)→O(n)) (#1918) 2026-05-30 19:44:22 +01:00
qualified-class-lookups.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
query-compilation.test.ts [dart] Add call patterns for await, cascade, lambda, and widget-tree contexts (#801) 2026-04-13 11:21:11 +01:00
route-handler-symbol-roundtrip.test.ts feat(ingestion/routes): give Route nodes a (method, url) identity (#2289) (#2302) 2026-06-26 07:59:46 +01:00
route-method-roundtrip.test.ts feat(ingestion/routes): give Route nodes a (method, url) identity (#2289) (#2302) 2026-06-26 07:59:46 +01:00
route-parse-skip.test.ts fix(ingestion/routes): recognise Spring method-level array-form route mappings (#2281) 2026-06-24 07:10:37 +01:00
ruby-pipeline-benchmark.test.ts perf(ingestion): Linux-kernel-scale analysis — worker-pool parse + finalize O(n²) + scope-resolution memory wall (#1983) (#2038) 2026-06-06 22:46:34 +01:00
ruby-scope-capture-tripwire.test.ts perf(ingestion): linearize scope-capture across all languages + Python import resolution (O(n²)→O(n)) (#1918) 2026-05-30 19:44:22 +01:00
run-analyze-adopt-failure.test.ts feat: flat workspace index follows the checked-out branch (#2364) 2026-07-03 20:55:27 +01:00
rust-pipeline-benchmark.test.ts feat(rust): Migrate Rust to scope-based resolution (RFC #909 Ring 3) (#1639) 2026-05-25 13:20:08 +01:00
rust-scope-capture-tripwire.test.ts perf(ingestion): linearize scope-capture across all languages + Python import resolution (O(n²)→O(n)) (#1918) 2026-05-30 19:44:22 +01:00
search-core.test.ts fix: Use Ladybug native read-only enforcement and prepared statement execution for Cypher query paths (#1655) 2026-05-18 06:54:24 +01:00
search-pool.test.ts fix(search): surface warning when FTS indexes are missing (#1418) 2026-05-08 17:05:18 +01:00
server-analyze-token-validation.test.ts feat(analyze): private GitHub repos via PAT + Azure DevOps Server support (#2076, #2210) (#2223) 2026-06-16 05:49:02 +01:00
server-analyze.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
server-http-startup.test.ts fix(server): restore gitnexus serve startup under Express 5 (#1749) 2026-05-21 10:18:09 +01:00
setup-antigravity.test.ts feat(setup): implement antigravity integration setup and hook adapter… (#1730) 2026-05-25 14:46:17 +01:00
setup-skills.test.ts feat(skills): GitNexus Engineering Tool Kits (#2566) 2026-07-19 15:07:24 +01:00
setup-uninstall-roundtrip.test.ts feat(setup): add CodeBuddy and Qoder coding-agent integrations (#2368) 2026-07-04 10:54:50 +01:00
shape-check-regression.test.ts feat(cli): Fingerprint indexed repos by remote URL to detect sibling-clone graph drift (#982) 2026-04-21 21:58:54 +01:00
skills-e2e.test.ts test(skills-e2e): give the Idempotency setup hook the 120s budget its siblings use (#2583) 2026-07-20 19:54:54 +01:00
spring-aop-benchmark.test.ts feat(spring): model AOP transactions, caching, and security (#2783) 2026-08-01 17:22:12 +01:00
spring-aop-mcp.test.ts feat(spring): model AOP transactions, caching, and security (#2783) 2026-08-01 17:22:12 +01:00
spring-aop-pipeline.test.ts feat(spring): model AOP transactions, caching, and security (#2783) 2026-08-01 17:22:12 +01:00
spring-bean-mcp.test.ts feat(spring): index @Bean factories and @Resource injection (#2740) 2026-07-31 10:33:42 +01:00
spring-bean-metadata-roundtrip.test.ts feat(spring): index @Bean factories and @Resource injection (#2740) 2026-07-31 10:33:42 +01:00
spring-bean-pipeline.test.ts feat(spring): build bean candidate inventory (#2494) 2026-07-20 09:28:23 +01:00
spring-bean-resource-benchmark.test.ts feat(spring): index @Bean factories and @Resource injection (#2740) 2026-07-31 10:33:42 +01:00
spring-bean-resource-pipeline.test.ts feat(spring): index @Bean factories and @Resource injection (#2740) 2026-07-31 10:33:42 +01:00
spring-conditionals-pipeline.test.ts feat(spring): index @Bean factories and @Resource injection (#2740) 2026-07-31 10:33:42 +01:00
spring-config-mcp.test.ts feat(spring): bind configuration consumers 2026-07-21 10:07:20 +08:00
spring-config-pipeline.test.ts fix(spring): harden configuration bindings 2026-07-21 13:44:43 +08:00
spring-di-benchmark.test.ts feat(spring): resolve constructor and standard injection (#2632) 2026-07-24 08:25:38 +01:00
spring-di-pipeline.test.ts feat(spring): resolve constructor and standard injection (#2632) 2026-07-24 08:25:38 +01:00
spring-inheritance-benchmark.test.ts fix(ingestion/routes): resolve Spring interface-inherited routes (#2288) (#2290) 2026-06-25 09:22:20 +01:00
spring-interface-inheritance-pipeline.test.ts fix(ingestion/routes): resolve Spring interface-inherited routes (#2288) (#2290) 2026-06-25 09:22:20 +01:00
spring-route-pipeline.test.ts perf(group/http): skip source parse for graph-covered route files (#2138 Part 2) (#2265) 2026-06-23 07:22:43 +01:00
staleness-and-stability.test.ts fix(storage): rename index metadata to gitnexus.json with dual-write compatibility (#2363) 2026-07-03 19:32:59 +01:00
structural-pair-coverage.test.ts fix(schema): declare the full scope-resolution relation cross product (#2792) (#2793) 2026-08-02 16:26:25 +01:00
swift-conditional-directive.test.ts fix(swift): preprocess indented conditional directives so class bodies survive parsing (#2771) 2026-08-01 20:10:58 +00:00
swift-scope-capture-tripwire.test.ts feat(swift): migrate Swift to scope-based registry resolution (#937) (#1948) 2026-05-31 16:56:47 +01:00
taint-explain.test.ts feat(taint): expand TS/JS sink model (#2490) 2026-07-16 13:11:57 +01:00
this-boundary.test.ts fix(scope-resolution): a closure binding is a call SOURCE in every language, and function-local values carry their own identity (closes #2699) (#2718) 2026-07-28 18:25:19 +01:00
tree-sitter-languages.test.ts fix(swift): preprocess indented conditional directives so class bodies survive parsing (#2771) 2026-08-01 20:10:58 +00:00
typescript-async-generator-functions.test.ts fix(ingestion): index generator function declarations (#2305) 2026-06-26 13:37:02 +01:00
vue-pipeline-benchmark.test.ts feat(vue): migrate Vue SFC to scope-based resolution (RFC #909 Ring 3, closes #940) (#1950) 2026-06-03 21:48:38 +01:00
worker-pool.test.ts fix(tree-sitter): recover declarations after embedded NUL bytes (#2430) 2026-07-11 08:33:50 +01:00