GitNexus/gitnexus/test/unit
glier b15ff2d888
feat(ingestion): mint Destination nodes from AsyncAPI 3.x documents (#3140)
* feat(ingestion): read AsyncAPI 3.x documents into broker addresses

Adds a format-driven reader that turns the `operations[]` entries of an
AsyncAPI 3.x document into (broker, address, direction) triples, plus the
protocol-to-broker map behind it. Nothing consumes it yet.

The reader lives outside `frameworks/spring/` on purpose, like
`destination-key.ts` and for the same reason: an AsyncAPI document is a
published artifact emitted by generators across several language toolchains
and written by hand as often as generated. The entry criterion is therefore
the document format -- a root `asyncapi` key -- and never the generator.

AsyncAPI 2.x is refused under its own countable reason rather than mapped.
Its `publish`/`subscribe` are inverted relative to 3.x `send`/`receive`, so
a naive mapping reverses every direction in the async graph while leaving it
connected: nothing fails, the arrows simply point the wrong way. A silent
skip would be indistinguishable from "this service publishes no document",
which is the one thing the refusal count has to be able to tell us.

The broker is read twice over -- from the operation's bindings and from its
channel's server protocol -- and the two readings must agree. A destination
keyed on the wrong broker joins a stranger, and with the document
contradicting itself there is no way to tell which reading is right, so the
operation is refused rather than decided by a coin flip.

An unmapped protocol passes through as its own literal instead of being
dropped, because `destinationNodeKey` takes a plain string precisely so a
non-Spring caller can attest to a broker Spring has no member for.

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

* feat(cli): add --asyncapi-spec, an explicit path to AsyncAPI documents

Threads an `asyncApiSpecPath` option from the CLI, the server analyze
endpoint, and the programmatic entry through to `PipelineOptions`. Nothing
reads it yet; the reader added in the previous commit is still unwired.

Shaped deliberately after `springActuatorPath`, the existing option for an
out-of-band artifact: an explicit local path, accepting a directory or a
single file, resolved against the repository root so a committed
`docs/asyncapi` and an absolute cache populated by something else are both
natural, and `undefined` keeping the feature entirely off. Mirroring that
option rather than inventing a mechanism is what lets a downstream consumer
point the reader at documents fetched out of band without patching a file
here.

`analyze --watch` REJECTS the flag, exactly as it rejects --spring-actuator.
The watcher reacts to source changes and nothing watches a document
directory, so honouring it there would read the documents once and then
serve a stale answer for the rest of the session -- worse than refusing,
because it looks like it worked.

Additive only: 49 inserted lines, no deletions and no modified lines. Every
new interface member is optional and every forward is an object-literal
spread of an undefined value, so with the option unset the analyzer takes
byte-identical paths.

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

* feat(ingestion): mint Destination nodes from AsyncAPI documents

Wires the reader into the destinations phase. With `--asyncapi-spec` set,
every `send` operation emits PUBLISHES_TO and every `receive` emits
CONSUMES_FROM against the ordinary resolved `Destination` node -- same key,
same `address` property -- so a document and a source site that name one
address on one broker land on ONE node and the two halves of a conversation
meet. Verified end to end: an address named only in a document is minted
with the right broker and direction, and an address a source site already
resolved stays a single node with its own `literal` provenance while the
same address on a different broker stays separate.

This claims only what a document states -- that the service talks to that
address, on that broker, in that direction -- and never which method does
it. The addresses in one document partition by (broker, action) into buckets
that usually hold more than one operation, so any assignment past a bucket
of size one is a heuristic, and a wrong one attaches a real address to the
wrong handler: a false connection wearing the clothes of a resolved one. The
edge therefore starts at the document, not at a callable. That is weaker
than a source-derived edge and worth having anyway, because it is available
where the source supplies nothing at all -- a programmatically registered
listener, a broker with no patterns here, a language whose messaging idiom
nobody has taught this codebase yet.

Documents are read even when the source pass found no messaging, which is
why the early return had to move: a repository whose brokers are invisible
to the patterns is precisely the case a published document covers, and an
early return keyed on source sites skipped the documents exactly there.

Their counters are kept in their own block rather than folded into the
existing ones. `refusalsByReason` is the denominator of the SOURCE
unresolved fraction, and a mistyped specification directory must not be able
to make the source look worse than it is. The block is absent -- not zeroed
-- when no path was configured, so "not asked for" stays distinguishable
from "asked for and found nothing"; those need different answers from an
operator and one zero cannot say which happened.

The direction assertion is the one that matters and it is pinned by type,
not by existence: inverting the mapping in the source tree fails exactly one
test, because every other assertion passes identically under both readings.

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

* docs: document --asyncapi-spec and why step 4 of the cascade stays empty

Adds the flag to both READMEs and to the three byte-identical copies of the
CLI skill, which a sync test pins together.

Also rewrites the note on the `specification` seam in the address cascade.
It said "nothing supplies it today", which was true and is now misleading:
a reader exists, and the hook is still unsupplied because of a decision
rather than for want of one.

A document names addresses; it does not name the method that uses one. To
hand an address to a particular candidate something must choose which of the
document's operations belongs to it, and the only division both sides agree
on -- (broker, action) -- leaves buckets that usually hold more than one
operation. On a real generated document exactly one bucket of four was
unambiguous. Every assignment past a bucket of size one is a heuristic, and
a wrong one puts a REAL address on a joining node under the wrong site: a
false connection wearing the clothes of a resolved one, which is the outcome
the keying rule exists to prevent.

The note also records the two things that would change that and are not
heuristics -- a document carrying the implementing symbol, or a
configuration source answering the `${key}` the candidate already recorded
-- and that the second wants its own resolver, since what it needs is the
placeholder key rather than the candidate.

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

* fix(ingestion): refuse the document shapes that would forge a join

Four ways a conformant AsyncAPI document could mint a Destination that
connects two services which have said nothing about each other. Every one is
reachable from ordinary 3.x vocabulary, not from malformed input, and each is
now a countable refusal.

A PARAMETERIZED ADDRESS is a pattern, not a place. Two services that publish
`{env}.orders` share a template; one deploys with env=prod and the other with
env=staging, and keying on the template text merges them into a single node
with a publisher on one side and a subscriber on the other. This is the
document-side twin of `overridable-config-default`, which argues the same
thing about `${key:default}` in source. A channel declaring `parameters` is
the specification's own statement that its address is a template, so the
detector is a reading rather than a guess; the `{` test catches generators
that template without declaring.

ANY BINDINGS KEY WAS TAKEN AS A PROTOCOL. AsyncAPI allows `bindings` to be a
Reference Object, so the map's own key can be `$ref` -- and passed through,
that becomes half of a join key carrying no broker information at all. Two
services that both reference shared bindings and both name `orders` then land
on one node, defeating the broker-in-key rule that keeps `kafka orders` and
`rabbit orders` apart. A broker must now be spelled like a protocol name.

A BROKER CONTAINING A SPACE COLLIDES, because the node key joins with one:
("kafka orders", "x") and ("kafka", "orders x") are the same key. That was
latent while every broker came from Spring's closed union. This module is the
first caller to feed the shared helper text that a document wrote, which is
exactly the condition under which it stops being latent, so it is closed here
-- at the producer -- rather than by changing an encoding that `routeNodeKey`
shares.

THE ADDRESS WAS TRIMMED, while the source cascade keeps an address exactly as
written so `" orders "` stays its own node. Two producers of one key held
opposite whitespace policies and the document side erred toward joining.

Also: fold the transport-security protocol variants (`kafka-secure`,
`secure-mqtt`, `wss`, `stomps`, `https`) onto their base protocol. The
`amqp`->`rabbit` argument already in this file demands it -- AsyncAPI's server
vocabulary distinguishes them and its bindings vocabulary does not, so a
secured cluster's own document was being read as self-contradictory. Treat a
channel with no `servers` as available on all of the document's servers, which
is the specification's default and was costing every single-server document
its destinations. Bound the address and operation-id lengths, because
`generateId` concatenates rather than hashes, and bound total operations
across the run rather than only per document.

Read each file through ONE handle for both the size gate and the read, as
`actuator-runtime.ts` does and for the reason its comment gives (CodeQL
js/file-system-race): re-resolving the path lets a swapped file bypass the
cap, and the out-of-band cache this option reads is written by other tooling
by definition. Open it with O_NONBLOCK: the type check that rejects a FIFO is
unreachable without it, because opening a FIFO for reading blocks in open(2)
until a writer appears -- found by writing the test first and watching it time
out rather than fail.

Count symlinked entries and walk truncation instead of dropping them in
silence. A symlinked cache and a wrong path were producing identical results.

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

* fix(analyze): rebuild when documents are configured, and report what was read

An AsyncAPI document is external to git freshness in exactly the way an
Actuator snapshot is: replacing one moves no commit and dirties no file. The
option's own README paragraph advertises an absolute cache written by other
tooling, and on the second run of that workflow the already-up-to-date fast
path fired, no document was ever opened, and the previous run's addresses were
served as current. Measured, not reasoned: editing a document and re-running
printed "Already up to date" and left the old address in the graph; with this
change the same probe re-reads and the new address replaces it.

So an enabled run forces a rebuild and dropping the option forces one more, to
clear document-derived evidence -- the treatment `springActuatorPath` already
gets, for the same reason. Only the FLAG is recorded in index metadata, not
the path: Actuator retains its inputs so future scans keep excluding them,
whereas a committed document is deliberately NOT excluded (it wants its real
`File` node), so there is nothing to retain and recording the path would put
an operator's directory layout into metadata for no consumer.

That also settles a defect it would have been tempting to patch separately. A
synthetic `File` node for an out-of-tree document carries a path that is in no
write set and is not covered by `isGraphWideNode`, so an incremental writeback
dropped the node while keeping its edges -- which then COPY against a row that
was never written, and fail into an IGNORE_ERRORS retry that reports success.
A forced rebuild has no incremental subgraph to get that wrong.

Distinguish the two meanings of `resolution: 'specification'`. That value
belongs to the address cascade and means a CODE candidate was resolved through
the step-4 hook; a node minted from a document has no code site and now says
`asyncapi-document`. Reusing one string would leave a query that groups by
provenance unable to separate an address a document states from one a document
was used to resolve, and only the second is a claim about source.

Report what was read. The stats block was justified on the grounds that an
operator must be able to tell a mistyped directory from a repository with no
documents -- and nothing surfaced it, so the justification was aspirational. A
configured path that yields nothing, or a walk that hit a bound, now warns
unconditionally, as `spring-auto-configuration.ts` does for the same class of
input. The phase summary carries the refusal breakdown rather than only the
totals, because the unresolved fraction is the number this work is judged on
and a bare count says how big the gap is without saying what would close it.

Tests for the three wiring lines that were individually deletable with a green
suite, following the templates already in the repository: a row in the
`--watch` rejection table, the CLI-threading assertion beside the Actuator
one, and the shipped-skill fragment that pins the flag in all three copies.
Also pin `filePath: ''` on a spec-minted destination -- the half of the keying
rule that stops a shared node becoming collateral damage of one document's
next change -- and the in-repo `File` branch, which was dead-code-able.

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

* fix(ingestion): close the join-forging paths a second review round found

The `$ref` exclusion added last round fixed one instance of a class and left
the class open. A `bindings` map key of `x-scs-function` -- an ordinary
Specification Extension, which generators emit -- still became the broker, so
two unrelated services carrying one vendor annotation and one address landed
on ONE node whose broker half said nothing about any broker. And
`{ kafka: {}, x-internal: {} }` read as two brokers, losing a conformant
document and reporting it as self-contradictory, which also made any document
author a one-line saboteur of their own cross-service links.

So the two readers are now separate functions with opposite defaults, and the
header says why they must be. `servers[].protocol` is a FIELD DECLARED to hold
a protocol: an unrecognized value there is the document's own claim and passes
through, because refusing it would lose a destination the document states
plainly. A `bindings` MAP KEY is not that -- the specification puts `$ref` and
`x-` in the same namespace -- so a non-protocol key is the EXPECTED case and
only AsyncAPI's binding vocabulary may answer. The syntactic test that was
applied to both was the right rule for one of them.

The walk fix from last round introduced something worse than it reported. A
shared abort flag meant depth exhaustion in ONE branch terminated the whole
traversal, so ten good documents beside a twelve-deep unrelated subtree were
kept or lost depending on whether that subtree sorted before or after them.
Truncation and budget-exhaustion are now separate: depth returns from its own
branch, and only a genuinely global bound stops the walk.

Rewriting `protocol.ts` dropped the whitespace check from the server-protocol
path and made the node-key collision reachable again. The test written for
that collision last round caught it within the minute; the comment now records
that it was learned twice.

Everything else measured this round:

- The broker is the THIRD string that reaches a graph identifier, and it was
  unbounded while the header claimed there were two. A one-megabyte protocol in
  a document satisfying every other cap was measured producing a gigabyte of
  resident identifier strings, because `generateId` concatenates rather than
  hashes and the phase mints one id per node and per edge.
- The run-wide operation budget counted ACCEPTED operations, reproducing at the
  run level the exact defect the per-document cap was corrected for last round:
  a run whose every operation is refused never decrements it. Both now count
  operations EXAMINED, and `operation-cap` sets `truncated` -- it is a bound
  that stopped the operation count, which is what that flag is documented to
  mean.
- The channel-inherits-all-servers rule ran per operation. Hoisted: it depends
  only on the servers.
- A subdirectory that cannot be listed is counted rather than dropped, so a
  mixed-permission cache cannot report a clean, complete read.
- The read LOOPS, like the Actuator reader this claims to follow. A single read
  was never short across seven hundred probes on APFS, but POSIX permits it and
  FUSE mounts with `direct_io` -- the deployment this option targets -- return
  short counts. A document truncated at a line boundary still parses, so the
  failure is silent: operations vanish with `refusals: {}`.
- `parameters: {}` no longer refuses a literal address; an empty container
  states nothing and generators emit them.
- A channel that is itself a Reference Object gets its own reason instead of
  `no-address`, which was telling operators their documents omit addresses when
  the reader simply stops one hop short.
- A multi-protocol document resolves from its operation's own bindings; only
  when those are silent does an inherited multi-protocol server set refuse, and
  under `ambiguous-server-default` rather than a reason that says the document
  contradicts itself. It does not.
- HTTP and WebSocket are refused for destination minting. For a broker the
  topic is the namespace; for HTTP the host is, so keying on the path alone
  would make every service exposing `/events` one node. A `Route` already
  models an HTTP endpoint, with its method in the key.
- The sniff window is a parse gate, not a read gate, and four kilobytes refused
  a good document behind a licence header.

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

* test(ingestion): pin the wiring and the reporting that were deletable

Three lines could be deleted with the whole suite green, and each of them
makes the feature partly or wholly inert: the forward from `run-analyze` into
`PipelineOptions`, the forced rebuild while documents are configured, and the
cleanup rebuild when the option is dropped. None is visible one layer up,
where the CLI test asserts on a mock's arguments.

One integration test closes all three. It drives the real `runFullAnalysis`
against a real repository and asserts, in order: the enabled run does not take
the up-to-date fast path and logs the rebuild; the destination reaches the
graph, which only happens if the option is forwarded; a document edited with
the tree clean and the commit unchanged is re-read; dropping the option
rebuilds once and removes the document-derived evidence; and the run after
that is up to date again -- the "rebuilds once" half, which rests on the
metadata being written as a fresh literal rather than merged, and which
nothing pinned.

The document lives OUTSIDE the repository on purpose. That is the workflow the
option is documented for, and it is the only one where the hazard exists:
editing a tracked file dirties the tree and forces a rebuild anyway, so an
in-repo fixture would pass with the freshness fix reverted. Verified by
reverting both: deleting the forward fails on the empty destination list,
deleting the forced rebuild fails on the missing log line.

Also pinned, each because deleting the code it covers left the suite green:
the `parameters` half of the templated-address refusal (its old test supplied
a braced address too, so the `{` half alone satisfied it); the phase actually
forwarding `symlinksSkipped`; the unconditional warning, whose whole argument
is that a tally nobody can see is not a tally -- captured through the
repository's own `_captureLogger`; a `.yml` document; a character device,
which is the case the `isFile` check exists for and which the FIFO test does
not reach; and the bound that stops a walk.

Reject an empty `--asyncapi-spec` at the CLI. It resolved to the repository
root and walked the whole tree, defeating this module's own rule that there is
no glob-based auto-discovery -- and the HTTP entry point already rejected the
identical value. Two doors onto one option must not hold different rules.

Surface the flag in the MCP context resource beside `spring_actuator`. It
matters more there than for its neighbour: Actuator annotates nodes the source
pass already found, while document reading mints destinations and edges with
no code site, and nothing said where they came from.

Log the configured path relative to the repository. The same change refuses to
persist that path to index metadata because it would record an operator's
directory layout; holding that rule for metadata and not for logs was holding
it in one place.

Both test files now clean up their temporary directories.

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

* style(ingestion): apply the repository's prettier contract

`quality / format` runs `npx prettier --check .`, and three files added by this
branch were not formatted to it. No behaviour changes: the reader's line
breaks and two test literals move, nothing else.

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

* test(ingestion): release the mini-repo handle the document test allocated

`setupMiniRepo` documents that the caller owns cleanup, and every other test
in this file calls `repo.cleanup()` in its `finally`. The AsyncAPI document
test removed only the document directory, so each run left a temporary
repository behind.

The two owners are separate on purpose: the document directory is a SIBLING of
the repository, placed outside the working tree so that editing it cannot
dirty the tree and force a rebuild on its own. The repo's cleanup therefore
does not reach it, and both calls belong in the same block.

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

* fix(ingestion): stop partial server evidence from reading as unanimous

Six review findings, every one a way this reader could name a broker the
document does not name. They share a shape: something is DROPPED rather than
refused, the remaining evidence agrees with itself, and an operation is
attributed with confidence to a broker its document never settled on. A wrong
broker is half a join key, so it does not produce a missing edge -- it produces
an edge to a stranger, reported as a fact.

CAPPED SERVER MAPS. A channel with no `servers` inherits all of them, and that
map is capped at 1,000. A document whose first thousand servers are Kafka and
whose thousand-and-first is JMS read as unanimously Kafka, because unanimity
was tested on the slice. Counted `server-cap` and set `truncated`, but neither
stopped the attribution. The inherited path now refuses under
`capped-server-default` -- checked BEFORE agreement, since a subset agrees with
itself for free.

ROOT SERVER REFERENCE OBJECTS. The Servers Object patterned field is
`Server Object | Reference Object`, so `{ $ref: '#/components/servers/prod' }`
is conformant. Reading `protocol` off the raw value dropped every one: an
all-reference document had no protocol at all, and -- worse -- a MIXED set lost
its disagreeing half and became unanimous. One hop is now followed, through
`#/servers` and `#/components/servers`; anything else is refused under
`unresolved-server-reference` rather than skipped.

CHANNEL BINDINGS. Only the operation's bindings were read. A conformant channel
carrying `bindings: { kafka: {} }` with no operation binding was dropped as
`protocol-unknown` while the document said plainly which broker it meant, and a
disagreement between the two levels was invisible. Both are read; a conflict is
`protocol-disagreement`.

EMPTY `servers`. "If `servers` is absent or empty, this channel MUST be
available on all the servers defined in the Servers Object" -- one sentence,
both cases. A zero-iteration loop returned `explicit: true`, which blocked the
inherited fallback and dropped valid operations.

POINTER DECODING ORDER. RFC 6901 percent-decodes the fragment BEFORE splitting
on `/`. The raw token was tested for a separator first, so `#/channels/orders%2Fv1`
passed a check it should have failed and then decoded into two segments -- a
pointer addressing `channels.orders.v1` was read as a channel named `orders/v1`,
inventing a channel the document never declared. A malformed escape is now
refused rather than resolved against its undecoded text. `~1` still resolves; it
is the pointer's own escape and belongs after segmentation.

THE SNIFF WINDOW. A fixed window decides by where the root key sits rather than
whether it is there, so every window is a false negative waiting for a longer
preamble -- 4 KiB was replaced by 64 KiB for that reason and inherited the same
defect. The whole text is scanned; it is already bounded and already in memory,
and the gate exists to skip the PARSE, which is the expensive half. A leading
UTF-8 BOM is stripped before both sniff and parse.

Twelve of the fourteen new tests were run against the unfixed reader and all
twelve failed; the other two are controls that must pass either way.

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

* refactor(ingestion): simplify AsyncAPI pointer and binding resolution

Decode each $ref once, union binding evidence, and stop walking capped
server maps whose brokers are unused on the inherit path.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-authored-by: Gergő Magyar <gergomagyar@icloud.com>
Co-authored-by: Gergo Magyar <gergomagyar0@gmail.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-02 22:01:15 +00:00
..
call-routing refactor(ingestion): delete legacy call-resolution DAG + heritage processor (RING4-1, #942) (#2023) 2026-06-04 11:07:37 +01:00
cfg feat(taint): add Python source/sink model (#2253) 2026-06-20 21:47:06 +01:00
group feat(node): wrapped-client HTTP consumers + leading-prefix template stripping (#3111) 2026-09-02 19:59:45 +00:00
import-resolvers fix(scope-resolution): resolve a package whose directory name repeats higher in the path (#2881) (#2929) 2026-08-12 10:26:39 +01:00
ingestion feat(ingestion): resolve Spring messaging destinations into Destination nodes (#3132) 2026-09-02 11:46:50 +01:00
integrations fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
lbug fix: close the nine follow-up review findings from #2856 (routes, receiver typing, truncation honesty) (#2899) 2026-08-09 11:44:52 +01:00
mcp fix(search): surface warning when FTS indexes are missing (#1418) 2026-05-08 17:05:18 +01:00
model perf(emit): drop six equivalent redundancies on Java-scale index path (#3129) 2026-09-01 11:22:55 +00:00
scope-resolution perf(emit): drop six equivalent redundancies on Java-scale index path (#3129) 2026-09-01 11:22:55 +00:00
storage perf(store): V8 sidecars plus hardlinked ParsedFile restore (#3099) 2026-08-30 20:50:20 +00:00
taint feat(taint): expand TS/JS sink model (#2490) 2026-07-16 13:11:57 +01:00
workers fix(workers): resilient + zero-copy ingestion worker pool — prevent analyze hangs on TS-root-scale loads (#1693) 2026-05-20 20:39:35 +01:00
ai-context-read-path-must.test.ts fix: MUST graph tools on structural reads in generated agent block (#3125) 2026-09-01 09:03:08 +00:00
ai-context-unknown-risk-policy.test.ts fix(impact): make File risk comparable via shared axes (#3075) (#3082) 2026-08-29 11:58:15 +00:00
ai-context.test.ts fix: stop analyze from clobbering customized GitNexus skills (#3124) 2026-09-01 09:56:48 +00:00
analysis-features.test.ts feat(route): resolve vendor-derived Spring mapping annotations by suffix (#2883) 2026-09-02 21:01:59 +00:00
analyze-api.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
analyze-community-skills-gate.test.ts feat(cli): add --skip-skills and --index-only flags to analyze (resubmit of #742) (#1485) 2026-05-11 15:00:58 +01:00
analyze-config.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
analyze-embedding-endpoint-flags.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
analyze-embeddings-limit.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
analyze-finalize-failure-exits.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
analyze-gitnexusrc.test.ts fix(cli): make Claude skills discoverable (#2434) 2026-07-15 20:40:20 +05:00
analyze-heap-respawn.test.ts feat(analyze): add incremental watch mode (#3072) 2026-08-29 10:40:56 +00:00
analyze-http-endpoint-error.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
analyze-job.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
analyze-launch-collapse.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
analyze-lbug-checkpoint-threshold.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
analyze-local-embedding-error.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
analyze-no-stats-bridge.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
analyze-pagesize-error.test.ts fix(cli): actionable diagnostics for non-4K page-size buffer manager failures (#2424) 2026-07-10 19:12:53 +01:00
analyze-respawn-progress-terminal.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
analyze-self-commit-bridge.test.ts feat(analyze): add opt-in --self-commit flag for AGENTS.md/CLAUDE.md churn (#2640) 2026-07-25 06:23:26 +01:00
analyze-undeclared-pair-error.test.ts fix(schema): declare the full scope-resolution relation cross product (#2792) (#2793) 2026-08-02 16:26:25 +01:00
analyze-wal-error.test.ts fix(cli): actionable diagnostics for non-4K page-size buffer manager failures (#2424) 2026-07-10 19:12:53 +01:00
analyze-wipe-error.test.ts fix(cli): actionable diagnostics for non-4K page-size buffer manager failures (#2424) 2026-07-10 19:12:53 +01:00
analyze-worker-core.test.ts fix(analyze): single-writer lock for the index write path (#2658) (#2677) 2026-07-25 05:08:13 +01:00
analyze-worker-ipc.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
analyze-worker-pool-size.test.ts feat(ingestion): mint Destination nodes from AsyncAPI 3.x documents (#3140) 2026-09-02 22:01:15 +00:00
analyze-worker-timeout.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
analyzer-identity-in-process-guards.test.ts perf(emit): drop six equivalent redundancies on Java-scale index path (#3129) 2026-09-01 11:22:55 +00:00
analyzer-identity-is-inside.test.ts fix(analyzer): reject cross-drive paths in the identity containment guard (#2688) 2026-07-25 08:21:34 +01:00
analyzer-identity-linked-dev-dependency.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
analyzer-identity-path-normalization.test.ts fix: index staleness — false-stale status after analyze (#2668) + inline staleness in query/context/impact/cypher tools (#2655) (#2683) 2026-07-25 07:21:44 +01:00
analyzer-identity-symlink.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
analyzer-identity.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
api-analyze-token.test.ts feat(analyze): private GitHub repos via PAT + Azure DevOps Server support (#2076, #2210) (#2223) 2026-06-16 05:49:02 +01:00
api-analyze-upload.test.ts feat(serve): validate and port-scope the origin/proxy configuration surface (#2820) 2026-08-05 06:52:39 +01:00
api-file-route.test.ts fix(server): close js/path-injection cluster — /api/file + docker-server.mjs (U2) (#1322) 2026-05-04 12:28:02 +01:00
api-graph-streaming.test.ts feat(ingestion): resolve Spring messaging destinations into Destination nodes (#3132) 2026-09-02 11:46:50 +01:00
api-query-readonly-wiring.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
api-readonly-wiring.test.ts fix(embeddings): make HTTP generation resumable 2026-07-14 02:15:57 +07:00
assert-publish-grammar-coverage.test.ts fix(grammars): load vendored tree-sitter grammars from vendor/ by absolute path (#2111) (#2144) 2026-06-10 14:20:42 +01:00
ast-utils.test.ts fix(swift): preprocess indented conditional directives so class bodies survive parsing (#2771) 2026-08-01 20:10:58 +00:00
asyncapi-document.test.ts feat(ingestion): mint Destination nodes from AsyncAPI 3.x documents (#3140) 2026-09-02 22:01:15 +00:00
auto-sync-analysis-worker.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
auto-sync-runner.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
auto-sync.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
basicblock-callee-ids-schema.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
binding-accumulator.test.ts refactor(pipeline): DAG-based phase architecture + container-logic extraction to LanguageProvider (#809) 2026-04-13 20:31:05 +01:00
blade-template-routes.test.ts feat(ingestion/routes): give Route nodes a (method, url) identity (#2289) (#2302) 2026-06-26 07:59:46 +01:00
bm25-search.test.ts fix(mcp): resolve false FTS-missing warnings in the query tool (#2773) 2026-08-01 08:42:51 +01:00
build-tree-sitter-grammars-probe.test.ts fix(grammars): load vendored tree-sitter grammars from vendor/ by absolute path (#2111) (#2144) 2026-06-10 14:20:42 +01:00
c-static-linkage-side-channel.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
call-attribution-issue-1166.test.ts fix(typescript): fix HOC pattern false positives and add export default HOC support (#1943) 2026-05-31 15:40:17 +01:00
call-extraction.test.ts feat(ingestion): language-agnostic call extractor with config+factory pattern (#877) 2026-04-16 11:45:30 +01:00
call-form.test.ts fix(grammars): load vendored tree-sitter grammars from vendor/ by absolute path (#2111) (#2144) 2026-06-10 14:20:42 +01:00
call-processor-routes.test.ts refactor(ingestion): delete legacy resolution context + tiered-lookup plumbing (RING4-2, #943) (#2033) 2026-06-04 17:51:28 +01:00
call-summary-schema-version.test.ts fix(ingestion): preserve object handler identity (#3046) 2026-08-26 15:44:33 +01:00
callable-id-lockstep.test.ts fix(ingestion): join multi-line closure bindings on initializer startLine (#2735) (#2762) 2026-07-31 11:58:47 +01:00
calltool-dispatch-id-bridge.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
calltool-dispatch.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
canonicalize-path-long-path-prefix.test.ts fix(storage): stop the Windows \\?\ long-path prefix from breaking repo path matching (#2667) (#2700) 2026-07-26 09:07:55 +01:00
cfg-callee-ids-of-block.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
cfg-callees-of-block.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
cfg-site-position.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
checkpoint-busy-2599.test.ts fix(lbug/analyze): atomic index swap + read-pool staleness invalidation (#2614) 2026-07-21 21:58:00 +01:00
chunker.test.ts fix(swift): preprocess indented conditional directives so class bodies survive parsing (#2771) 2026-08-01 20:10:58 +00:00
cjk-segmentation.test.ts feat(search): add opt-in CJK bigram segmentation for FTS search (#2339) 2026-07-01 16:41:41 +01:00
cli-commands.test.ts feat: full Codex support — hooks, plugin marketplace, and setup (#2328, supersedes #1131) (#2369) 2026-07-04 13:32:17 +01:00
cli-entry.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
cli-i18n.test.ts feat(i18n): make web and CLI language-aware (#1748) 2026-05-23 06:14:24 +01:00
cli-impact-disambiguation.test.ts feat(cli): add --uid/--file/--kind disambiguation flags to impact (#1907) (#1914) 2026-05-30 11:03:13 +01:00
cli-impact-pdg-format.test.ts fix(impact): make File risk comparable via shared axes (#3075) (#3082) 2026-08-29 11:58:15 +00:00
cli-index-help.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
cli-message.test.ts feat(i18n): make web and CLI language-aware (#1748) 2026-05-23 06:14:24 +01:00
clone-safety-cloneable.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
clone-safety-payloads.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
clone-safety.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
cobol-copy-expander.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
cobol-preprocessor.test.ts feat: configure eslint with unused import removal (#564) 2026-03-28 15:28:09 +00:00
cohesion-consistency.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
community-processor.test.ts perf(communities): fix the O(communities x N) copy in vendored Leiden, wire Icebug to its real API (#2337) (#2692) 2026-07-25 13:23:17 +01:00
compatible-stdio-transport.test.ts fix(mcp): prevent orphan processes by handling stdin close/end and startup race condition (#2049) 2026-06-05 08:36:28 +01:00
conn-lock.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
constant-resolver.test.ts fix: resolve imported/composed FastAPI route path constants (#2391) (#2393) 2026-07-07 13:23:05 +01:00
convex-dispatch-metadata.test.ts fix(impact): mark Convex caller results incomplete (#3044) 2026-08-26 12:54:00 +01:00
convex-metadata-persistence-contract.test.ts fix(impact): mark Convex caller results incomplete (#3044) 2026-08-26 12:54:00 +01:00
convex-metadata.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
cors.test.ts feat(serve): validate and port-scope the origin/proxy configuration surface (#2820) 2026-08-05 06:52:39 +01:00
cpp-captures-budget.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-ue-preprocessor.test.ts feat(extractors): strip Unreal Engine reflection macros before C++ parsing (#1439) 2026-05-09 12:28:32 +01:00
cross-file-routes.test.ts feat(group): Support Django route extraction for multi-repo (#1836) 2026-06-21 20:11:30 +01:00
cross-platform-shard.test.ts feat(analyze): add incremental watch mode (#3072) 2026-08-29 10:40:56 +00:00
csharp-namespace-extraction.test.ts fix(csharp): stop spurious IMPORTS edges from ungated using-resolution (#1881) (#1908) 2026-05-30 09:56:26 +01:00
csv-escaping.test.ts fix(fts): keep binary payloads out of the description column, confine an unbuildable index to its own table (#2919) 2026-08-10 21:16:11 +01:00
cursor-hook.test.ts fix(cursor): preserve quoted shell search patterns (#2938) 2026-08-29 11:33:22 +00:00
cypher-escape.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
dart-import-resolver.test.ts refactor(ingestion): split ImportSemantics into per-strategy hooks (Strategies 1-4) (#886) 2026-04-16 19:31:44 +01:00
dart-type-extractor.test.ts feat: configure eslint with unused import removal (#564) 2026-03-28 15:28:09 +00:00
data-route-table-routes.test.ts feat(routes): support JS data route tables (#2972) 2026-08-18 04:39:45 +01:00
deferred-resolution-profile.test.ts feat(workers): self-healing worker pool + deferred-resolution observability (#1741) (#1947) 2026-05-31 13:52:04 +01:00
definition-properties.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
detect-changes-eol.test.ts fix(cli): do not call zero-symbol detect-changes a clean tree (#3138) 2026-09-02 18:59:53 +01:00
detect-changes-format.test.ts fix(cli): do not call zero-symbol detect-changes a clean tree (#3138) 2026-09-02 18:59:53 +01:00
detect-changes-hunk-scale.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
detect-changes-local-id-stability.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
detect-changes-worktree.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
dispatch-guard-routes.test.ts fix: close the nine follow-up review findings from #2856 (routes, receiver typing, truncation honesty) (#2899) 2026-08-09 11:44:52 +01:00
django-root-discovery.test.ts feat(group): Support Django route extraction for multi-repo (#1836) 2026-06-21 20:11:30 +01:00
django-route-extraction.test.ts feat(group): Support Django route extraction for multi-repo (#1836) 2026-06-21 20:11:30 +01:00
dockerfile-runtime-asset-parity.test.ts fix(docker): ship runtime-needed published assets (hooks/, skills/) into the image (#2130) (#2132) 2026-06-10 08:38:37 +01:00
doctor-format.test.ts feat(cli): add a bunx lane so bun-only machines can run gitnexus (#2765) 2026-08-06 08:40:36 +00:00
drop-fts-index-error-classification.test.ts fix(analyze): gate FTS-indexed DML before the incremental writeback (#2841) (#2854) 2026-08-07 09:44:44 +01:00
embedder.test.ts test: add test suite with vitest (unit + integration + fixtures) 2026-03-01 20:07:02 +05:30
embedding-checkpoint.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
embedding-chunking.test.ts fix(swift): preprocess indented conditional directives so class bodies survive parsing (#2771) 2026-08-01 20:10:58 +00:00
embedding-config.test.ts fix: add platform-aware semantic fallback (#1150) 2026-04-28 12:21:25 +01:00
embedding-count.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
embedding-dims-guard.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
embedding-dims.test.ts feat(cli): add --embeddings-baseurl/-model/-auth-token/-dims flags to analyze (#2140) 2026-06-13 14:01:12 +01:00
embedding-install-arg-delivery.test.ts fix: proxy-blocked installs survive onnxruntime-node postinstall and self-heal embeddings (#2370) (#2372) 2026-07-05 16:15:10 +01:00
embedding-pipeline.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
embedding-runtime-install.test.ts fix: proxy-blocked installs survive onnxruntime-node postinstall and self-heal embeddings (#2370) (#2372) 2026-07-05 16:15:10 +01:00
embedding-runtime-resolution.test.ts fix: proxy-blocked installs survive onnxruntime-node postinstall and self-heal embeddings (#2370) (#2372) 2026-07-05 16:15:10 +01:00
embedding-runtime-support.test.ts fix: proxy-blocked installs survive onnxruntime-node postinstall and self-heal embeddings (#2370) (#2372) 2026-07-05 16:15:10 +01:00
embeddings-install-command.test.ts fix: proxy-blocked installs survive onnxruntime-node postinstall and self-heal embeddings (#2370) (#2372) 2026-07-05 16:15:10 +01:00
engineering-skills-contract.test.ts fix(skills): publish gitnexus-plan artifacts on macOS without an interpreter (#2905) (#2922) 2026-08-11 12:24:53 +01:00
ensure-initialized-reinit-watermark.test.ts fix(mcp): resolve false FTS-missing warnings in the query tool (#2773) 2026-08-01 08:42:51 +01:00
entry-point-scoring.test.ts refactor(ingestion): consolidate per-language patterns into LanguageProvider (#1279) 2026-05-03 10:34:00 +01:00
env.test.ts feat(ingestion): log deferred resolution progress when verbose (#1741) (#1773) 2026-05-22 12:37:30 +01:00
esm-extension-resolution.test.ts fix: apply ESM .js extension fallback to tsconfig path alias resolution (#1530) 2026-05-14 16:15:17 +01:00
eval-formatters.test.ts fix(cli): do not call zero-symbol detect-changes a clean tree (#3138) 2026-09-02 18:59:53 +01:00
eval-server-auth.test.ts fix(eval): defer env file read errors to binds that need a token 2026-07-16 08:25:52 +00:00
eval-server-bind-restriction.test.ts test(cli): stabilize eval-server host checks (#1786) 2026-05-23 16:45:35 +01:00
eval-server-tool-allowlist.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
evidence-provenance-helper.test.ts fix(skills): publish gitnexus-plan artifacts on macOS without an interpreter (#2905) (#2922) 2026-08-11 12:24:53 +01:00
exact-search.test.ts fix(search): make vector distance threshold configurable (#2330) 2026-07-01 05:37:46 +01:00
expo-routes.test.ts feat: add Expo Router file-based route detection (#503) 2026-03-25 11:05:55 +00:00
extension-load-error.test.ts fix: stop misdiagnosing glibc-too-old native loads (#2672) and name the Windows FTS zero-install fix (#2669) (#2689) 2026-07-25 10:05:57 +01:00
extract-element-type-from-string.test.ts feat: Phase 6 type resolution — for-loop Tier 1c, pattern matching, container descriptors, 10-language coverage (#318) 2026-03-17 17:10:22 +00:00
extract-generic-type-args.test.ts feat(ingestion): tree-sitter node-type/field validation gate + remove dead literals (#1937) 2026-05-31 10:29:41 +01:00
fastapi-router-bindings.test.ts fix(fastapi): apply APIRouter constructor prefixes (#2312) 2026-06-28 13:37:31 +01:00
fetch-reason-parsing.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
fetch-site-capture.test.ts fix: close the nine follow-up review findings from #2856 (routes, receiver typing, truncation honesty) (#2899) 2026-08-09 11:44:52 +01:00
field-extraction.test.ts feat: add Spring DI resolver for @Autowired List<T> injection (#2200) 2026-07-02 17:49:46 +01:00
file-lock.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
filesystem-walker-order.test.ts fix(scan): canonicalize traversal without order-sensitive Rust binding 2026-07-14 12:21:40 +07:00
format-elapsed.test.ts feat(progress): add per-language progress reporting to scope-resolution phase (#1813) 2026-05-25 11:53:54 +01:00
framework-detection.test.ts refactor(ingestion): consolidate per-language patterns into LanguageProvider (#1279) 2026-05-03 10:34:00 +01:00
fts-degraded-warning.test.ts fix(mcp): resolve false FTS-missing warnings in the query tool (#2773) 2026-08-01 08:42:51 +01:00
fts-indexes.test.ts fix(analyze): make incremental analyze skip the derived layers it can reuse (#3016) (#3102) 2026-08-30 17:07:57 +00:00
fts-rss-verdict.test.ts fix: batch query enrichment, bake FTS extension into CLI image, add FTS memory repro (#2108) 2026-06-09 08:46:46 +01:00
fts-schema.test.ts fix(search): index description field for FTS so doc comments are keyword-searchable (#2300) 2026-06-25 14:21:44 +01:00
git-clone.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
git-utils.test.ts fix(status): judge freshness by covered files, not a dirty working tree (#3083) 2026-08-29 12:56:41 +00:00
git.test.ts perf(config): memoize core.excludesFile / info/exclude resolution (#2606) 2026-07-21 19:09:50 +00:00
gitnexus-home-roots.test.ts fix(server): resolve clone/upload/mapping roots from GITNEXUS_HOME (#2229) 2026-06-18 17:39:44 +01:00
grammar-update-monitor.test.ts fix(lang-kotlin): support fun interface extraction via tree-sitter-kotlin re-vendor (#2271) 2026-06-23 10:01:28 +01:00
graph-collapse-wiring.test.ts fix: close the nine follow-up review findings from #2856 (routes, receiver typing, truncation honesty) (#2899) 2026-08-09 11:44:52 +01:00
graph.test.ts feat(python): scope-based call resolution + registry-primary flip + perf + generalization (RFC #909 Ring 3) (#980) 2026-04-21 15:50:00 +01:00
grep-params.test.ts fix(server,web): honor the grep tool contract — real regex, fileFilter, caseSensitive (#3109) 2026-08-31 20:43:28 +01:00
grep-scan.test.ts fix(server,web): honor the grep tool contract — real regex, fileFilter, caseSensitive (#3109) 2026-08-31 20:43:28 +01:00
group-service-not-found.test.ts fix(group): fail ambiguous sync names and honor analyze --name (#3094) 2026-08-29 21:48:46 +00:00
has-method.test.ts feat: MethodExtractor configs for Python, PHP, Swift, Dart, Rust, Ruby (#624) 2026-04-03 16:11:31 +01:00
hf-env.test.ts feat: shared resilient-fetch (retries + circuit breaker) (#1448) 2026-05-09 15:18:09 +01:00
hook-db-lock-probe.test.ts perf(hooks): cmdline-first Linux db-lock scan, drop the lsof fallback (#2180) (#2183) 2026-06-13 11:52:14 +01:00
hooks.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
http-client-safe-url.test.ts feat(cli): add --embeddings-baseurl/-model/-auth-token/-dims flags to analyze (#2140) 2026-06-13 14:01:12 +01:00
http-embedder.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
http-embedding-body-retry.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
hybrid-search.test.ts fix(search): guard against undefined bm25Results when FTS unavailable (#1489) (#1540) 2026-05-13 12:30:21 +01:00
ignore-build-output.test.ts fix(ingestion): ignore emitted Next.js build output, and delete the inert public/build entry (#3018) 2026-08-27 13:29:05 +01:00
ignore-service.test.ts fix(ingestion): ignore emitted Next.js build output, and delete the inert public/build entry (#3018) 2026-08-27 13:29:05 +01:00
impact-batching-grouping.test.ts fix(impact): make File risk comparable via shared axes (#3075) (#3082) 2026-08-29 11:58:15 +00:00
impact-confidence.test.ts feat: METHOD_IMPLEMENTS edges, overload disambiguation, MethodExtractor unification (#574) (#642) 2026-04-04 18:41:47 +01:00
impact-pagination.test.ts fix(mcp): make impact/context reproducible — deterministic ordering on every capped query (#2787) (#2796) 2026-08-02 17:03:15 +00:00
impact-pdg-ascent-note.test.ts perf(mcp): cut the analyze-only language-provider closure out of MCP server startup (#2802) (#2806) 2026-08-03 21:26:13 +01:00
impact-pdg-blast-radius-metrics.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-compose-dedup.test.ts fix(impact): resolve repo-relative file paths via filePath (fixes #3074) (#3084) 2026-08-29 10:57:59 +01:00
impact-pdg-id-bridge-gate.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-vs-name-metrics.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-metric-math.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-real-code-metrics.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-risk.test.ts fix(impact): make File risk comparable via shared axes (#3075) (#3082) 2026-08-29 11:58:15 +00:00
import-cycles.test.ts fix(check): stop reporting erased and deferred imports as initialization cycles (#2934) 2026-08-12 17:09:32 +00:00
import-resolver-factory.test.ts fix(csharp): stop spurious IMPORTS edges from ungated using-resolution (#1881) (#1908) 2026-05-30 09:56:26 +01:00
incremental-derived-writeback.test.ts fix(analyze): make incremental analyze skip the derived layers it can reuse (#3016) (#3102) 2026-08-30 17:07:57 +00:00
incremental-dirty-recovery.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
incremental-escalation-gate.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
incremental-file-hash.test.ts feat(analyze): incremental indexing (parse cache + DB writeback + scope-res short-circuit) (#1479) 2026-05-12 13:14:56 +01:00
incremental-fts-drop-ordering.test.ts fix(analyze): make incremental analyze skip the derived layers it can reuse (#3016) (#3102) 2026-08-30 17:07:57 +00:00
incremental-index-extension-dml-gate.test.ts fix(analyze): gate FTS-indexed DML before the incremental writeback (#2841) (#2854) 2026-08-07 09:44:44 +01:00
incremental-orchestration.test.ts feat(ingestion): mint Destination nodes from AsyncAPI 3.x documents (#3140) 2026-09-02 22:01:15 +00:00
incremental-parse-cache.test.ts feat(kotlin): ingest Spring HTTP routes as decoratorRoutes (#3133) 2026-09-01 23:06:56 +01:00
incremental-shadow-candidates.test.ts feat(analyze): incremental indexing (parse cache + DB writeback + scope-res short-circuit) (#1479) 2026-05-12 13:14:56 +01:00
incremental-subgraph-extract.test.ts feat(ingestion): resolve Spring messaging destinations into Destination nodes (#3132) 2026-09-02 11:46:50 +01:00
incremental-vector-extension-ordering.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
index-content-drift.test.ts fix(status): judge freshness by covered files, not a dirty working tree (#3083) 2026-08-29 12:56:41 +00:00
index-freshness-graph-collapse.test.ts fix(impact): report scope extraction omissions (#3071) 2026-08-29 08:38:20 +01:00
index-lock.test.ts fix(analyze): single-writer lock for the index write path (#2658) (#2677) 2026-07-25 05:08:13 +01:00
index-repo-command.test.ts fix(storage): rename index metadata to gitnexus.json with dual-write compatibility (#2363) 2026-07-03 19:32:59 +01:00
ingestion-utils.test.ts fix(ingestion): index JavaScript module extensions (#3034) 2026-08-24 08:27:23 +01:00
install-duckdb-extension.test.ts fix(fts): diagnose Windows FTS missing-dependency load failures (#2374, Phase 1) (#2383) 2026-07-06 21:27:37 +01:00
java-call-arity.test.ts feat(ingestion): tree-sitter node-type/field validation gate + remove dead literals (#1937) 2026-05-31 10:29:41 +01:00
java-description-extractor.test.ts feat(ingestion): make doc comments searchable across all languages (#2286) 2026-06-24 08:36:55 +01:00
java-module-resolution.test.ts fix(java): resolve imports from declared packages (#2955) 2026-08-15 11:53:28 +01:00
java-route-const-pipeline-e2e.test.ts feat(jvm): fold Java static wildcards and Kotlin star imports for route constants (#3110) 2026-08-31 21:58:40 +00:00
java-route-const-resolver.test.ts feat(jvm): fold Java static wildcards and Kotlin star imports for route constants (#3110) 2026-08-31 21:58:40 +00:00
java-runtime-symbol-strategy.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
java-spring-route-ingestion.test.ts feat(ingestion): Java Spring route annotation → Route node extraction (#2078) 2026-06-10 09:44:56 +01:00
jcl-parser.test.ts feat: configure eslint with unused import removal (#564) 2026-03-28 15:28:09 +00:00
jvm-package-siblings.test.ts fix(jvm): enforce proximity-bounded sibling injection (#2732) 2026-08-01 09:38:10 +01:00
kotlin-description-extractor.test.ts feat(ingestion): make doc comments searchable across all languages (#2286) 2026-06-24 08:36:55 +01:00
kotlin-lombok-synthesizer.test.ts feat(jvm): synthesize Lombok and Kotlin JVM accessor methods (#2885) 2026-08-31 17:55:52 +00:00
kotlin-module-resolution.test.ts fix(kotlin): resolve imports from declared packages (#2990) 2026-08-18 20:47:30 -07:00
kotlin-route-const-resolver.test.ts feat(jvm): fold Java static wildcards and Kotlin star imports for route constants (#3110) 2026-08-31 21:58:40 +00:00
kotlin-runtime-symbol-strategy.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
kotlin-scope-captures.test.ts fix(kotlin): detect default parameter arity (#2034) 2026-06-04 17:28:04 +01:00
kotlin-spring-route-ingestion.test.ts feat(route): resolve vendor-derived Spring mapping annotations by suffix (#2883) 2026-09-02 21:01:59 +00:00
kotlin-static-marker.test.ts feat(lang-kotlin): flip Kotlin to MIGRATED_LANGUAGES + close #1756 / #1757 (refs #1746) (#1782) 2026-05-23 07:24:35 +01:00
language-availability-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
language-provider-route-constants.test.ts feat(jvm): fold Java static wildcards and Kotlin star imports for route constants (#3110) 2026-08-31 21:58:40 +00:00
language-skip.test.ts fix(swift): use official prebuilt parser runtime (#1130) 2026-04-28 09:57:42 +01:00
laravel-route-extraction.test.ts refactor(ingestion): delete legacy resolution context + tiered-lookup plumbing (RING4-2, #943) (#2033) 2026-06-04 17:51:28 +01:00
lazy-action.test.ts fix(cli): LadybugDB native-load failures fail closed, incl. truncated-binary SIGBUS (#2441) (#2651) 2026-07-23 11:59:56 +01:00
lbug-adapter-wal-schema.test.ts feat(spring): index @Bean factories and @Resource injection (#2740) 2026-07-31 10:33:42 +01:00
lbug-checkpoint-lifecycle.test.ts fix(lbug): reclaim missing-shadow WAL quarantine files on write-path init (#2638) 2026-07-22 21:30:52 +01:00
lbug-checkpoint.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-config-pagesize.test.ts fix(lbug): scale the buffer-pool budget by the OS page-size granule ratio (#2631) (#2636) 2026-07-22 20:09:48 +01:00
lbug-config-wal.test.ts fix(lbug): scale the buffer-pool budget by the OS page-size granule ratio (#2631) (#2636) 2026-07-22 20:09:48 +01:00
lbug-delete-all-error.test.ts feat: add Spring DI resolver for @Autowired List<T> injection (#2200) 2026-07-02 17:49:46 +01:00
lbug-embedding-hashes.test.ts feat(embeddings): AST-aware chunking with offset-based splitting (#889) 2026-04-16 22:55:04 +01:00
lbug-extension-loader.test.ts fix(fts): stop warning "FTS extension unavailable" on the run that installs it 2026-07-26 07:42:08 +02:00
lbug-missing-staging-csv.test.ts feat: close reported graph blind spots in reference resolution, analyze and storage (#2856) 2026-08-08 09:58:14 +01:00
lbug-native-check.test.ts feat(cli): add a bunx lane so bun-only machines can run gitnexus (#2765) 2026-08-06 08:40:36 +00:00
lbug-native-safe-path.test.ts perf(cfg): streaming/chunked PDG graph emit for full-kernel-scale repos (#2202) (#2216) 2026-06-16 05:04:10 +01:00
lbug-pool-fts-load.test.ts fix(storage): load VECTOR only when needed (#3045) 2026-08-26 12:57:56 +00:00
lbug-pool-pinning.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-result-utils.test.ts fix(parse): correct worker-pool docs drift + surface worker-side stack on crash (#2068) (#2070) 2026-06-08 07:20:12 +01:00
lbug-readonly-error.test.ts fix(parse): correct worker-pool docs drift + surface worker-side stack on crash (#2068) (#2070) 2026-06-08 07:20:12 +01:00
lbug-wipe-db-files.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
leading-doc-comment.test.ts feat(ingestion): make doc comments searchable across all languages (#2286) 2026-06-24 08:36:55 +01:00
leading-doc-description-all-languages.test.ts fix(go): scope and define each type_spec, not the type_declaration (#2837) (#2843) 2026-08-06 00:55:48 +01:00
line-base-conversion.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
list-status-branch.test.ts fix(status): judge freshness by covered files, not a dirty working tree (#3083) 2026-08-29 12:56:41 +00:00
local-backend-embedding-dims-warn.test.ts fix(storage): load VECTOR only when needed (#3045) 2026-08-26 12:57:56 +00:00
local-backend-lazy-vector.test.ts fix(storage): load VECTOR only when needed (#3045) 2026-08-26 12:57:56 +00:00
local-backend-maxbuffer.test.ts fix: ENOBUFS in detect_changes by setting maxBuffer on git/rg execFileSync (#957) 2026-04-18 15:58:31 +01:00
local-backend-semantic-warn.test.ts fix: proxy-blocked installs survive onnxruntime-node postinstall and self-heal embeddings (#2370) (#2372) 2026-07-05 16:15:10 +01:00
local-cli-subprocess.test.ts feat(wiki): add grok local CLI provider (#3069) 2026-08-29 08:46:30 +01:00
local-symbol-pruner.test.ts perf(ingestion): prune inert local value symbols (#2065) 2026-06-07 14:47:51 +01:00
logger.test.ts feat(core): adopt pino structured logger (#1336) 2026-05-07 20:56:25 +01:00
lombok-synthesizer.test.ts feat(jvm): synthesize Lombok and Kotlin JVM accessor methods (#2885) 2026-08-31 17:55:52 +00:00
max-file-size.test.ts feat(core): adopt pino structured logger (#1336) 2026-05-07 20:56:25 +01:00
mcp-http-transport.test.ts fix(serve): protect MCP route with optional bearer auth (#3100) 2026-08-30 17:12:46 +01:00
mcp-output-budget.test.ts feat(mcp): add deterministic output budgets 2026-07-14 01:48:17 +07:00
mcp-read-only.test.ts fix(mcp): reject group-only args at read-only dispatch 2026-07-16 08:43:30 +00:00
mcp-repository-policy.test.ts fix(mcp): resolve omitted repo from cwd (#3085) 2026-08-29 21:07:43 +00:00
mcp-stdout-sentinel.test.ts fix(mcp): close MCP server timeout — stdout discipline + cold-start friction (#1383) 2026-05-07 09:14:33 +01:00
mcp-wal-feedback.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
method-extraction.test.ts fix(java): materialize record component accessors (#2936) 2026-08-13 08:43:11 +00:00
method-props.test.ts fix(java): materialize record component accessors (#2936) 2026-08-13 08:43:11 +00:00
middleware-public-origin.test.ts feat(serve): validate and port-scope the origin/proxy configuration surface (#2820) 2026-08-05 06:52:39 +01:00
middleware-trust-proxy.test.ts feat(serve): validate and port-scope the origin/proxy configuration surface (#2820) 2026-08-05 06:52:39 +01:00
mro-processor.test.ts fix: detect single-ancestor method overrides in MRO processor (#2199) 2026-06-15 06:12:36 +01:00
native-check-probe.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
nest-decorator-routes.test.ts fix(ingestion): index NestJS decorator routes so api_impact and route_map stop reporting live endpoints as non-existent (#3017) 2026-08-27 08:35:36 +01:00
node-module-compat.test.ts docs(embeddings): update engines-floor comments for the 22.18 minimum 2026-07-21 10:09:34 +00:00
node-workspace-packages.test.ts fix(typescript): resolve imports against declared config, not path suffixes (#2953) (#2956) 2026-08-14 10:13:04 +01:00
node-workspace-scope.test.ts fix(ingestion): discover nested source directories (#3043) 2026-08-26 12:24:39 +00:00
noise-filter.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
onnxruntime-common-resolver.test.ts fix(embeddings): use system-matched onnxruntime-node CUDA build so CUDA 13 hosts use the GPU (#2341) 2026-07-02 07:53:32 +01:00
onnxruntime-node-resolver.test.ts fix: proxy-blocked installs survive onnxruntime-node postinstall and self-heal embeddings (#2370) (#2372) 2026-07-05 16:15:10 +01:00
parse-diff-hunks.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
parse-impl-heap-guard-pipeline.test.ts fix: large-repo analyze OOM and false worker-timeout cascade (#2649) (#2679) 2026-07-25 09:16:17 +01:00
parse-impl-heap-guard.test.ts fix: large-repo analyze OOM and false worker-timeout cascade (#2649) (#2679) 2026-07-25 09:16:17 +01:00
parse-impl-warm-cache-parsedfile-coverage.test.ts perf(store): V8 sidecars plus hardlinked ParsedFile restore (#3099) 2026-08-30 20:50:20 +00:00
parse-impl-worker-lazy-cache.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-worker-startup-gating.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
parsedfile-store.test.ts perf(store): V8 sidecars plus hardlinked ParsedFile restore (#3099) 2026-08-30 20:50:20 +00:00
parser-loader-abi.test.ts fix(audit): Centralize heritage supertype matching (#1921/#1922) (#1940) 2026-06-01 13:16:17 +01:00
parser-loader-skip-optional.test.ts fix(ingestion): lazy-load optional grammars so analyze never crashes when one is missing (#2091, #2093) (#2101) 2026-06-09 04:58:01 +01:00
parser-loader.test.ts fix(deps): pin tree-sitter-c/cpp to fix Windows segfault (#1242) (#1243) 2026-05-01 08:02:16 +01:00
parsing-worker-fallback.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
pdg-bridge-id-match.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
pdg-callee-id-capture.test.ts fix(scope-resolution): resolve callable reference flows (#2437) (#2522) 2026-07-17 17:20:02 +01:00
pdg-impact-engine.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
pdg-mode-flip.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
phase-timer.test.ts feat(search): per-phase timing instrumentation for the query pipeline (#953) 2026-04-18 16:30:07 +01:00
php-namespace-extraction.test.ts fix(php): reduce memory during deferred-call accumulation and scope-resolution (#1800) 2026-05-24 15:53:20 +01:00
php-template-scope.test.ts fix(php): avoid Blade templates entering PHP analysis (#1790) 2026-05-23 23:37:40 +01:00
pipeline-exports.test.ts test: add test suite with vitest (unit + integration + fixtures) 2026-03-01 20:07:02 +05:30
pipeline-runner.test.ts fix(analyze): make incremental analyze skip the derived layers it can reuse (#3016) (#3102) 2026-08-30 17:07:57 +00:00
platform-capabilities.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
pool-freshness-invalidation.test.ts fix(lbug/analyze): atomic index swap + read-pool staleness invalidation (#2614) 2026-07-21 21:58:00 +01:00
pool-wal-recovery.test.ts fix(analyze): load VECTOR before the incremental writeback touches embedding rows (#2623) (#2624) 2026-07-22 12:27:00 +01:00
prebuild-coverage.test.ts feat(install): toolchain-free tree-sitter via vendored prebuilds (#2113) 2026-06-09 18:16:24 +01:00
preprocess-source-parity.test.ts fix(impact): report scope extraction omissions (#3071) 2026-08-29 08:38:20 +01:00
private-ip.test.ts fix(ip): Scope write-route origin guard to server's own bound host (#2172) 2026-06-13 09:24:03 +01:00
process-identity.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
process-processor.test.ts fix: close the nine follow-up review findings from #2856 (routes, receiver typing, truncation honesty) (#2899) 2026-08-09 11:44:52 +01:00
processes-phase-sink-wiring.test.ts fix: close the nine follow-up review findings from #2856 (routes, receiver typing, truncation honesty) (#2899) 2026-08-09 11:44:52 +01:00
publish.test.ts feat(cli): add gitnexus publish for opt-in understand-quickly registry (#1425) 2026-05-09 09:52:26 +01:00
python-const-resolver.test.ts feat(group+ingestion): resolve Java constant-based route paths (@PostMapping(ApiPathConstants.X)) (#2980) 2026-08-25 09:41:57 +01:00
python-decorator-arg-capture.test.ts fix: resolve imported/composed FastAPI route path constants (#2391) (#2393) 2026-07-07 13:23:05 +01:00
python-decorator-handler-name.test.ts fix(routes): connect decorator routes to their handler function (#2865) 2026-09-01 14:03:30 +00:00
query-batch.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
query-degraded-signal.test.ts fix(mcp): resolve false FTS-missing warnings in the query tool (#2773) 2026-08-01 08:42:51 +01:00
query-determinism-guard.test.ts fix(mcp): make impact/context reproducible — deterministic ordering on every capped query (#2787) (#2796) 2026-08-02 17:03:15 +00:00
query-fts-parameterization.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
query-params.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
query-text-unbounded-guard.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
range-binding-parse-timeout.test.ts feat(spring): build bean candidate inventory (#2494) 2026-07-20 09:28:23 +01:00
rate-limit.test.ts feat(serve): validate and port-scope the origin/proxy configuration surface (#2820) 2026-08-05 06:52:39 +01:00
receiver-chain-codec.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
receiver-extraction.test.ts Fix HTTP client vs Express route detection and Spring interface attribution (#780) 2026-04-11 11:24:47 +01:00
receiver-twin-list-drift.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
rel-csv-split.test.ts test(gitnexus): stabilize rel-csv-split stream teardown on Windows (expect.poll) (#1052) 2026-04-23 20:11:54 +01:00
rel-pair-routing.test.ts fix(schema): declare the full scope-resolution relation cross product (#2792) (#2793) 2026-08-02 16:26:25 +01:00
remove-command.test.ts fix(storage): rename index metadata to gitnexus.json with dual-write compatibility (#2363) 2026-07-03 19:32:59 +01:00
rename-edit-report.test.ts fix(mcp): reconcile rename report on partial failure; harden enumerate (#2605) 2026-07-21 15:14:32 +00:00
render-blueprint.test.ts feat(render): add one-click deploy to render support (#2804) 2026-08-06 00:19:44 +00:00
repo-manager-ensure-ignore-readonly.test.ts fix(cli): tolerate read-only workspace in ensureGitNexusIgnored (#1549) (#1550) 2026-05-14 17:26:34 +01:00
repo-manager-finalize-invariant.test.ts fix(storage): rename index metadata to gitnexus.json with dual-write compatibility (#2363) 2026-07-03 19:32:59 +01:00
repo-manager-reconcile.test.ts fix(fts): keep binary payloads out of the description column, confine an unbuildable index to its own table (#2919) 2026-08-10 21:16:11 +01:00
repo-manager-registry-atomic-write.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
repo-manager-registry-strict-read.test.ts fix(group): fail ambiguous sync names and honor analyze --name (#3094) 2026-08-29 21:48:46 +00:00
repo-manager-rm-failure.test.ts feat: flat workspace index follows the checked-out branch (#2364) 2026-07-03 20:55:27 +01:00
repo-manager-transient-error.test.ts fix(storage): rename index metadata to gitnexus.json with dual-write compatibility (#2363) 2026-07-03 19:32:59 +01:00
repo-manager.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
resolve-enclosing-owner.test.ts fix(grammars): load vendored tree-sitter grammars from vendor/ by absolute path (#2111) (#2144) 2026-06-10 14:20:42 +01:00
resolve-invocation.test.ts fix(cli): stop churning the committed agent guides, and nudge --index-only (#2907) (#2927) 2026-08-11 13:30:14 +01:00
resolve-route-handler-symbols.test.ts feat(kotlin): ingest Spring HTTP routes as decoratorRoutes (#3133) 2026-09-01 23:06:56 +01:00
resources.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
result-merge.test.ts fix(impact): report scope extraction omissions (#3071) 2026-08-29 08:38:20 +01:00
review-agent-workflow.test.ts fix(ci): stop the placeholder review, verify citations, repair once (#2733) 2026-07-28 18:51:01 +01:00
route-handler-definition-edge.test.ts fix(routes): connect decorator routes to their handler function (#2865) 2026-09-01 14:03:30 +00:00
route-process-linking.test.ts feat(ingestion/routes): give Route nodes a (method, url) identity (#2289) (#2302) 2026-06-26 07:59:46 +01:00
route-tool-detection.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
run-analyze-adopt-failure.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
run-analyze-fts-repair.test.ts fix(group): fail ambiguous sync names and honor analyze --name (#3094) 2026-08-29 21:48:46 +00:00
run-analyze.test.ts fix(group): fail ambiguous sync names and honor analyze --name (#3094) 2026-08-29 21:48:46 +00:00
runner-exec-tail.test.ts fix(cli): steer docs, skills, and hooks through a CLI-neutral project-local runner (#1939) (#1945) 2026-06-02 09:00:34 +01:00
safe-parse.test.ts fix(tree-sitter): recover declarations after embedded NUL bytes (#2430) 2026-07-11 08:33:50 +01:00
schema-fingerprint.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
schema-pair-coverage.test.ts feat(ingestion): resolve Spring messaging destinations into Destination nodes (#3132) 2026-09-02 11:46:50 +01:00
schema.test.ts feat(ingestion): resolve Spring messaging destinations into Destination nodes (#3132) 2026-09-02 11:46:50 +01:00
scope-extraction-failures.test.ts fix(impact): report scope extraction omissions (#3071) 2026-08-29 08:38:20 +01:00
scope-index-store.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
scope-resolution-phase-failures.test.ts fix(impact): report scope extraction omissions (#3071) 2026-08-29 08:38:20 +01:00
security.test.ts feat(ingestion): resolve Spring messaging destinations into Destination nodes (#3132) 2026-09-02 11:46:50 +01:00
semantic-chunk-search.test.ts feat(embeddings): AST-aware chunking with offset-based splitting (#889) 2026-04-16 22:55:04 +01:00
server-api-repo-resolution.test.ts fix(web): use repo path identity in switcher (#2420) 2026-07-11 11:43:47 +01:00
server-cors-stack.test.ts fix(server): restore gitnexus serve startup under Express 5 (#1749) 2026-05-21 10:18:09 +01:00
server-sse-payload.test.ts fix(embeddings): retry unparseable 200 responses and survive partial embedding failures (#2790) (#2795) 2026-08-02 20:43:59 +00:00
server-validation.test.ts fix(core): ensure path prefix and traversal guards support root directories (#2559) 2026-07-20 08:12:15 +01:00
server.test.ts fix(mcp): resolve omitted repo from cwd (#3085) 2026-08-29 21:07:43 +00:00
setup-antigravity.test.ts fix: stop analyze from clobbering customized GitNexus skills (#3124) 2026-09-01 09:56:48 +00:00
setup-codex.test.ts fix(windows): pass windowsHide:true to every child_process spawn-family call (#1794) 2026-05-24 09:51:21 +01:00
setup-jsonc.test.ts fix(setup): preserve existing OpenCode config.jsonc (#2694) 2026-07-26 16:23:34 +01:00
setup-selection.test.ts feat(setup): add CodeBuddy and Qoder coding-agent integrations (#2368) 2026-07-04 10:54:50 +01:00
setup.test.ts feat: full Codex support — hooks, plugin marketplace, and setup (#2328, supersedes #1131) (#2369) 2026-07-04 13:32:17 +01:00
shape-check.test.ts fix: shape_check false positives — quoted keys, DOM leaks, errorKeys (#501) 2026-03-26 05:43:37 +00:00
shard-arg.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
shard-balance.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
shared-type-extractors.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
shipped-skills-sync.test.ts feat(ingestion): mint Destination nodes from AsyncAPI 3.x documents (#3140) 2026-09-02 22:01:15 +00:00
shutdown-helpers.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
sibling-clone-drift.test.ts fix(core): ensure path prefix and traversal guards support root directories (#2559) 2026-07-20 08:12:15 +01:00
sidecar-recovery.test.ts fix: make large incremental writebacks commit reliably (#2409) (#2425) 2026-07-10 14:05:23 +01:00
skill-evolution-workflow.test.ts fix(ci): install root and shared node_modules for the evolution benchmark (#2575) 2026-07-20 09:56:54 +01:00
skill-gen.test.ts fix(cli): make .agents/ skill mirror best-effort + exclude from dirty check 2026-07-20 16:19:59 +08:00
skills-steering.test.ts feat(cli): add a bunx lane so bun-only machines can run gitnexus (#2765) 2026-08-06 08:40:36 +00:00
skip-git-cli.test.ts fix: stop analyze from clobbering customized GitNexus skills (#3124) 2026-09-01 09:56:48 +00:00
source-control-bytes.test.ts fix(group): stop reporting what could not be measured as a measurement of zero (#3012) 2026-08-26 09:37:16 +01:00
spring-actuator-runtime.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
spring-annotation-arguments.test.ts feat(kotlin): ingest Spring HTTP routes as decoratorRoutes (#3133) 2026-09-01 23:06:56 +01:00
spring-aop.test.ts feat(spring): model AOP transactions, caching, and security (#2783) 2026-08-01 17:22:12 +01:00
spring-argument-fact-capture.test.ts feat(ingestion): capture Spring handler annotation arguments and template publishes (#3128) 2026-09-01 14:35:19 +01:00
spring-auto-configuration.test.ts feat(spring): model profiles, conditions, and auto-configuration (#2678) 2026-07-28 07:05:41 +01:00
spring-bean-extractor.test.ts feat(ingestion): capture Spring handler annotation arguments and template publishes (#3128) 2026-09-01 14:35:19 +01:00
spring-bean-schema.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
spring-config-bindings.test.ts feat(kotlin): bind Spring config consumers on Kotlin sources (#3126) 2026-09-01 10:32:09 +00:00
spring-config-drift.test.ts feat(kotlin): bind Spring config consumers on Kotlin sources (#3126) 2026-09-01 10:32:09 +00:00
spring-destinations-phase.test.ts feat(ingestion): mint Destination nodes from AsyncAPI 3.x documents (#3140) 2026-09-02 22:01:15 +00:00
spring-destinations.test.ts feat(ingestion): resolve Spring messaging destinations into Destination nodes (#3132) 2026-09-02 11:46:50 +01:00
spring-dynamic-lookup.test.ts feat(java): resolve SpringContextUtil.getBeans(X.class) dynamic lookups (#2886) 2026-08-30 23:09:21 +00:00
spring-interface-inheritance.test.ts fix(spring): extract method-level RequestMapping routes (#2857) 2026-08-07 11:43:19 +01:00
spring-message-producers.test.ts feat(ingestion): capture Spring handler annotation arguments and template publishes (#3128) 2026-09-01 14:35:19 +01:00
spring-non-http-handlers.test.ts feat(spring): detect non-HTTP handler entry points (#2891) 2026-08-16 15:16:21 +01:00
spring-route-extractor-parity.test.ts feat(ingestion/routes): give Route nodes a (method, url) identity (#2289) (#2302) 2026-06-26 07:59:46 +01:00
spring-vendor-annotation-alias.test.ts feat(route): resolve vendor-derived Spring mapping annotations by suffix (#2883) 2026-09-02 21:01:59 +00:00
staleness.test.ts perf(mcp): parallelize staleness checks in list_repos (#1416) 2026-05-08 10:36:20 +01:00
status-content-drift.test.ts fix(status): judge freshness by covered files, not a dirty working tree (#3083) 2026-08-29 12:56:41 +00:00
stdout-silence.test.ts fix(mcp): unify stdout silencing to prevent embedder/pool-adapter conflicts (#645) 2026-04-04 11:56:49 +01:00
stream-graph-emit-config.test.ts feat(spring): import optional Actuator runtime data with Kotlin JVM mapping (#3107) 2026-09-01 06:22:38 +01:00
stream-graph-emit-force-ordering.test.ts fix(analyze): replace the hand-incremented schema version with a derived DDL fingerprint (#2798) (#2808) 2026-08-03 15:04:30 +01:00
stream-pdg-emit-config.test.ts perf(cfg): streaming/chunked PDG graph emit for full-kernel-scale repos (#2202) (#2216) 2026-06-16 05:04:10 +01:00
stream-query-driver-guard.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
structure-processor.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
suffix-index-ambiguity.test.ts feat: configure prettier with pre-commit hook (#563) 2026-03-28 14:58:04 +00:00
swift-conditional-directive-preprocess.test.ts fix(swift): preprocess indented conditional directives so class bodies survive parsing (#2771) 2026-08-01 20:10:58 +00:00
symbol-table.test.ts fix(cpp): suppress deleted overload winners (#2094) 2026-06-10 18:41:30 +01:00
sync-plugin-manifests.test.ts feat(skills): GitNexus Engineering Tool Kits (#2566) 2026-07-19 15:07:24 +01:00
temp-dir-pool-cleanup.test.ts perf(mcp): cut the analyze-only language-provider closure out of MCP server startup (#2802) (#2806) 2026-08-03 21:26:13 +01:00
test-file-path.test.ts fix(mcp): honor includeTests for C#, Java, Swift and PHP test paths (#2866) 2026-09-01 17:43:53 +01:00
text-generator.test.ts feat(embeddings): compact, description-forward embedding text (#2333) (#2334) 2026-07-01 07:37:16 +01:00
tool-direct-cli.test.ts fix(check): stop reporting erased and deferred imports as initialization cycles (#2934) 2026-08-12 17:09:32 +00:00
tool-process-linking.test.ts fix(mcp): project tool_map flows from handlers (#1113) 2026-04-27 17:13:02 +01:00
tool-staleness.test.ts fix: index staleness — false-stale status after analyze (#2668) + inline staleness in query/context/impact/cypher tools (#2655) (#2683) 2026-07-25 07:21:44 +01:00
tools.test.ts fix(group): make degraded links, sync warnings and UID-only impact actually work (#3113) 2026-08-31 20:03:53 +00:00
topological-sort.test.ts refactor(pipeline): DAG-based phase architecture + container-logic extraction to LanguageProvider (#809) 2026-04-13 20:31:05 +01:00
trace-bfs.test.ts fix(mcp): make impact/context reproducible — deterministic ordering on every capped query (#2787) (#2796) 2026-08-02 17:03:15 +00:00
trace-cli.test.ts fix(trace): add file disambiguator alias (#2705) 2026-07-27 05:05:14 +01:00
tree-sitter-queries.test.ts fix(ingestion): index generator function declarations (#2305) 2026-06-26 13:37:02 +01:00
ts-js-function-node-type-lists.test.ts fix(scope-resolution): resolve calls through a closure-valued binding across languages (#2693) (#2695) 2026-07-27 07:52:18 +01:00
ts-receiver-chain-capture.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
tsconfig-index.test.ts fix(ingestion): discover nested source directories (#3043) 2026-08-26 12:24:39 +00:00
type-env.test.ts fix(grammars): load vendored tree-sitter grammars from vendor/ by absolute path (#2111) (#2144) 2026-06-10 14:20:42 +01:00
uninstall.test.ts fix(setup): preserve existing OpenCode config.jsonc (#2694) 2026-07-26 16:23:34 +01:00
upload-filter-ignore-drift.test.ts fix(ingestion): ignore emitted Next.js build output, and delete the inert public/build entry (#3018) 2026-08-27 13:29:05 +01:00
upload-ingest.test.ts fix(core): ensure path prefix and traversal guards support root directories (#2559) 2026-07-20 08:12:15 +01:00
upload-sweep.test.ts fix(web): replace broken Browse-for-folder with upload directory picker (#1850) 2026-06-10 20:50:59 +01:00
utils.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
v8-sidecar.test.ts perf(store): V8 sidecars plus hardlinked ParsedFile restore (#3099) 2026-08-30 20:50:20 +00:00
variable-extraction.test.ts fix(grammars): load vendored tree-sitter grammars from vendor/ by absolute path (#2111) (#2144) 2026-06-10 14:20:42 +01:00
vendored-grammars.test.ts fix(grammars): load vendored tree-sitter grammars from vendor/ by absolute path (#2111) (#2144) 2026-06-10 14:20:42 +01:00
vue-sfc-extractor.test.ts fix(vue): F89 JSDoc fix, F90 dual-script merge, F92 lang plumbing (#1936) (#2050) 2026-06-07 06:02:30 +01:00
wal-checkpoint-driver-reentrancy.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
wal-checkpoint-driver.test.ts fix(lbug): add WAL checkpoint-threshold control (#1772) 2026-05-22 14:46:49 +01:00
watch-command.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
watch-failure-policy.test.ts feat: add gitnexus auto-sync for scheduled remote clone and analyze (#2493) 2026-09-02 19:40:18 +01:00
watch-paths.test.ts feat(ingestion): mint Destination nodes from AsyncAPI 3.x documents (#3140) 2026-09-02 22:01:15 +00:00
watch-queue.test.ts feat(analyze): add incremental watch mode (#3072) 2026-08-29 10:40:56 +00:00
web-ui-serving.test.ts fix(lbug): keep serve stable when sidecars are missing (#1747) 2026-05-21 12:35:43 +01:00
wiki-db-pin.test.ts fix(wiki): keep graph DB pinned during generation (#2232) 2026-06-17 21:52:31 +01:00
wiki-flags.test.ts feat(wiki): add grok local CLI provider (#3069) 2026-08-29 08:46:30 +01:00
wiki-graph-queries-list-binding.test.ts fix(mcp): stop scaling the detect_changes query with the diff's hunk count (#2915) (#2930) 2026-08-12 14:51:17 +01:00
wiki-grouping-batch.test.ts fix(wiki): keep graph DB pinned during generation (#2232) 2026-06-17 21:52:31 +01:00
wiki-llm-client.test.ts feat: refresh MiniMax model and endpoint configuration (#2780) 2026-08-11 18:11:47 +00:00
wiki-mermaid-sanitizer.test.ts fix(wiki): sanitize generated mermaid diagrams (#1539) 2026-05-13 11:53:09 +01:00
windows-long-path-prefix.test.ts fix(storage): stop the Windows \\?\ long-path prefix from breaking repo path matching (#2667) (#2700) 2026-07-26 09:07:55 +01:00
worker-pool-cumulative-timeout.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
worker-pool-error-stack.test.ts fix(parse): correct worker-pool docs drift + surface worker-side stack on crash (#2068) (#2070) 2026-06-08 07:20:12 +01:00
worker-pool-options.test.ts fix: recover worker parse stalls (#1121) 2026-04-27 20:07:03 +01:00
worker-pool-ready-timeout-env.test.ts Merge pull request #2542 from GenKoKo/fix/worker-stdout-and-ready-timeout 2026-07-21 13:54:34 +01:00
worker-pool-resilience.test.ts feat(workers): self-healing worker pool + deferred-resolution observability (#1741) (#1947) 2026-05-31 13:52:04 +01:00
worker-pool-resource-limits.test.ts fix: large-repo analyze OOM and false worker-timeout cascade (#2649) (#2679) 2026-07-25 09:16:17 +01:00
worker-pool-slot-generation.test.ts fix(workers): resilient + zero-copy ingestion worker pool — prevent analyze hangs on TS-root-scale loads (#1693) 2026-05-20 20:39:35 +01:00
worker-pool-stall-credit.test.ts fix: large-repo analyze OOM and false worker-timeout cascade (#2649) (#2679) 2026-07-25 09:16:17 +01:00
worker-pool-startup-stderr.test.ts feat(workers): self-healing worker pool + deferred-resolution observability (#1741) (#1947) 2026-05-31 13:52:04 +01:00
worker-pool-stdout-forward.test.ts Merge pull request #2542 from GenKoKo/fix/worker-stdout-and-ready-timeout 2026-07-21 13:54:34 +01:00
worker-pool-timeout-retire.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
worker-pool-transferlist.test.ts fix(workers): resilient + zero-copy ingestion worker pool — prevent analyze hangs on TS-root-scale loads (#1693) 2026-05-20 20:39:35 +01:00
worker-pool-windows-quarantine.test.ts fix(workers): resilient + zero-copy ingestion worker pool — prevent analyze hangs on TS-root-scale loads (#1693) 2026-05-20 20:39:35 +01:00