Adds guarded native Windows D3D11 and NVIDIA CUDA export compositors for supported Lightning/static-layout MP4 exports, while keeping WebCodecs/WebGL fallback for unsupported feature combinations.
Includes release hardening for native output validation, safe file replacement, CJS bundle smoke checks, helper manifest verification, recording diagnostics, and the Windows browser mic path that fixed the reported crackle/noise issue in beta testing.
Validation before merge:
- `npx tsc --noEmit`
- focused export/audio/telemetry/unit coverage (`92` + `27` tests across the latest hardening passes)
- scoped Biome checks on touched release-gate files
- `npx vite build --config vite.config.ts`
- `node scripts/smoke-electron-main-cjs.mjs`
- `npm run smoke:packaged-binaries`
- `git diff --check`
Known release-safe gates still fall back intentionally: video backgrounds, annotation/caption/frame overlays, missing helper-readable webcam sources, unsupported audio modes, odd output dimensions, and any native helper output that fails validation.
add: launchTheme.css for consistent styling accross the whole components spectrum related to LaunchWindow
add: correct styles accross the popovers! with unstyled parameters in Popover.tsx because it was needed to make sure its the same
isAllowedLocalReadPath now resolves the candidate via fs.realpathSync and requires both the lexical and canonical paths to satisfy the policy, so a symlink placed under an allowed prefix that points outside the allowlist is rejected. The redundant 'either resolved or realResolved is allowed' check in read-local-file and generate-wallpaper-thumbnail is removed since the function canonicalizes internally. Adds a regression test that creates such a symlink (skipping when Windows refuses to create it without Developer Mode).
build-whisper-runtime now only soft-fails when invoked from postinstall, in CI, or with WHISPER_RUNTIME_ALLOW_MISSING=1. Direct 'npm run build*' invocations fail loudly when CMake is missing and no bundled runtime is staged so we don't ship release builds with broken auto-captioning.
isAllowedLocalReadPath previously returned true for any existing path because of an existsSync fast-path, which made the read-local-file IPC handler and the local media URL policy effectively allow reading arbitrary files on disk. Drop the existsSync bypass so only paths under app-managed directories or paths that have been explicitly approved (via dialogs, exports, recording sessions, etc.) are accepted. Adjust the local media path policy tests to cover the new behaviour.
Also make build-whisper-runtime fall back to bundled artifacts when CMake is missing (mirroring build-windows-capture) so npm ci does not fail on machines without a C++ toolchain.