Tauri 2 shell: verified Linux build and native window
This commit is contained in:
+17
-22
@@ -12,7 +12,7 @@ The first phase proves the spine: Rust audio, a session with a journal, a protoc
|
||||
| Daemon | `zhila-daemon`: WebSocket, hello/token/protocol/origin checks, snapshot, results, broadcast events, 30 Hz binary meters, current-thread Tokio, graceful Ctrl-C |
|
||||
| Surface | Svelte 5 + Vite: audio-reactive descent, wire log, engine facts, cilia, signal trace, per-vein gain sliders, transport, keyboard |
|
||||
| Verification | `cargo test`, `cargo clippy`, `svelte-check`, production build, live wire test, browser smoke + screenshots |
|
||||
| Shell | Tauri 2 scaffold in `app`; build blocked by missing system development packages (below) |
|
||||
| Shell | Tauri 2 built and launched; native window against the daemon (below) |
|
||||
|
||||
## Decisions taken in P0
|
||||
|
||||
@@ -23,33 +23,28 @@ The first phase proves the spine: Rust audio, a session with a journal, a protoc
|
||||
- **The surface is a projection.** The server owns state; the UI applies snapshots, results and events. The canvas owns only its visual phase.
|
||||
- **Every layer reacts to sound.** The terrain alpha/offset, eye size/glow/rings, city lights, dust, road bands, stone glow, playhead, lane fills, chrome hairlines, cilia, signal trace and master line all read the five vein levels and the master. No decorative animation is independent of the audio.
|
||||
|
||||
## Tauri blocker
|
||||
## Tauri verification (resolved)
|
||||
|
||||
`cargo check` in `app/src-tauri` failed on this machine because the GTK/WebKit/dbus development packages are absent and `sudo` needs a password:
|
||||
The shell was built and launched on 2026-11-01 after the Fedora development packages were installed:
|
||||
|
||||
```
|
||||
Package 'dbus-1' was not found
|
||||
The system library `dbus-1` required by crate `libdbus-sys` was not found.
|
||||
```
|
||||
|
||||
`pkg-config` also reports missing `webkit2gtk-4.1` and `gtk+-3.0`. The shell is scaffolded, not verified.
|
||||
|
||||
Install the Fedora development packages (one command, needs your password):
|
||||
- webkit2gtk-4.1 **2.54.2**
|
||||
- gtk+-3.0 **3.24.52**
|
||||
- dbus-1 **1.16.2**
|
||||
- javascriptcoregtk-4.1 **2.54.2**
|
||||
- libsoup-3.0 **3.8.1**
|
||||
- Tauri **2.12.5** · CLI **2.12.4**
|
||||
|
||||
```bash
|
||||
sudo dnf install dbus-devel webkit2gtk4.1-devel gtk3-devel libappindicator-gtk3-devel \
|
||||
librsvg2-devel openssl-devel libsoup3-devel javascriptcoregtk4.1-devel pkgconf-pkg-config
|
||||
```
|
||||
|
||||
Then:
|
||||
|
||||
```bash
|
||||
cargo check --manifest-path app/src-tauri/Cargo.toml
|
||||
npm --prefix ui run build
|
||||
npm --prefix app run tauri dev # expects the daemon and Vite to be running
|
||||
cd app
|
||||
./node_modules/.bin/tauri build --no-bundle
|
||||
# with the daemon running:
|
||||
./src-tauri/target/release/zhila-app
|
||||
```
|
||||
|
||||
The Tauri window loads `http://127.0.0.1:5173`; the daemon remains a separate process in P0. Embedding the engine in the Tauri backend is P1 work, after the engine's lifecycle is settled.
|
||||
`cargo check --manifest-path app/src-tauri/Cargo.toml` and the release build pass. The native window loads the embedded surface, opens the wire (`wire open`, `engine live`), and renders the descent and the engine panel. The screenshot is `preview-tauri.png` at the repository root.
|
||||
|
||||
The engine is still the separate daemon: the Tauri shell is a viewer in P0/P1a. Embedding the engine in the Tauri backend is the next step after the session/persistence slice. The earlier `dbus-1`/`webkit2gtk`/`gtk` failure is historical; those packages are now present.
|
||||
|
||||
## P0 exit criteria
|
||||
|
||||
@@ -57,7 +52,7 @@ The Tauri window loads `http://127.0.0.1:5173`; the daemon remains a separate pr
|
||||
- Real cpal output with five veins and non-zero meters: **passed** (Default Audio Device, 48 kHz, 256-frame buffer, master peak ~0.45 in the wire test).
|
||||
- A session that validates and journals project edits: **passed** (Rust tests).
|
||||
- A surface that visibly reacts to the five levels: **passed** (canvas, cilia, trace, gains; screenshots).
|
||||
- A Tauri window on Linux: **blocked** by system development packages; the exact command is above.
|
||||
- A Tauri window on Linux: **passed** on 2026-11-01 (WebKitGTK 2.54.2; screenshot `preview-tauri.png`).
|
||||
|
||||
## Next
|
||||
|
||||
|
||||
Reference in New Issue
Block a user