[Search] Implement FTS5 full-text search index for hypotheses, wiki, and papers

← All Specs

Goal

Create FTS5 virtual tables indexing title+content for hypotheses, wiki_pages, and papers. Build /api/search endpoint combining FTS results across types. Support prefix search and result snippets.

Acceptance Criteria

☑ Create FTS5 virtual tables for hypotheses, wiki_pages, papers (done — existing code on main)
☑ Build /api/search endpoint combining FTS results across types (done — api.py:13992)
☑ Support prefix search and result snippets (done — FTS5 MATCH + bm25 ranking + _clean_snippet)
☑ Changes tested and verified

Work Log

2026-04-20 22:50 PT — Slot 66 (minimax:66)

  • Task reopened by audit: NO_COMMITS on main for task da3e5cb4
  • Verified FTS5 search already on main via git show origin/main:api.py | grep -n '/api/search' → confirmed at line 14228
  • Checked diff HEAD vs origin/main — no FTS5 changes in this branch; HEAD is 2e78b447e (same as origin/main)
  • Confirmed FTS5 virtual tables exist in migrations: add_fts5_hypotheses_triggers.py, add_fts5_wiki_analyses_papers_triggers.py, add_fts5_gaps_notebooks.py
  • Confirmed search.py has FTS5 keyword_search with BM25 ranking
  • Confirmed /api/search endpoint uses FTS5 MATCH + bm25(hypotheses_fts) ordering
  • Conclusion: Task is already resolved on main; no code changes needed from this branch

Approach

  • Read existing code and understand current state
  • Implement required changes
  • Test changes
  • Commit and push
  • Dependencies

    (none listed)

    Dependents

    (none listed)

    Work Log

    File: da3e5cb4_b36_spec.md
    Modified: 2026-04-25 23:40
    Size: 1.7 KB