Studio whisper: pair slim bundles on the ggml commit, not the full llama tag#7381
Merged
Conversation
…ama tag The slim whisper bundle is ggml-less and links the ggml runtime out of the installed llama.cpp prebuilt, so each whisper release pins a paired llama tag. The gate required an exact tag match, but llama fork tags are b<upstream_build>-mix-<ggml_commit> and the build number tracks upstream llama and fork PRs that live outside ggml. When llama republishes a newer build with the same ggml commit (a frequent event), the installed llama advances past the whisper pin and curated dictation goes unavailable until whisper is republished, even though the ggml runtime is ABI-identical. Key the pairing gate on the ggml commit after -mix- instead of the full tag, in all three comparison sites (slim_pairing_for_artifact, _slim_release_incompatibility, resolve_selection). requires_ggml_sonames stays the real per-file ABI gate, and a genuine ggml skew still fails closed. Tags without a -mix- marker fall back to exact matching.
Member
Author
|
@codex review |
|
Codex Review: Didn't find any major issues. Bravo. Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes curated whisper.cpp dictation going unavailable whenever the llama.cpp prebuilt advances to a newer build that keeps the same ggml commit.
The slim whisper bundle is ggml-less:
whisper-serverlinks the ggml runtime (libggml.so.0,libggml-base.so.0, backend modules) out of the installed llama.cpp prebuilt, so each whisper release pins a paired llama release. The installer required that pin to match the installed llama tag exactly (slim_pairing_for_artifact,_slim_release_incompatibility,resolve_selection).llama fork tags are
b<upstream_build>-mix-<ggml_commit>. The build number tracks upstream llama and fork PRs that live inllama-server, outside ggml; the-mix-<ggml_commit>suffix is what fixes the ggml ABI the slim bundle links against. The llama installer always installs the newest llama, so as soon as llama republishes a newer build with the same ggml (a frequent event), the installed tag advances past the whisper pin and the exact-match gate rejects an ABI-identical pairing:Both tags carry the same ggml commit
fb3d4ca; only the build number differs, so the runtime.so.0files are byte-for-byte ABI-identical.Fix
Key the pairing gate on the ggml commit after
-mix-instead of the full tag, via a smallllama_runtime_pairshelper used in all three comparison sites.requires_ggml_sonamesremains the real per-file ABI gate, so a runtime that is actually missing a library still fails closed, and a genuine ggml skew (different-mix-<commit>) still reports incompatible. Tags without a-mix-marker fall back to exact matching, so nothing regresses for non-fork tags. This is first-party-to-first-party pairing (our llama.cpp and whisper.cpp forks), so there is no security or authenticity implication.Tests
test_llama_runtime_pairs_keys_on_ggml_commit: exact tag, newer-build-same-ggml, same-build-different-ggml, missing requirement, and non--mix-tags.test_slim_pairs_across_llama_build_bump_with_same_ggml: the live failure case (installedb10079-mix-fb3d4ca, pinnedb10069-mix-fb3d4ca) now selects the slim bundle instead of degrading to CPU.test_slim_build_bump_same_ggml_is_not_a_compatibility_error: a same-ggml build bump does not surface as a release incompatibility.b10068-mix-oldandb99999-mix-0000000are genuine ggml skews and still reject.tests/studio/install/full suite: 1307 passed, 2 skipped.