---
name: Replace Tauri with Browser UI Served by Rust Binary
---

# Story 01: Replace Tauri with Browser UI Served by Rust Binary

## User Story
As a user, I want to run a single Rust binary that serves the web UI and exposes a WebSocket API, so I can use the app in my browser without installing a desktop shell.

## Acceptance Criteria
- The app runs as a single Rust binary that:
  - Serves the built frontend assets from a `frontend` directory.
  - Exposes a WebSocket endpoint for chat streaming and tool execution.
- The browser UI uses the WebSocket API for:
  - Sending chat messages.
  - Receiving streaming token updates and final chat history updates.
  - Requesting file operations, search, and shell execution.
- The project selection UI uses a browser file picker (not native OS dialogs).
- Model preference and last project selection are persisted server-side (no Tauri store).
- The Tauri backend and configuration are removed from the build pipeline.
- The frontend remains a Vite/React build and is served as static assets by the Rust binary.

## Out of Scope
- Reworking the LLM provider implementations beyond wiring changes.
- Changing the UI layout/visual design.
- Adding authentication or multi-user support.
- Switching away from Vite for frontend builds.
