**Status:** Not started as of 2026-03-15. ChromaDB deployed and numpy pinned, but embedding worker and search integration not yet verified.
+
**Status:** Partial as of 2026-03-20. Semantic search complete (FAISS + lifecycle hooks, REST API, MCP tool). Operational hardening not started.
**Goal:** Semantic search works. Backups run. The service is ready for real users.
**Tasks:**
-
- V7-1: Embedding background worker. In-process thread (or dedicated worker process) that polls the `reindex_queue` table in SQLite. On dequeue: read page from git repo, chunk, embed with MiniLM, update FAISS index on disk.
-
- V7-2: Wire reindex queue. Otterwiki write operations (via MCP or REST API) write `{wiki_slug, page_path, action}` to `reindex_queue` on page save/delete.
-
- V7-3: Wire semantic search into MCP sidecar and REST API. Load FAISS index from disk, embed query with MiniLM, search, deduplicate, return results.