Secret Scan / scan (push) Successful in 6s
Secret Scan / scan (pull_request) Successful in 6s
Build App (Preview) / compute-version (pull_request) Successful in 5s
Build App (Preview) / create-release (pull_request) Successful in 6s
Build App (Preview) / test (pull_request) Successful in 4m8s
Build App (Preview) / build-macos (pull_request) Successful in 3m18s
Build App (Preview) / build-windows (pull_request) Successful in 8m8s
Build App (Preview) / build-linux (pull_request) Successful in 6m48s
Build App (Preview) / prune-previews (pull_request) Successful in 2s
The mic button failed on Linux with a chain of distinct problems, each hidden behind the previous one: - The AppImage bundled GStreamer libraries but no plugins, so WebKitGTK found 0 capture devices. Enable bundleMediaFramework and install the GStreamer plugin packages on the CI runners. - The bundled libpipewire had the builder's SPA plugin paths compiled in and failed on hosts with a different layout. finalize-appimage.sh now drops it so the host's is used (host-coupled, like libwayland-client). - WebKitGTK denies getUserMedia until the embedder enables media streams and answers the permission request; wry does neither. Add a Linux-only handler for the main window that grants audio-only requests and denies everything else. - getUserMedia now steps down from the saved device to the default device to bare audio:true on OverconstrainedError/NotFoundError, and the STT error shows the DOMException name. Verified on CachyOS: permission request allowed, recording works. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>