Skip to content

CE: Scaffold Tauri v2 desktop tray app#286

Merged
ericflo merged 5 commits intomainfrom
ce/scaffold-tauri-desktop
Apr 15, 2026
Merged

CE: Scaffold Tauri v2 desktop tray app#286
ericflo merged 5 commits intomainfrom
ce/scaffold-tauri-desktop

Conversation

@ericflo
Copy link
Copy Markdown
Owner

@ericflo ericflo commented Apr 15, 2026

What

Adds a new modelrelay-desktop crate using Tauri v2 to the workspace.

Why

First step toward a native desktop/tray app for ModelRelay workers. This scaffolds the project structure, Tauri config, minimal frontend, and placeholder commands.

Contents

  • New crate: crates/modelrelay-desktop
  • Tauri v2 (2.10.3) with system tray support (tray-icon feature)
  • Minimal dark-themed HTML frontend with status display
  • Placeholder Tauri commands: get_status, get_settings, save_settings
  • System tray with context menu (Open Dashboard, Settings, Quit)
  • Path dependencies on modelrelay-worker and modelrelay-protocol
  • Placeholder icon PNGs
  • Added to workspace members

Notes

  • cargo check fails on systems without GTK/WebKit system libraries (glib-2.0, webkit2gtk-4.1, etc.) — this is expected for Tauri on Linux. CI may need a separate job with these deps installed.
  • cargo metadata confirms the crate resolves correctly in the workspace
  • cargo fmt --check passes
  • Existing workspace crates are unaffected

Test plan

  • cargo metadata shows modelrelay-desktop in workspace
  • cargo fmt --check -p modelrelay-desktop passes
  • cargo check -p modelrelay-protocol -p modelrelay-worker still passes
  • Full cargo check -p modelrelay-desktop requires system GTK/WebKit libs

Cloud Eric added 5 commits April 15, 2026 00:35
- Add apt-get install step for libwebkit2gtk-4.1-dev, libgtk-3-dev,
  libayatana-appindicator3-dev, librsvg2-dev, patchelf on Linux CI jobs
- Fix duplicate __cmd__* macro definitions by using full paths in
  generate_handler! instead of importing commands with use
- Move #[tauri::command] functions from lib.rs to main.rs to avoid
  __cmd__* macro collisions between lib and bin targets
- Add icon.ico and icon.icns required by tauri-build on Windows/macOS
- Use #[derive(Default)] for AppStatus instead of manual impl
- Regenerate all icon PNGs as proper RGBA format (fixes
  generate_context!() proc macro panic on 'icon is not RGBA')
@ericflo ericflo merged commit e6c2e73 into main Apr 15, 2026
12 checks passed
@ericflo ericflo deleted the ce/scaffold-tauri-desktop branch April 15, 2026 01:59
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