Search
- Two-phase progressive search — Phase 1 returns instant title matches, Phase 2 fills in full-text results with live timer
- SQLite title indexes — persistent per-ZIM indexes built on first startup. Single-word queries under 1ms, multi-word via FTS5 under 2s
- FTS5 threshold — ZIMs with >2M entries skip FTS5 at build time. Enable on-demand from the manage UI
Collections
- Named collections — group ZIMs into sets for scoped search via API, MCP, or web UI
- Category-grouped picker — ZIMs organized by category when editing collections
Library Manager
- Server stats — request counts, latency, cache hit rates, title index status, disk usage
- On-demand deep search — build FTS5 for large ZIMs from the stats tab
- Safe delete — two-click confirmation prevents accidental collection deletion
Data
ZIMI_DATA_DIR— dedicated data directory for indexes, cache, and config. Auto-migrates from v1.1- Storage — title indexes use ~2–3% of total ZIM size on disk
Performance (55 ZIMs, spinning disk)
| Scenario | Before | After |
|---|---|---|
| Title search (single word, cold) | 40s | under 1ms |
| Title search (multi-word, cold) | 40s+ | under 2s |
| Full-text search | 12–55s | unchanged |
Other
- Per-ZIM suggestion cache (15min TTL, 500 entries)
- MCP collection support in search and suggest tools
- iOS Safari zoom fix
- 63 unit tests