Change the empty --hf-file branch of whisper_hf_resolve_model to be
cache-first and refuse ambiguity rather than pick the repo's first
ggml-*.bin. With no -hff: exactly one cached ggml-*.bin resolves it
(no network); more than one errors and lists the cached files; a cold
cache errors and lists the repo's available models instead of silently
downloading. This makes "download once with -hff, then just -hf" work.
Unlike llama.cpp's -hf <user>/<model>[:quant] default-quant pick
(find_best_model), whisper repos are many-models-one-repo with no
meaningful default, so we key off the cache and error+list on ambiguity.
The explicit -hff path (download-first, cache fall-back) is unchanged.
whisper_hf_resolve_model now prints a specific diagnostic for every
failure mode, so cli.cpp no longer prints its own generic (and now
inaccurate) "not found in HF cache" line; it just returns exit 3.
tests/test-hf-resolve.sh gains single-cached (-hf alone -> exit 0) and
multi-cached (-hf alone -> exit 3 + "multiple models cached" + list)
cases, and the missing-file assertion matches the new message.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>