fix: rebuild FTS5 index after database rebuild to prevent stale rowid refs

The FTS5 content-synced index could retain phantom rowid references from
previous rebuild cycles, causing 'missing row N from content table'
errors on MATCH queries.

- Add explicit FTS5 rebuild command in rebuild script after all nodes saved
- Add FTS5 rebuild in test beforeAll as defense-in-depth
- Rebuild nodes.db with consistent FTS5 index

Conceived by Romuald Członkowski - www.aiadvisors.pl/en

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
czlonkowski
2026-03-27 10:26:30 +01:00
parent 254996b51a
commit 0f8d61ed54
9 changed files with 35 additions and 38 deletions

View File

@@ -130,6 +130,9 @@ async function rebuild() {
}
}
console.log(`💾 Save completed: ${saved} nodes saved successfully`);
console.log('\n🔍 Rebuilding FTS5 search index...');
db.prepare("INSERT INTO nodes_fts(nodes_fts) VALUES('rebuild')").run();
console.log('✅ FTS5 index rebuilt successfully');
console.log('\n🔍 Running validation checks...');
try {
const validationResults = validateDatabase(repository);