Architecture diagram
This diagram shows the local runtime path: the desktop UI communicates with the Rust backend through Tauri commands. The backend manages a separate Harness service process, and the embedded client accesses it through a loopback address.Main layers
Startup flow
1
Resolve configuration
Rust derives release or debug paths, the active profile, preferred core, and port.
2
Prepare dependencies
Reuse compatible local tools or prepare managed Node.js, pnpm, and the core. First startup downloads missing dependencies over the network.
3
Ensure plugins
Check and restore built-in plugins in the active profile before starting the service.
4
Launch and probe Harness
The selected Node launches the Harness entry with
--profile <id> --port <port> --no-open, then the backend waits for health.5
Load the client
Switch from setup or loading state to the local Harness UI. Default ports are
3080 for release and 3081 for debug; an occupied port can trigger fallback.