* fix(db): graceful FTS5 fallback when Node.js build lacks FTS5 support (#1532) Official Node.js binaries do not compile FTS5 by default, causing codegraph init to fail with 'no such module: fts5'. Added runtime FTS5 detection: - Split schema execution to try FTS5 separately, skip on failure with warning - Added fts5Available flag to DatabaseConnection and QueryBuilder - Bulk-load and search paths skip FTS5 operations when unavailable - Search falls back to LIKE + fuzzy matching when FTS5 is missing (cherry picked from commit ed708b7f60540367d8a810b0388aaa05ce0a0933) * fix(db): preserve core schema during FTS5 fallback (#1532) Keep required tables and indexes after the FTS triggers outside the optional schema block in the upstream #1625 fix. Without this boundary, simulated-missing-FTS5 indexing still fails on name_segment_vocab. Add seven regressions using real SQLite with FTS5 creation intercepted, covering initialization/open, LIKE and fuzzy search, non-FTS schema parity, bulk no-ops, and real FTS5 search and bulk-load recovery. Credit @aniruddhaadak80 under Unreleased fixes. Validation on Linux x64 with Node v22.19.0: - npm run build passed, including viewer and grammar asset checks. - 34 tests passed across fts5-fallback, node-sqlite-backend, sqlite-backend, and db-perf. - Rebuilt CodeGraph initialization, indexing, reopening, search, and cross-file callers passed with simulated missing FTS5 and real FTS5. Fixes #1532. Supersedes #1625. --------- Co-authored-by: Aniruddha Adak <aniruddhaadak80@users.noreply.github.com> Co-authored-by: Colby McHenry <colbymchenry@users.noreply.github.com>
This commit is contained in:
co-authored by
Aniruddha Adak
Colby McHenry
parent
aed046e5c6
commit
0fd259b554
@@ -140,6 +140,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
#### MCP / indexing
|
||||
|
||||
- Indexing now succeeds when Node.js's SQLite lacks FTS5, with search falling back to name and fuzzy matching; thanks @aniruddhaadak80. (#1532)
|
||||
|
||||
- `codegraph_explore` now makes clear that suggested call counts are advisory, so agents keep exploring when an answer is incomplete; thanks @rongbc. (#1504, #1570)
|
||||
|
||||
- C++ functions following anonymous namespaces containing raw-string templates are now indexed correctly, even when template text resembles an unfinished macro call. (#1505)
|
||||
|
||||
Reference in New Issue
Block a user