diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index e2a685ac..361d3250 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -60,6 +60,22 @@ jobs: - name: Build shared package run: pnpm --filter @backspace/shared build + # O postinstall termina em `|| console.warn` para que quem não tem + # ferramentas de build consiga instalar. No CI isso transforma falha em + # sucesso silencioso: o instalador sai sem o módulo nativo e o app + # compartilha tela sem som, sem erro nenhum. Então verifica-se o + # resultado em vez de confiar no código de saída. + - name: Verify native audio module compiled + shell: bash + run: | + found=$(find node_modules/.pnpm -path '*electron-native-screenshare*' -name '*.node' 2>/dev/null | head -5) + if [ -z "$found" ]; then + echo "::error::electron-native-screenshare has no compiled .node — the installer would ship without system-audio capture" + find node_modules/.pnpm -maxdepth 1 -name 'electron-native-screenshare*' -printf '%p\n' 2>/dev/null || true + exit 1 + fi + echo "OK:"; echo "$found" + - name: Compile desktop TypeScript working-directory: packages/desktop run: pnpm exec tsc diff --git a/package.json b/package.json index a511aaca..5ef88906 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "backspace", "version": "1.1.0", "private": true, - "description": "Open, self-hosted communication platform — text, voice, video, and federation", + "description": "Open, self-hosted communication platform \u2014 text, voice, video, and federation", "license": "AGPL-3.0-only", "author": "Jannis Braun", "homepage": "https://github.com/TheZwiss/backspace", @@ -32,8 +32,9 @@ "pnpm": { "onlyBuiltDependencies": [ "better-sqlite3", - "esbuild", "electron", + "electron-native-screenshare", + "esbuild", "sharp" ], "patchedDependencies": { diff --git a/packages/desktop/package.json b/packages/desktop/package.json index 810a33fd..7dc70bfa 100644 --- a/packages/desktop/package.json +++ b/packages/desktop/package.json @@ -18,7 +18,7 @@ "clean": "rm -rf dist dist-electron", "test": "vitest run", "test:watch": "vitest", - "postinstall": "electron-rebuild -f -w uiohook-napi -w electron-native-screenshare || node -e \"console.warn('[desktop] uiohook-napi native rebuild skipped - needs build tools (make, g++, python3). Only required to RUN the desktop app; the server, web client, and Docker image are unaffected.')\"" + "postinstall": "electron-rebuild -f -w uiohook-napi,electron-native-screenshare || node -e \"console.warn('[desktop] uiohook-napi native rebuild skipped - needs build tools (make, g++, python3). Only required to RUN the desktop app; the server, web client, and Docker image are unaffected.')\"" }, "dependencies": { "electron-native-screenshare": "^1.2.0",