You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* feat(examples): SQLR-41 add Tauri 2 + Svelte 5 journaling desktop app
New `examples/desktop-journal/` showcases SQLRite as a serious choice
for a local-first desktop product. Tauri 2 backend owns one
Arc<Mutex<Connection>> in tauri::State; every #[tauri::command] grabs
the mutex and runs against the modern `Connection` API. Phase 8 BM25
full-text search drives the search bar with token-boundary-aware
<mark> highlighting in Rust. An "ask my journal" panel calls
Connection::ask, validates the returned SQL is SELECT/WITH-only, and
shows the user both the SQL and the rows.
In-app Settings dialog persists the Anthropic key to a separate
settings.json next to the journal file — the key never crosses into
the webview (DTO returns has_api_key: bool, not the value) and falls
back to SQLRITE_LLM_API_KEY when nothing's saved. Capabilities are
locked down to core window/event + dialog — no fs/shell/http, so the
IPC boundary is the only path to the engine.
Wiring: workspace gains `examples/desktop-journal/src-tauri` as a
member; CI's existing rust-build/test/clippy/doc commands pick up an
`--exclude sqlrite-journal` (same shape as the existing sqlrite-desktop
exclude). A new `journal-build` CI job mirrors `desktop-build` for the
frontend bundle + cargo build, including a no-default-features pass to
prove the off-`ask` build still works. A separate
`journal-release.yml` (manual / journal-v* tag trigger) builds .dmg /
.deb / .AppImage / .msi via tauri-action and attaches them to a draft
release.
14 unit tests cover migrations, CRUD, tag filtering, FTS+highlight,
stats, the ask-readonly SQL classifier, settings save/load round-trip,
empty-string-key normalisation, three-valued update semantics, the
no-leak-to-DTO contract, and settings-over-env precedence.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
* feat(examples): SQLR-41 add Remotion demo + screenshots + website card poster
Follow-up to be35e4c. Captures the journal app in seven UI states
(empty, new entry, markdown preview, list+tags, FTS highlight,
Settings, Ask panel), then composes them into a 21s demo video via
a Remotion project under `examples/desktop-journal/demo/`. The
composition gives each screen a Ken Burns slow zoom with a fade-in
caption strip; consecutive screens cross-fade for 8 frames.
Renders to `docs/demo.mp4` (1080p H.264, ~8.5 MB) and
`docs/demo.gif` (960×540, 15fps, first 5 screens, ~8.8 MB). The GIF
fits comfortably in the README and on GitHub's inline image
viewer; the MP4 is what the website Examples card points at.
Replacing a screenshot is `cd demo && npm run render` — `prep`
copies the latest PNGs from `../docs/screenshots/` into
`public/` (.gitignore'd so the canonical source stays in `docs/`).
Side change: pin `@tauri-apps/{api,cli}` to ~2.10 and
`plugin-dialog` to ~2.7 in the journal app's `package.json`.
`tauri build` rejects mismatched JS↔Rust major/minor versions; the
mismatch shows up the moment you bundle for installer shipping
(SQLR-41's release workflow) even though dev mode tolerates it.
Website Examples card gains an `Example.demoAsset` field carrying
the GIF + MP4 paths. The journal card renders the GIF inline from
raw.githubusercontent.com so the homepage tracks the repo on next
deploy instead of needing the asset copied into `web/public/`.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: AGENTS.md
+8-6Lines changed: 8 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -8,13 +8,14 @@ SQLRite is a from-scratch SQLite-style embedded database written in Rust. It's p
8
8
9
9
## Workspace layout
10
10
11
-
`Cargo.toml` is a workspace whose members are: `.` (the engine, package `sqlrite-engine`, lib `sqlrite`), `desktop/src-tauri`, `sqlrite-ffi`, `sqlrite-ask`, `sqlrite-mcp`, `sdk/python`, `sdk/nodejs`, `benchmarks`. `sdk/wasm` and `sdk/go` are deliberately **not** workspace members (wasm32 target / cgo separation).
11
+
`Cargo.toml` is a workspace whose members are: `.` (the engine, package `sqlrite-engine`, lib `sqlrite`), `desktop/src-tauri`, `examples/desktop-journal/src-tauri`, `sqlrite-ffi`, `sqlrite-ask`, `sqlrite-mcp`, `sdk/python`, `sdk/nodejs`, `benchmarks`. `sdk/wasm` and `sdk/go` are deliberately **not** workspace members (wasm32 target / cgo separation).
12
12
13
13
-`src/` — engine. Public API is `Connection`/`Statement`/`Rows`/`Row`/`Value` from [src/connection.rs](src/connection.rs), re-exported via [src/lib.rs](src/lib.rs). Any new SDK should bind only to this surface.
14
14
-`sqlrite-ask/` — pure-Rust LLM adapter (Anthropic/OpenAI/Ollama) for natural-language → SQL. The engine's `ask` feature provides the thin `ConnectionAskExt::ask` glue.
15
15
-`sqlrite-mcp/` — MCP stdio server. Seven tools: `list_tables`, `describe_table`, `query`, `execute`, `schema_dump`, `vector_search`, `ask`. `--read-only` opens with a shared lock and hides `execute`.
16
16
-`sqlrite-ffi/` — C ABI cdylib + generated `sqlrite.h` header. Backs the Go SDK and any C consumer.
17
-
-`desktop/` — Tauri 2 + Svelte 5 GUI. Embeds the engine directly (no FFI hop).
17
+
-`desktop/` — Tauri 2 + Svelte 5 generic SQL playground GUI. Embeds the engine directly (no FFI hop).
18
+
-`examples/desktop-journal/` — Tauri 2 + Svelte 5 local-first journaling app (SQLR-41). Showcase for Phase 8 BM25 + `ask` in a non-AI-native product. Mirrors `desktop/`'s engine-as-Cargo-dep pattern but uses the modern `Connection` API.
18
19
-`benchmarks/` — SQLR-4 / SQLR-16 bench harness. `Driver` trait + SQLRite + SQLite (rusqlite-bundled) drivers + criterion-driven workloads. Excluded from the default CI build/test/clippy/doc commands; run locally with `make bench` (or `make bench-duckdb`). See [docs/benchmarks-plan.md](docs/benchmarks-plan.md).
19
20
-`web/` — marketing + docs site (Next.js 15 + Tailwind v4). Independent of the Cargo workspace; lives in-repo for now but is structured to lift into its own repository later. See [web/README.md](web/README.md).
20
21
@@ -30,16 +31,16 @@ CI is the source of truth — the workspace excludes that follow are required be
0 commit comments