-
Notifications
You must be signed in to change notification settings - Fork 0
Building from Source
- Node.js (LTS) + npm.
- Rust (stable) with the MSVC toolchain on Windows.
-
protoc (Protocol Buffers compiler) — required by LanceDB (
lance-encoding). Install withchoco install protocorwinget install protobuf, and make sureprotocis onPATH. - Platform build tools: on Windows, the Visual Studio C++ build tools / WebView2 (usually already present on Win10/11).
git clone https://github.com/Eligrive/SenseTree.git
cd SenseTree
npm install
npm run tauri dev # dev build with hot-reload frontendThe first build is long: it compiles heavy crates (ort, lancedb, arrow) and, on first index, downloads the local embedding model.
| Command | Does |
|---|---|
npm run dev |
Vite dev server (frontend only). |
npm run build |
tsc typecheck + Vite production build of the frontend. |
npm run tauri dev |
Full app in development. |
npm run tauri build |
Production build → installers in src-tauri/target/release/bundle/. |
After changing Rust code you must restart
npm run tauri dev; frontend changes hot-reload.
SenseTree/
├─ src/ # React 19 + TS frontend
│ ├─ components/ # UI panels & modals
│ └─ lib/ # typed IPC, types, helpers
├─ src-tauri/ # Rust core (Tauri v2)
│ ├─ src/ # backend modules (see Architecture)
│ ├─ Cargo.toml # Rust deps + app version
│ └─ tauri.conf.json # bundle config + app version + identifier
├─ package.json # frontend deps + app version
└─ .github/workflows/release.yml # tag-triggered release build
See the Architecture page for what each module does.
src-tauri/tauri.conf.json sets:
-
productName: sensetree,identifier: com.virgi.sensetree(the identifier is the stable key that makes upgrades install in place — don't change it lightly), -
bundle.targets: "all"→ both NSIS (-setup.exe) and MSI installers. To emit only the NSIS installer, set"targets": ["nsis"].
Releases are automated by .github/workflows/release.yml, triggered on pushing a tag v*:
- Bump the version in three places so they agree:
package.json,src-tauri/Cargo.toml(andCargo.lock),src-tauri/tauri.conf.json. - Commit, then tag and push:
git commit -am "chore(release): version X.Y.Z" git tag -a vX.Y.Z -m "SenseTree vX.Y.Z" git push origin main git push origin vX.Y.Z
- The workflow (on
windows-latest) installs Node, Rust, protoc, builds the app, and creates a draft GitHub Release namedSenseTree vX.Y.Zwith the installers attached. - Review and publish the draft (e.g.
gh release edit vX.Y.Z --draft=false --latest).
The workflow resolves the tag/version from
tauri.conf.json, so the pushed tag must matchv+ that version. If you fix the workflow itself, re-create the tag on the commit that contains the fix (a tag build uses the workflow file as of the tag's commit).
Could not find protoc → install protoc (above). This is the one non-obvious native prerequisite. See Troubleshooting.
Getting started
Using it
- Configuration
- Models & Providers
- Semantic Search
- Image Search
- AI Chat & Agent
- Gardener
- Prompts
- MCP Servers
Under the hood