Desktop client: exploration doc + Tauri shell spike #56

Merged
ryan merged 2 commits from explore/desktop-client into main 2026-10-12 17:42:25 -04:00
Owner

Summary

  • docs/desktop-client.md: compares PWA, Tauri v2 and Electron for a Cowork-style desktop client. Recommends a Tauri shell that loads the deployed origin, and covers decisions, backend changes (structured SSE events, artifacts table, uploads, notifications, local tool bridge over MCP, access-token auth), a phased plan and open questions. Linked in the mkdocs nav.
  • desktop/: phase 0b spike. A bundled connect page probes $SIMBA_URL/api/health and hands the window to the web app. Adds a menu-bar icon (Show / New Chat / Reconnect / Quit), ⌥Space toggle, close-to-hide, single-instance and Dock reopen. The remote origin gets no IPC. Rust 1.90 is pinned via rust-toolchain.toml.
  • make desktop-dev SIMBA_URL=… / make desktop (builds the .app and copies it to /Applications).

No backend or frontend code changes. The auth fix (phase 0a) is a separate branch, fix/access-token-auth.

Test plan

  • cargo build clean
  • Login via Authelia inside the webview works; conversation list loads
  • Streaming answer with tool calls
  • ⌥Space toggle, tray menu, close-to-hide / Dock reopen
  • pytest tests/ -q: 102 passed (needs TAVILY_API_KEY set, even a dummy one, for test_metrics collection)

🤖 Generated with Claude Code

## Summary - `docs/desktop-client.md`: compares PWA, Tauri v2 and Electron for a Cowork-style desktop client. Recommends a Tauri shell that loads the deployed origin, and covers decisions, backend changes (structured SSE events, `artifacts` table, uploads, notifications, local tool bridge over MCP, access-token auth), a phased plan and open questions. Linked in the mkdocs nav. - `desktop/`: phase 0b spike. A bundled connect page probes `$SIMBA_URL/api/health` and hands the window to the web app. Adds a menu-bar icon (Show / New Chat / Reconnect / Quit), ⌥Space toggle, close-to-hide, single-instance and Dock reopen. The remote origin gets no IPC. Rust 1.90 is pinned via `rust-toolchain.toml`. - `make desktop-dev SIMBA_URL=…` / `make desktop` (builds the `.app` and copies it to /Applications). No backend or frontend code changes. The auth fix (phase 0a) is a separate branch, `fix/access-token-auth`. ## Test plan - [x] `cargo build` clean - [x] Login via Authelia inside the webview works; conversation list loads - [ ] Streaming answer with tool calls - [ ] ⌥Space toggle, tray menu, close-to-hide / Dock reopen - [x] `pytest tests/ -q`: 102 passed (needs `TAVILY_API_KEY` set, even a dummy one, for test_metrics collection) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ryan added 2 commits 2026-10-12 17:41:39 -04:00
Compares PWA, Tauri v2 and Electron shells, recommends a Tauri shell
loading the deployed origin, and lays out backend changes (structured
SSE events, artifacts table, uploads, notifications, local tool bridge,
access-token auth) with a phased plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
desktop/ is a thin Tauri v2 app: a bundled connect page probes
SIMBA_URL/api/health and hands the window to the deployed web app.
Adds a menu-bar icon (Show / New Chat / Reconnect / Quit), Alt+Space
toggle, close-to-hide, single-instance and Dock reopen. The remote
origin gets no IPC. Rust 1.90 is pinned via rust-toolchain.toml.
New make targets: desktop-dev, desktop.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ryan merged commit fde8208afe into main 2026-10-12 17:42:25 -04:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: ryan/simbarag#56