Compute blast radius and likely tests for given seed symbols or seed file paths.
Recursively walks reverse reachability (transitive callers) up to max_depth in SQLite.
Count parse diagnostics recorded for a file, returning 0 when the index has none.
Number of indexed symbols in one file, without loading the rows. Like load_file_symbols,
an exact-case path wins and the case-insensitive match is only the fallback.
Resolve callee signatures directly in a single joined query, avoiding N+1 queries
and preserving ambiguous methods across types. Prioritizes functions/methods over enum variants.
True when a repository-relative path looks like a test file. Directory rules and file-name
rules are kept apart: a test, tests, autotests, or __tests__ directory anywhere
including the repository root, or a file name that starts with Qt’s tst_, starts with
test_ in Python or Ruby, contains _test.,
.test., or .spec., is exactly test.rs or tests.rs, or ends with the C# Tests.cs
(case-sensitive, so Contests.cs is a production file).
Load up to limit_per_file symbols per file for scoped files, directly aggregated in SQLite.
Files deeper than depth are filtered out in SQLite to keep memory strictly bounded.
Sanitizes a free-form user query into (and_query, or_query) formatted for SQLite FTS5.
Each alphanumeric/underscore token is quoted and given a prefix wildcard: "token"*.
Identifiers are split at case boundaries too (parseHTTPResponse -> parse HTTP Response),
so a camelCase query finds a snake_case symbol. Each split identifier keeps its unsplit form
as an alternative inside its own required term, so a camelCase symbol, which FTS5 indexes as
one token, still matches. A query of two or three words also tries their concatenation.
English stop words are dropped unless the whole query is stop words, and tokens under three
characters get no prefix wildcard.