fix: guard SQLite FTS5 at runtime and fall back to LIKE search
On Node builds whose bundled node:sqlite was compiled without SQLITE_ENABLE_FTS5 (older 22.x LTS), `fn dashboard` crashed on first run with `Error: no such module: fts5` during schema migration 21. Database and ArchiveDatabase now probe FTS5 at startup via a disposable virtual table. When unavailable, migrations 21 and 35 skip the tasks_fts DDL, ArchiveDatabase skips the archived_tasks_fts block, and TaskStore.searchTasks / ArchiveDatabase.search fall back to LIKE scans over id/title/description/comments with ESCAPE-aware patterns. Set FUSION_DISABLE_FTS5=1 to force the fallback on runtimes where FTS5 is available but undesirable (e.g. reproducing fresh-install behavior in tests). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
5
.changeset/fts5-runtime-guard.md
Normal file
5
.changeset/fts5-runtime-guard.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"@runfusion/fusion": patch
|
||||
---
|
||||
|
||||
Guard SQLite FTS5 usage so Fusion starts cleanly on Node builds whose bundled `node:sqlite` was compiled without FTS5. On affected systems, `fn dashboard` previously crashed on first run with `Error: no such module: fts5` during schema migration. The Database and ArchiveDatabase now probe for FTS5 at startup and skip the virtual table + triggers when unavailable; `TaskStore.searchTasks` and `ArchiveDatabase.search` fall back to LIKE-based scans. Set `FUSION_DISABLE_FTS5=1` to force the fallback on runtimes where FTS5 is present but undesirable.
|
||||
Reference in New Issue
Block a user