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
+58 -16
View File
@@ -5,7 +5,7 @@
@tailwind utilities;
/* ---------------------------------------------------------------------------
* Clean-Rail design tokens.
* Desktop chat design tokens.
*
* `--bg-rgb / --fg-rgb / --accent-rgb` are *space-separated rgb triplets*
* (no `rgb(...)` wrapper) so Tailwind's `rgb(var(--x) / <alpha-value>)`
@@ -16,26 +16,26 @@
* ------------------------------------------------------------------------- */
:root {
--bg-rgb: 250 250 249;
--bg-2-rgb: 244 244 242;
--bg-rgb: 246 247 250;
--bg-2-rgb: 235 237 242;
--bg-3-rgb: 255 255 255;
--fg-rgb: 10 10 15;
--fg-muted-rgb: 115 115 128;
--accent-rgb: 79 70 229;
--fg-rgb: 24 25 28;
--fg-muted-rgb: 91 95 104;
--accent-rgb: 88 101 242;
--accent-fg-rgb: 255 255 255;
--line: rgba(10, 10, 15, 0.08);
--line: rgba(24, 25, 28, 0.1);
color-scheme: light;
}
.dark {
--bg-rgb: 5 5 7;
--bg-2-rgb: 17 17 24;
--bg-3-rgb: 10 10 15;
--fg-rgb: 244 244 245;
--fg-muted-rgb: 138 138 153;
--accent-rgb: 109 115 255;
--bg-rgb: 30 31 34;
--bg-2-rgb: 43 45 49;
--bg-3-rgb: 49 51 56;
--fg-rgb: 242 243 245;
--fg-muted-rgb: 148 155 164;
--accent-rgb: 88 101 242;
--accent-fg-rgb: 255 255 255;
--line: rgba(255, 255, 255, 0.07);
--line: rgba(255, 255, 255, 0.08);
color-scheme: dark;
}
@@ -51,6 +51,32 @@
font-feature-settings: 'cv11', 'ss01';
}
* {
scrollbar-color: rgb(var(--fg-muted-rgb) / 0.36) transparent;
}
::-webkit-scrollbar {
height: 10px;
width: 10px;
}
::-webkit-scrollbar-track {
background: transparent;
}
::-webkit-scrollbar-thumb {
background: rgb(var(--fg-muted-rgb) / 0.28);
border: 3px solid transparent;
border-radius: 999px;
background-clip: padding-box;
}
::-webkit-scrollbar-thumb:hover {
background: rgb(var(--fg-muted-rgb) / 0.44);
border: 3px solid transparent;
background-clip: padding-box;
}
::selection {
@apply bg-accent/40 text-white;
}
@@ -72,11 +98,27 @@
}
.bg-grid {
background-image:
linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
linear-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1px),
linear-gradient(90deg, rgba(255, 255, 255, 0.035) 1px, transparent 1px);
background-size: 32px 32px;
background-position: -1px -1px;
}
.discord-panel {
background: rgb(var(--bg-2-rgb) / 0.94);
border-color: var(--line);
}
.dark .discord-rail {
background: #1e1f22;
}
.dark .discord-chat-panel {
background: #2b2d31;
}
.dark .discord-chat-surface {
background: #313338;
}
.dark .discord-composer {
background: #383a40;
}
/* Glass pill used for the fullscreen call controls bar. */
.glass-pill {
background: rgba(10, 10, 15, 0.7);