Files
pi-gui/ui
alex 166b065ad4 feat(status-ui): improve concurrent session workflows
Add in-place session renewal, searchable model selection, clearer progress feedback, tool-result previews, and per-session presentation state.

Keep commands, errors, loading, and lifecycle indicators attached to their owning runtime so parallel tabs cannot interfere.
2026-08-25 14:56:42 +02:00
..

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.
  • 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:

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:

node src/bridge/cli.js --worktree "$HOME"

The Tauri app connects to the bridge on startup. See the root README for start, restart, status, and log commands.

Commands

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

cargo test --manifest-path ui/src-tauri/Cargo.toml
npm --prefix ui run build

See the root README for bridge setup and repository-wide verification.