Files

54 lines
1.9 KiB
Markdown

# Pi Status UI
## Reason for existence
Provide the desktop control surface for Pi Status Bridge. The UI presents bridge state and forwards user intent; it never owns Pi sessions, worktree routing, or approval policy.
## Requirements
- Node.js 20+.
- Rust stable and the native dependencies required by [Tauri v2](https://v2.tauri.app/start/prerequisites/).
- A running Pi Status Bridge socket. By default the app uses `$XDG_RUNTIME_DIR/pi-status-bridge/bridge.sock`; set `PI_STATUS_BRIDGE_SOCKET` to override it.
## Develop
From the repository root:
```bash
npm --prefix ui ci
npm --prefix ui run tauri dev
```
The UI needs a running bridge. For day-to-day use, keep it in the background with the root project's `npm run bridge:service:install` command. For foreground development, run the bridge in a separate terminal:
```bash
node src/bridge/cli.js --worktree "$HOME"
```
The Tauri app connects to the bridge on startup. See the [root README](../README.md#keep-the-bridge-running-in-the-background-recommended) for start, restart, status, and log commands.
## Commands
```bash
npm --prefix ui run dev # Vite frontend only
npm --prefix ui run build # typecheck and build frontend assets
npm --prefix ui run tauri dev # run the desktop client in development
npm --prefix ui run tauri:release # build the production executable used by Noctalia/Mod+Space
npm --prefix ui run tauri build # package installers (requires platform bundle tooling)
```
## Boundaries
- The UI sends operations only to the selected bridge agent.
- Extension responses are forwarded unchanged to Pi.
- The UI must not add a network transport or persist competing model/thinking defaults.
## Verification
```bash
cargo test --manifest-path ui/src-tauri/Cargo.toml
npm --prefix ui run build
```
See the [root README](../README.md) for bridge setup and repository-wide verification.