Rebuild breadman as a Tauri 2 + Svelte app (PAD-3) #7
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/pad-3-tauri-svelte"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes the PAD-3 direction change: breadman moves off hand-laid GTK4 onto a Tauri 2 shell with a Svelte frontend. The Rust core is untouched: storage, scheduler, parser and classifier stay in
breadpad-shared, andbreadman/src/is now a thin#[tauri::command]layer over it.Supersedes PR #6 (the GTK
AdwDialogNew Note / editor unification) which should be closed. Its one requirement, a single editor surface for New note and Edit note, carries over to the Svelte editor here.Backend (
breadman/src/)lib.rstauri builder,state.rsmanaged state,commands.rs(list/create/update/delete notes, config load+save, Tier-1classify_previewfor the editor hint, in-session error log),theme.rs.main.rs/editor.rs/screenshot.rs/views/removed.main.rskeeps the headless CLI paths:breadman done <id>,breadman upcoming --plain,breadman --view <name>(--view editoropens straight into the editor).Frontend (
breadman/ui/)Svelte 5 + Vite. Sidebar with VIEWS / TYPES / MORE and per-type accent dots; the shared dense single-line row across All / Upcoming / per-type / Archive; one editor modal for New note and Edit note with a live Tier-1 classification readout; width-capped Settings on plain token-matched rows (no
AdwSpinRow); Errors. Design follows the PAD-3 direction mockup: Bread design-system tokens, five-type accent system carried sidebar dot to row chip, header search.Theme
theme.rsrenders CSS custom properties from the live pywal palette viabread-theme'scss_custom_properties/css_tokens, injected as<style id="bread-theme">, and re-emitstheme://changedon a filesystem watch sobread-theme reloadrecolours the window with no restart.Build / CI
build.rsbuildsui/distoncargo build(skip withBREADMAN_SKIP_UI_BUILD=1+pnpm -C breadman/ui devfor hot reload).ci/deps.txtaddswebkit2gtk-4.1,libsoup3,nodejs,pnpm.dev-release/rc-release/releaseworkflows build with--features breadman/custom-protocolso the frontend is embedded (not the dev server).bakery.tomlgainswebkit2gtk-4.1.Verified
cargo build --locked(workspace),cargo clippy -p breadmanclean,svelte-check0 errors (5 benignstate_referenced_locallywarnings in the editor).Not in this PR
--screenshot <view>capture mode: the GTK path used a native-window grab; the webview needs a compositor-side capture path.breadman --screenshotcurrently exits with a clear message.deps.txt,pnpm installin-container). Firstcheck.ymlrun on this branch will tell.breadman/icons/.--font-family, so this needs a look on a real desktop.Refs PAD-3 (breadboard).
Review feedback from running it on the desktop: - Type scale up: 16px base (was 15), sidebar section labels 12.5px and brighter, nav items 15.5px, note rows 16px, settings labels 16px. The 14px base read as tiny on a 1920px screen at scale 1. - Lists and the toolbar now share one centred max-width column so the view title, search and rows line up instead of the rows sprawling the full window width. - Settings is its own centred ViewScaffold-style column (was left-aligned with a huge right gutter): own <h1>, no shared toolbar, 760px cap, margin auto. - Settings number fields: native spin buttons removed (they crowded and clipped "0.6" -> "0."), left-aligned (were right-aligned, so the click target read wrong), widened. - Settings rebuilt for non-power-users: - grouped by intent (Notes / Reminders / Calendar sync), plain-language labels and one-line help on every field. - "Morning starts at" is a time picker; snooze options are preset chips (15 min / 30 min / 1 hour / 3 hours / Tomorrow morning) instead of a raw comma-separated string; "if a reminder was missed" is a plain dropdown instead of a raw minutes number. - calendar URL/username/password only appear once sync is switched on. - Ollama internals, the confidence threshold (now a % slider), and the ONNX model/tokenizer/runtime paths are collapsed into an "Advanced" disclosure, closed by default. - breadman no longer rotates the archive on launch (the GTK build never did; it's a viewer, not a writer). The Archive view already merges done notes from notes.jsonl with archive.jsonl.