Skip to content

QVAC-18995 feat[api]: bump transcription-whispercpp to 0.9.0 and surface backend/GPU stats#2488

Open
ishanvohra2 wants to merge 1 commit into
tetherto:mainfrom
ishanvohra2:chore/update-whisper-sdk
Open

QVAC-18995 feat[api]: bump transcription-whispercpp to 0.9.0 and surface backend/GPU stats#2488
ishanvohra2 wants to merge 1 commit into
tetherto:mainfrom
ishanvohra2:chore/update-whisper-sdk

Conversation

@ishanvohra2

@ishanvohra2 ishanvohra2 commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

🎯 What problem does this PR solve?

  • The SDK was pinned to @qvac/transcription-whispercpp@^0.8.0, missing the 0.9.0 release.
  • whisper.cpp 0.9.0 adds backend/GPU runtime stats (active device class, GPU backend family, GPU memory) that the SDK did not expose to consumers.

📝 How does it solve it?

  • Bump @qvac/transcription-whispercpp ^0.8.0^0.9.0.
  • Thread the four new runtimeStats fields — backendDevice, backendId, gpuMemTotalMb, gpuMemFreeMb — through all three stats layers: the addon read shape (addon-responses.ts), the transcribe op mapping, and the public transcribeStatsSchema.
  • All four are optional: CPU runs and the parakeet engine simply omit the ones they don't populate; -1 is the no-accounting sentinel for the GPU memory fields.

🧪 How was it tested?

  • New unit test transcription-stats-schema.test.ts: round-trips the GPU fields, asserts they're optional (CPU/parakeet path), accepts the -1 sentinel, and rejects non-numeric backend values (4/4 tests, 11/11 asserts).
  • bun run typecheck and eslint on changed files pass.
  • bare-sdk parity (check:deps-vs-sdk) verified — whispercpp is an excluded plugin addon, no sync needed.

🔌 API Changes

// transcribe(...) now surfaces whisper backend/GPU info in the final stats frame
for await (const ev of sdk.transcribe({ modelId, audioChunk, metadata: true })) {
  if (ev.done && ev.stats) {
    console.log(ev.stats.backendDevice);  // 0 = CPU, 1 = GPU
    console.log(ev.stats.backendId);      // GPU backend family (BackendId enum)
    console.log(ev.stats.gpuMemTotalMb);  // -1 when no memory accounting
    console.log(ev.stats.gpuMemFreeMb);
  }
}

…/GPU stats

Bump @qvac/transcription-whispercpp ^0.8.0 -> ^0.9.0 and expose the new
runtimeStats backend fields (backendDevice, backendId, gpuMemTotalMb,
gpuMemFreeMb) through transcribeStatsSchema and the addon stats mapping.
@ishanvohra2 ishanvohra2 requested review from a team as code owners June 8, 2026 16:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants