···44444545#### Search Result Context
46464747-- [ ] Implement `search_posts(query, mode, limit)`:
4747+- [x] Implement `search_posts(query, mode, limit)`:
4848 - `keyword`: FTS5 MATCH query (always available)
4949 - `semantic`: embed query string → vec similarity search (requires embeddings enabled)
5050 - `hybrid`: run both, merge via reciprocal rank fusion (falls back to keyword-only if embeddings disabled)
5151-- [ ] `get_sync_status(did)` → last sync time, post counts, cursor state
5252-- [ ] Model management: download `nomic-embed-text-v1.5` ONNX on first use to `<app_data_dir>/models/` (skipped when embeddings disabled)
5353-- [ ] Background sync: trigger after login, then every 15 min
5151+- [x] `get_sync_status(did)` → last sync time, post counts, cursor state
5252+- [x] Model management: download `nomic-embed-text-v1.5` ONNX on first use to `<app_data_dir>/models/` (skipped when embeddings disabled)
5353+- [x] Background sync: trigger after login, then every 15 min
54545555### Frontend
5656