Remove the last heavy GoLive dependency now that src/goLive/ replaces it: - @dank074/discord-video-stream (pulled in @lng2004/node-datachannel 771MB, node-av 118MB + @seydx/node-av-linux-x64 167MB, zeromq 21MB, fluent-ffmpeg 13MB — ~1.09GB total) - onlyBuiltDependencies: drop node-av/zeromq/@lng2004 (keep opus/esbuild/sharp) - pnpm.lock regenerated; orphan .pnpm dirs removed locally - @discordjs/opus prebuild: rebuilt binary copied into prebuild/node-v127-napi-v3-linux-x64-glibc-2.39/ (node-pre-gyp find path) Verified: tsc 0 errors, vitest 8/8, biome clean, opus encode OK. Fresh CI install now ~423MB instead of ~1.5GB.
pnpm 11 rebuild hanya jalanin script package yang di-approve via pnpm-workspace.yaml (allowBuilds) DAN abort di kegagalan pertama. Yaml harus tracked (flake source cuma ikut file git). Tapi pnpm rebuild tetap gagal karena: (1) node-crc MSRV cargo:: error — dead dep, dihapus dari deps+patch; (2) sharp install script gagal di sandbox — binary-nya prebuilt @img, script cuma validasi — dikeluarkan dari approval list; (3) node-datachannel prebuild CLI TypeError + cmake-js butuh cwd benar. Fix: loop eksplisit di buildPhase gateway yang jalankan install script tiap native dep (opus/node-datachannel/zeromq) dengan cwd package dir, + cmake (dontUseCmakeConfigure biar stdenv nggak auto-configure), + opensslDevEnv = symlinkJoin pkgsStatic.openssl.out (libcrypto.a — CMakeLists set OPENSSL_USE_STATIC_LIBS=TRUE; pkgs.openssl default output = bin tanpa lib) + openssl.dev (headers), + git (libdatachannel FetchContent clone dari GitHub). Verifikasi: result store punya opus.node (compile source), node_datachannel.node (compile source), node-av prebuilt, zeromq prebuilt; runtime smoke test: PeerConnection instantiate+close OK, OpusEncoder encode OK, dank074 Streamer/prepareStream/playStream load OK.
User: 'dulu sharescreen juga bisa'. Terbukti: commit d50ce86 (Mei 2026) punya src/media/screenShareController.ts + vendor @dank074/discord-video-stream, hilang saat rombak monolith -> microservices. Interface ScreenShareController masih ada di mediaTypes.ts tapi implementasinya tidak. Restore: - dep @dank074/discord-video-stream@6.0.0 (npm, dibangun untuk discord.js-selfbot-v13 — cocok dengan stack gateway) - mediaSource.getDirectVideoUrl (yt-dlp --get-url bestvideo+bestaudio) - screenShareController.ts (BARU): Streamer(client) + prepareStream H264 720p30 + playStream go-live; owner check via discordPlayer - media.handler: mode:'screen' di media:queue -> screen path; status expose activeMode; stop matiin screen - FE: tombol Screen di MusicPlayer + hook useMediaQueue({url, mode}) Verifikasi: gateway tsc PASS, FE tsc PASS, biome 0 error, next build PASS. Nix build pending (dep native @lng2004/node-datachannel butuh pnpm rebuild).
d50ce86