feat(desktop): port v0.11.4-v0.15.2 from Tauri to Electron + Discord-parity audio (v0.16.0)

Chronological port of every Tauri release commit (v0.11.4 -> v0.15.2)
into the Electron rebuild, plus Discord-style audio handling that goes
beyond the Tauri original.

Highlights:
  - All 17 Tauri release commits ported (audio fixes, custom notification
    sound, Discord-style chat UX, profile banner, changelog page,
    Discord-parity call UX, screen-share echo + re-watch UX, audio-loop
    fix).
  - Native napi-rs audio-loopback addon with WASAPI process-loopback:
      * EXCLUDE_TARGET_PROCESS_TREE for full-screen shares -> peers
        never hear themselves echoed back through the capture.
      * INCLUDE_TARGET_PROCESS_TREE for window shares -> only the
        picked window's audio is captured, not the whole OS mixer
        (Discord parity).
      * HWND -> PID resolution via Win32 GetWindowThreadProcessId.
  - Discord-style screen-source picker (thumbnail grid, screens vs
    apps tabs, live-refreshing thumbnails).
  - Hash routing fix for packaged builds (file:// can't resolve
    BrowserRouter paths).
  - Tauri sources removed (apps/desktop/src-tauri).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
byGalax
2026-05-06 23:35:01 +02:00
parent 72d02e385f
commit 825160ee46
504 changed files with 14217 additions and 14366 deletions
+60 -16
View File
@@ -1,20 +1,21 @@
{
"name": "@chat-app/desktop",
"version": "0.11.3",
"version": "0.16.0",
"private": true,
"description": "Tauri v2 desktop client (Windows / macOS / Linux)",
"description": "Electron desktop client (Windows / macOS / Linux)",
"type": "module",
"main": "out/main/main.js",
"scripts": {
"dev": "tauri dev",
"vite:dev": "vite",
"build": "tauri build",
"vite:build": "vite build",
"preview": "vite preview",
"dev": "pnpm build:native && electron-vite dev",
"build": "pnpm build:native && electron-vite build && electron-builder",
"build:win": "pnpm build:native && electron-vite build && electron-builder --win",
"build:native": "pnpm --filter @chatapp/audio-loopback-native run build",
"preview": "electron-vite preview",
"lint": "eslint src --ext .ts,.tsx",
"typecheck": "tsc --noEmit",
"test": "vitest run",
"test:watch": "vitest",
"clean": "rm -rf dist .turbo src-tauri/target *.tsbuildinfo"
"clean": "rimraf dist out .turbo *.tsbuildinfo"
},
"dependencies": {
"@chat-app/db-types": "workspace:*",
@@ -23,32 +24,75 @@
"@livekit/components-react": "^2.9.0",
"@livekit/track-processors": "^0.7.2",
"@supabase/supabase-js": "^2.46.0",
"@tauri-apps/api": "^2.1.1",
"@tauri-apps/plugin-fs": "^2.5.0",
"@tauri-apps/plugin-global-shortcut": "^2.3.1",
"@tauri-apps/plugin-notification": "^2.0.1",
"@tauri-apps/plugin-sql": "^2.0.1",
"@tauri-apps/plugin-stronghold": "^2.0.1",
"@tauri-apps/plugin-updater": "^2.10.1",
"better-sqlite3": "^11.3.0",
"electron-updater": "^6.3.0",
"i18next": "^23.16.4",
"libsodium-wrappers-sumo": "0.7.15",
"livekit-client": "^2.7.0",
"react": "^18.3.1",
"react-dom": "^18.3.1",
"react-easy-crop": "^5.5.7",
"react-i18next": "^15.1.1",
"react-router-dom": "^6.28.0",
"zustand": "^5.0.1"
},
"devDependencies": {
"@tauri-apps/cli": "^2.1.0",
"@types/better-sqlite3": "^7.6.0",
"@types/libsodium-wrappers": "^0.7.14",
"@types/libsodium-wrappers-sumo": "^0.8.2",
"@types/react": "^18.3.12",
"@types/react-dom": "^18.3.1",
"@vitejs/plugin-react": "^4.3.3",
"autoprefixer": "^10.4.20",
"electron": "^33.0.0",
"electron-builder": "^25.0.0",
"electron-vite": "^2.3.0",
"postcss": "^8.4.49",
"rimraf": "^6.0.0",
"tailwindcss": "^3.4.15",
"vite": "^5.4.11"
},
"build": {
"appId": "com.meinname.chatapp",
"productName": "ChatApp",
"directories": {
"output": "release",
"buildResources": "resources"
},
"files": [
"out/**/*",
"package.json"
],
"extraResources": [
{
"from": "native/audio-loopback/audio-loopback.win32-x64-msvc.node",
"to": "native/audio-loopback.node"
}
],
"win": {
"target": [
"nsis"
],
"icon": "resources/icon.ico"
},
"mac": {
"target": [
"dmg"
],
"icon": "resources/icon.icns",
"identity": null
},
"linux": {
"target": [
"AppImage"
],
"icon": "resources/icon.png"
},
"publish": [
{
"provider": "generic",
"url": "https://update.netralax.cloud/windows/"
}
]
}
}