feat: add macOS desktop client build workflow with ARM64 support and fix tunnel metrics task ownership

Add macos-desktop-client.yml workflow with manual dispatch trigger running on macos-arm64 runner. Install Node.js 22 and Rust toolchain with aarch64-apple-darwin target. Build bundled tunnel helper and Tauri application bundle, then upload .app, .dmg, and raw build artifacts.

Fix tunnel_metrics handler to clone app handle before spawn_blocking to prevent ownership issues when passing to tunnel
This commit is contained in:
2026-03-18 14:27:26 +01:00
parent 3e2169f217
commit 5233e90dce
2 changed files with 57 additions and 1 deletions

View File

@@ -486,8 +486,9 @@ async fn tunnel_metrics(app: AppHandle, state: State<'_, AppState>) -> Result<Tu
let session = session.as_ref().ok_or_else(|| "No active session is available".to_string())?;
session.profile_path.clone()
};
let metrics_app = app.clone();
let metrics = tauri::async_runtime::spawn_blocking(move || {
tunnel_manager::metrics(&app, std::path::Path::new(&profile_path))
tunnel_manager::metrics(&metrics_app, std::path::Path::new(&profile_path))
})
.await
.map_err(|err| format!("Unable to join tunnel metrics task: {err}"))??;