From 11678348d51455d349480f4f4d5fc0cc439eb54b Mon Sep 17 00:00:00 2001 From: Zbigniew Herman Date: Wed, 10 Jun 2026 18:36:04 +0200 Subject: [PATCH 1/2] fix[notask]: ship Parakeet CPU-only on Android to stop Adreno Vulkan SIGABRT @qvac/transcription-parakeet crashes on Android (SIGABRT on the Bare mqt_v_js worklet) ~8s into loading the parakeet-tdt-0.6b-v3 model, killing the consumer and failing the whole Android e2e batch ("All consumers are dead"). Confirmed on device-farm runs 27282459468 and 27286841825 (Samsung S25 Ultra): the crash is immediately preceded by `AdrenoVK-0: Application Name: ggml-vulkan` and the backtrace is entirely inside libqvac__transcription-parakeet.0.7.1.so. Root cause: ParakeetModel::load already forces useGPU=false on Android (n_gpu_layers=0) "pending Vulkan/Mali and OpenCL/Adreno driver fixes", but the addon still ships the libqvac-speech-ggml-{vulkan,opencl}.so backends, and parakeet-cpp's ggml_backend_load_all_from_path() initialises the Adreno Vulkan device regardless of n_gpu_layers. After parakeet-cpp 2026-06-04#0 (#2461) added robust Adreno-generation detection, that init engages the Adreno Vulkan backend on the S25 Ultra and aborts in ggml graph compute. The same parakeet@0.7.1 passed on Android on Jun 5 (run 27030121365) with the older parakeet-cpp 2026-05-26#2, which did not detect the Adreno and stayed on CPU. Fix: drop the vulkan/opencl vcpkg features from the Android parakeet-cpp dependency so the Android prebuild is CPU-only (no GPU backend .so is shipped -> nothing initialises the Adreno driver), completing the existing engine-boundary GPU-disable policy. iOS (Metal) and desktop (Vulkan) builds are unchanged. Bump 0.7.1 -> 0.7.2. Same class of Android Adreno-GPU ggml instability as the tts-ggml / Supertonic issue; re-enable once the upstream parakeet-cpp / ggml Adreno Vulkan/OpenCL path is fixed. Co-authored-by: Cursor --- packages/transcription-parakeet/CHANGELOG.md | 23 ++++++++++++++++++++ packages/transcription-parakeet/package.json | 2 +- packages/transcription-parakeet/vcpkg.json | 1 - 3 files changed, 24 insertions(+), 2 deletions(-) diff --git a/packages/transcription-parakeet/CHANGELOG.md b/packages/transcription-parakeet/CHANGELOG.md index 4a26cbbb07..1937d04ca4 100644 --- a/packages/transcription-parakeet/CHANGELOG.md +++ b/packages/transcription-parakeet/CHANGELOG.md @@ -5,6 +5,29 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.7.2] - 2026-06-10 + +### Fixed + +- **Android: ship Parakeet CPU-only by dropping the Adreno GPU backends, fixing a + SIGABRT during model load.** Parakeet already forces `useGPU=false` on Android at + the engine boundary (`ParakeetModel::load`, "pending Vulkan/Mali and OpenCL/Adreno + driver fixes"), but the addon still *shipped* the + `libqvac-speech-ggml-{vulkan,opencl}.so` backends, and `parakeet-cpp`'s + `ggml_backend_load_all_from_path()` initialises the Adreno Vulkan device regardless + of `n_gpu_layers=0`. After `parakeet-cpp 2026-06-04#0` (#2461) added robust + Adreno-generation detection, that init now engages the Adreno Vulkan backend on + devices like the Samsung S25 Ultra and aborts in `ggml` graph compute ~8 s into + loading `parakeet-tdt-0.6b-v3`, killing the Bare worklet (SIGABRT) and every + subsequent test. (Confirmed identical on device-farm runs 27282459468 and + 27286841825; the same `parakeet@0.7.1` passed on Android on Jun 5 with the older + `parakeet-cpp 2026-05-26#2`, which did not detect the Adreno → stayed on CPU.) + Drop the `vulkan`/`opencl` vcpkg features from the Android `parakeet-cpp` + dependency so the Android prebuild is CPU-only — no GPU backend `.so` is shipped, + so nothing initialises the Adreno driver. iOS (Metal) and desktop + (Vulkan) builds are unchanged. The Android GPU path can be re-enabled once the + upstream Adreno Vulkan/OpenCL `ggml` instability is fixed. + ## [0.7.1] - 2026-06-02 ### Changed diff --git a/packages/transcription-parakeet/package.json b/packages/transcription-parakeet/package.json index ba0e5cb688..5f0ca353d1 100644 --- a/packages/transcription-parakeet/package.json +++ b/packages/transcription-parakeet/package.json @@ -1,6 +1,6 @@ { "name": "@qvac/transcription-parakeet", - "version": "0.7.1", + "version": "0.7.2", "description": "High-performance speech-to-text inference addon using NVIDIA Parakeet models for Bare runtime", "addon": true, "engines": { diff --git a/packages/transcription-parakeet/vcpkg.json b/packages/transcription-parakeet/vcpkg.json index 27ff0c1ab2..ef035d2f60 100644 --- a/packages/transcription-parakeet/vcpkg.json +++ b/packages/transcription-parakeet/vcpkg.json @@ -11,7 +11,6 @@ { "name": "parakeet-cpp", "version>=": "2026-06-04#0", - "features": ["vulkan", "opencl"], "platform": "android" }, { From c7cc73b3f833fdcb370d36c8d275f775c98efdfb Mon Sep 17 00:00:00 2001 From: Zbigniew Herman Date: Wed, 10 Jun 2026 19:15:41 +0200 Subject: [PATCH 2/2] chore: drop date from transcription-parakeet 0.7.2 changelog heading --- packages/transcription-parakeet/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/transcription-parakeet/CHANGELOG.md b/packages/transcription-parakeet/CHANGELOG.md index 1937d04ca4..142672759c 100644 --- a/packages/transcription-parakeet/CHANGELOG.md +++ b/packages/transcription-parakeet/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.7.2] - 2026-06-10 +## [0.7.2] ### Fixed