Skip to content

Tauri migration (M1): shell + web UI scaffold side-by-side with egui - #8

Open
tharinfernando wants to merge 1 commit into
mainfrom
feat/tauri-migration
Open

Tauri migration (M1): shell + web UI scaffold side-by-side with egui#8
tharinfernando wants to merge 1 commit into
mainfrom
feat/tauri-migration

Conversation

@tharinfernando

Copy link
Copy Markdown
Contributor

Goal

Easy-to-update, cross-platform UI (Linux/macOS/Windows) per plan. This is Milestone 1: prove the Tauri IPC + shared-core + theming path while the egui app keeps working untouched.

What lands here

src-tauri/ (new termdb-tauri workspace member)

  • ping — webview↔Rust round-trip proof
  • list_connections — reads the same SQLite ConfigStore as egui (zero core changes)
  • get_palette — Omarchy colors.toml reader ported from theme.rs, slate fallback off-Linux
  • tauri.conf.json (1200×800, all bundle targets), least-privilege capabilities/default.json, placeholder RGBA icons (tauri icon follow-up before release)

frontend/ (Svelte 5 + TS + Vite)

  • Typed invoke wrappers mirroring termdb-core models (hand-written until tauri-specta lands)
  • TopBar / Sidebar components, CSS-variable theming from get_palette()
  • Table / Query Editor / Connection form are marked placeholders for M2–M3

Verification

  • npm run build — svelte-check 0 errors, vite build ok
  • cargo check -p termdb-tauri, cargo test -p termdb-tauri (3 passed), fmt --check, clippy clean
  • cargo check --workspace — egui + core + Tauri compile together

Run it

npm --prefix frontend run build  # once: generate_context! reads frontend/dist
cargo run -p termdb-tauri
cargo run -p termdb              # old egui app, unchanged

Follow-ups (not in this PR)

  • M2: engine extraction → connect/list_tables/open_table/load_page + sidebar tree + DataGrid + connection form
  • M3: record dialog, CodeMirror SQL editor, history/results, CSV/JSON export
  • Real icons via tauri icon, tauri-specta bindings, CI job (frontend build → cargo test → tauri build)

Kept open as work-in-progress migration branch — do not merge yet.

Add src-tauri workspace member (ping, list_connections, get_palette commands + Omarchy palette with slate fallback) and a Svelte 5 frontend skeleton (TopBar, Sidebar, themed shell). The egui app is untouched; Milestones 2-3 will add live sessions, DataGrid, and query editor.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant