Companion app#
SideQuest Companion is a native tray app for Windows, macOS and Linux that syncs the WoW addon’s save file with sidequest-guild.com. It’s built with GPUI, a Rust UI toolkit: no browser or webview, just a window that draws itself.
Main parts#
File |
What’s in it |
|---|---|
|
The background engine. Owns the watch/sync/update loop and talks to the UI only through |
|
The website client, upload/stage logic, and sync history. |
|
Settings, and keyring access for the sync token. |
|
SavedVariables reading and WoW-install discovery. |
|
GitHub release checks, installing addon updates, and updating the companion itself. |
|
Raid reminders, OS notifications, and launch-at-login. |
|
The GPUI app, window and tray icon. |
flowchart LR
Companion["companion<br/>tray app"] -->|"/api/epgp/* + sync token"| API["website: api/<br/>Litestar backend"]
Companion <-->|"reads/writes SavedVariables"| Addon["addon<br/>in game"]
The engine-UI contract#
The UI never touches the filesystem, network, or keyring directly. It only calls
EngineHandle::snapshot(), sends a Command, or calls shutdown_blocking(), and redraws when a
Repaint event fires. See How it works for what it syncs.
Pages#
Run it locally: build and run it
Test and check:
cargo testand the other checks inmake ciHow it works: what it syncs, the tray, update checks, and where settings live
Deploy: tagging a release and what it builds
README: the repo’s own README