feat(onboarding): parakeet-as-default pinned by test; FirstRunPage handles distil ids

Parakeet-TDT scores 85 on any GPU-equipped English-capable system (Instant
speed + Great accuracy + GPU boost + headroom) vs ~75 for the best distilled
Whisper. A new test in recommendation.rs locks this in so future scoring
tweaks don't silently regress it.

FirstRunPage previously stored settings.modelSize by title-casing a lowercased
alias — which worked for Tiny/Base/Small/Medium but produced
"Whisper-distil-small-en" for the new distil ids. Swap to an id→label map
and pass the raw model id through to download_model/load_model; the backend
already accepts full ids via the whisper_model_id fallback.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-21 07:41:22 +01:00
parent 4561810751
commit 36efcf2320
2 changed files with 29 additions and 8 deletions

View File

@@ -177,4 +177,19 @@ mod tests {
assert!(ranked.is_empty());
}
#[test]
fn parakeet_is_top_recommendation_when_hardware_supports_it() {
// Any machine that fits Parakeet in RAM should see it ranked first —
// Parakeet-TDT is English-only but beats Whisper on English at lower
// latency, so it's Kon's default recommendation when eligible.
// (Users on non-English languages adjust manually — handled at the
// settings-UI level, not at the scoring level for now.)
let profile = profile_with_ram(Megabytes(16384));
let ranked = rank_recommendations(&profile);
let top = ranked.first().expect("at least one model ranks");
assert_eq!(top.entry.engine, Engine::Parakeet);
}
}