Development & tests
Upstream lives at github.com/wimpal/Grimoire.
This page summarizes the README sections that matter for local hacking.
Quick start
npm install
npm run tauri dev
Tests
| Area | Command | Notes |
|---|---|---|
| Rust | cargo test from src-tauri/ | Includes library + src-tauri/tests/ integration tests |
| Rust (ignored) | cargo test -- --ignored | Optional heavier tests (e.g. LanceDB smoke) |
| JavaScript | npm test from repo root | Vitest (src/**/*.test.js) |
| Watch | npm run test:watch | While editing JS |
Wikipedia indexing benchmark (dev)
The README describes a developer workflow:
-
In dev builds, open Settings → Developer, provide a ZIM path and optional max-entry cap, then run Run indexing benchmark and copy JSON results.
-
Alternatively invoke the debug command
benchmark_wikipedia_indexingfrom code with the same parameters. -
Baseline file
benchmarks/wikipedia_index_baseline.jsonuses schema v2. -
Compare runs with:
python scripts/compare_wiki_benchmark.py --current path/to/current_benchmark.json
python scripts/compare_wiki_benchmark.py --current path/to/current_benchmark.json --verbose
The script exits with code 1 when regression thresholds fail.
Stack (from README)
| Layer | Technology |
|---|---|
| UI | Svelte + Vite |
| Desktop shell | Tauri |
| Backend | Rust |
| Database | SQLite (sqlx) |
| Vector search | LanceDB |
| LLM runtime | Ollama |
License
GPL v3.
Commercial licensing language is quoted in the app README License section. Read there for the canonical text.