Also fix common/db.py init_db to pass check_same_thread=False, required
because FastAPI's TestClient/threadpool executes sync route handlers on
a worker thread different from the one that created the sqlite connection.
feat: add search service combining keyword and similarity search