Problem
Search currently has two silent failure paths:
- FTS initialization errors are swallowed in
src/index.ts around sqlite.exec(FTS_SQL)
search.search(...) catches any exception and falls back to LIKE in src/core/search.ts
This makes FTS degradation invisible.
Why this matters
Fallback itself is useful for malformed query syntax, but catch-all handling also masks unexpected failures (schema drift, runtime errors, extension issues). Users only see lower quality results and no diagnostics.
Suggested fix
- Surface FTS init failures through logging or an explicit status signal
- Keep fallback for known FTS parse/syntax errors, but do not swallow unrelated exceptions silently
- Expose simple health info so callers can tell whether FTS is active
Problem
Search currently has two silent failure paths:
src/index.tsaroundsqlite.exec(FTS_SQL)search.search(...)catches any exception and falls back to LIKE insrc/core/search.tsThis makes FTS degradation invisible.
Why this matters
Fallback itself is useful for malformed query syntax, but catch-all handling also masks unexpected failures (schema drift, runtime errors, extension issues). Users only see lower quality results and no diagnostics.
Suggested fix