# openalice-desktop

> Tauri 2 desktop shell for openalice-social — wraps the social web UI in a native window with tray, PTT, deep links, and auto-update.

## At a glance
| field | value |
|---|---|
| kind | `product` |
| priority | `—` |
| default branch | `mvp` |
| last activity | 2026-05-21T04:07:58+00:00 |
| features catalogued | **4** |
| runtime deps declared | **3** |

## Manifest
`.atlas-deps.yml` — parsed cleanly: **yes**

### Runtime deps
- **`openalice-social`** · `http` · via `SOCIAL_URL (hardcoded https://social.blal.pro)` — Loads the social UI in the native iframe — frontend served by openalice-social
- **`openalice-social-api`** · `ws` · via `CSP connect-src / wss://social-api.blal.pro` — Real-time chat + event streams via openalice-social-api WS layer
- **`openalice-social-api`** · `http` · via `tauri-plugin-updater endpoints (social-api.blal.pro)` · _optional_ — Auto-update checks: GET /api/v1/updates/check/{target}/{arch}/{current_version}

### Exposes
- `desktop_binary` — openalice-social-desktop

## Features (4)

### desktop/ptt
- **`desktop.ptt.global-shortcut`** — Registers a user-configurable global shortcut (default `Alt+V`) that emits `ptt-start` / `ptt-end` Tauri events, which are forwarded to the iframe via `postMessage` so the web app can activate voice without window focus. [tauri::command]  
  *src-tauri/src/main.rs:47*

### desktop/shell
- **`desktop.shell.iframe-host`** — Wraps `platform.blal.pro/chat` in a native Tauri window, delegating all UI to the web app while providing OS-level integration (tray, shortcuts, deep links, updater). ![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]  
  *src-tauri/src/main.rs:1*

### desktop/updater
- **`desktop.updater.auto-check`** — Polls `api.platform.blal.pro/api/v1/updates/check/{target}/{arch}/{version}` 5 s after launch; downloads silently with progress events, then emits `update-installed` so the frontend banner prompts the user to restart.  
  *src-tauri/src/main.rs:110*

### desktop/window
- **`desktop.window.state-persistence`** — Saves and restores outer position and size across restarts via `tauri-plugin-store` (`settings.json`). Minimum size guard (800×600) prevents off-screen placement on multi-monitor setups.  
  *src-tauri/src/main.rs:199*

---

*Generated by [openalice-atlas](https://atlas.blal.pro) — single source of truth for the openalicelabs ecosystem.*
