microsoft / microsoft/skill-recorder

[Medium] Whisper model cache readiness is existence-only (partial/corrupt model passes)

Open
#16 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
4k
Forks
413
Avg merge
3h 16m
Merged PRs (30d)
10

Description

Severity

Medium — a partially-downloaded/corrupt model passes the readiness check.

Location

electron/narration/whisper.ts — model-cache readiness is determined by directory/file existence only, with no completeness verification.

Mechanism

If a model download is interrupted (network drop, crash, disk full), the cache directory exists but is incomplete. An existence-only check reports "ready", so transcription proceeds against a truncated/corrupt model.

Impact

Confusing runtime failures or silently degraded transcription that looks like a model/quality problem rather than a bad cache.

Suggested fix

Verify completeness before marking ready — e.g. check the expected file set and sizes, and ideally a manifest hash (see the related model-pinning low finding) — and re-download if incomplete.

Regression test to add (npm test)

Extend electron/narration/whisper.test.ts: point at a partial model dir (missing/short files) and assert readiness returns false / triggers re-fetch. Deterministic; not an evals/ concern.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start in electron/narration/whisper.ts to trace the model-cache readiness check, then read electron/narration/whisper.test.ts. Run npm test and add coverage for a partial model directory with missing or short files; done means readiness is rejected or re-fetching occurs instead of proceeding with the incomplete cache.

Written by the indexing model from the issue text.

Assessment

Tech stack
electron, typescript
Domain
desktop, testing-qa
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
76/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.