chore: align @qvac/sdk addon pins on the fabric-10069.1.1 releases - #3952
Merged
Conversation
Raise the SDK's native addon floors to the releases that carry qvac-fabric 10069.1.1 (Adreno 830 OpenCL MoE repack fix, GPU MoE kernels re-enabled), so the flattened mobile lib dir ships one consistent GGML backend set again: - @qvac/classification-ggml ^0.18.0 -> ^0.20.0 (brings @qvac/fabric 0.6.0) - @qvac/embed-llamacpp ^0.32.0 -> ^0.34.0 - @qvac/llm-llamacpp ^0.43.0 -> ^0.45.0 - @qvac/ocr-ggml ^0.16.0 -> ^0.18.0 - @qvac/translation-nmtcpp ^0.8.0 -> ^0.10.0 - @qvac/vla-ggml ^0.19.0 -> ^0.21.0 All target versions are published and anonymously reachable on the public npm registry. Every changelog entry in these ranges is a fabric bump with no API change, apart from llm-llamacpp 0.44.0's additive image_no_upscale load option, so no SDK code changes are required.
Contributor
Review StatusCurrent Status: ❌ PENDING Pending reviews: Needs 1 Management or Team Lead, and 1 more from Management, Team Lead, or Member. |
Contributor
License compliance — findings detected (warn-only)Critical: 0 · High: 6 · Medium: 0
How to resolve a blocking finding:
Warn-only (shadow) mode — this check does not block merges yet. Updated automatically by the canonical license compliance workflow. NOTICE presence (advisory)Missing NOTICE (advisory, does not block):
|
gianni-cor
previously approved these changes
Aug 19, 2026
Alok-Ranjan23
previously approved these changes
Aug 19, 2026
Resolves the addon-pin conflict in packages/sdk/package.json. #3854 landed the same six addons on main at their fabric-10069.1.0 releases (plus tts-ggml 0.7.4); this branch takes the same addons one minor further to the fabric-10069.1.1 releases, so the resolution keeps the higher floor on each conflicting line and main's tts-ggml ^0.7.4, which this branch never touched: - @qvac/classification-ggml main ^0.19.1 -> ^0.20.0 (ours) - @qvac/embed-llamacpp main ^0.33.0 -> ^0.34.0 (ours) - @qvac/llm-llamacpp main ^0.44.0 -> ^0.45.0 (ours) - @qvac/ocr-ggml main ^0.17.0 -> ^0.18.0 (ours) - @qvac/translation-nmtcpp main ^0.9.0 -> ^0.10.0 (ours) - @qvac/vla-ggml main ^0.20.0 -> ^0.21.0 (ours) - @qvac/tts-ggml ^0.7.4 (main's, taken as-is) #3854's `image_no_upscale` SDK config schema stays intact: it needs llm-llamacpp >= 0.44.0, which ^0.45.0 satisfies.
^0.21.0 already resolved 0.21.1, but only for a fresh install — a consumer with a lockfile pinning 0.21.0 stays there. 0.21.1 is the CPU SmolVLA mmap fix: the weights path read the device off the buffer type, and ggml declares the CPU buffer type with no device attached, so every CPU load allocated a private copy of the model instead of mapping it and charged the whole file (~1.9 GB for the q8 LIBERO checkpoint) to the process. On iOS that pushed the process against its memory limit and failed the load with a bare "Failed to load SmolVLA model", intermittently and more often later in a long run. Making it the floor means no consumer of this SDK can resolve a vla-ggml without the fix. Verified 0.21.1 is published and anonymously reachable on registry.npmjs.org.
Contributor
Contributor
Contributor
QVAC E2E —
|
Contributor
Contributor
QVAC E2E —
|
donriddo
approved these changes
Aug 19, 2026
opaninakuffo
approved these changes
Aug 19, 2026
This was referenced Aug 21, 2026
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.
🎯 Problem
The SDK's native addon floors sit one fabric build behind. After
#3854 they resolve qvac-fabric
10069.1.0, which misses10069.1.1— the fix for MoE models emitting garbageon Adreno 830 OpenCL, which also re-enables the GPU MoE kernels that were
silently falling back to CPU.
Keeping the llama-family pins spread across different fabric builds is not
cosmetic. These addons all ship backend libraries with identical filenames
(
libqvac-ggml-cpu-*.so,libqvac-ggml-vulkan.so), and the mobile e2e consumerapp flattens every addon's native libs into one lib dir, so only one addon's
copy survives packaging. That mismatch is exactly what
#3902 had to clean up, where one
addon's graph ended up running on another addon's backend and aborted the app.
Separately,
@qvac/vla-ggml's floor allows 0.20.0, which predates the CPUSmolVLA mmap fix.
📝 How
Raise six addon floors in
packages/sdk/package.jsonto the releases carryingqvac-fabric
10069.1.1, and takevla-ggmlto its 0.21.1 patch:@qvac/classification-ggml^0.19.1^0.20.0@qvac/embed-llamacpp^0.33.0^0.34.0@qvac/llm-llamacpp^0.44.0^0.45.0@qvac/ocr-ggml^0.17.0^0.18.0@qvac/translation-nmtcpp^0.9.0^0.10.0@qvac/vla-ggml^0.20.0^0.21.1vla-ggmlgets the patch version as its floor rather than^0.21.0. The caretrange would resolve 0.21.1 on a fresh install anyway, but a consumer holding a
lockfile pinned at 0.21.0 would stay there — and 0.21.1 is the fix where CPU
SmolVLA weight loads read the device off the buffer type. ggml declares the CPU
buffer type with no device attached, so every CPU load allocated a private copy
of the model instead of mapping it and charged the whole file (~1.9 GB for the
q8 LIBERO checkpoint) to the process; on iOS that failed the load with a bare
Failed to load SmolVLA model, intermittently and more often later in a longrun.
@qvac/fabric0.6.0needs no pin of its own: the SDK never declares it, andclassification-ggml@0.20.0requires^0.6.0, so that is what resolves.@qvac/model-fitis untouched — nothing underpackages/sdkreferences it.@qvac/tts-ggmlstays at main's^0.7.4.No source changes. Every changelog entry in the bumped ranges is a fabric bump
explicitly marked "no API change", and #3854 already landed the SDK-side schema
work for
image_no_upscale(which needsllm-llamacpp >= 0.44.0, satisfied by^0.45.0).🧪 Tested
CI run: https://github.com/tetherto/qvac/actions/runs/32281852430?pr=3952
registry.npmjs.org(npm view … --userconfig=/dev/null, noNPM_TOKEN) —the same visibility
SDK Install Check (public npm)asserts.@qvac/classification-ggml@0.20.0's published manifest requires@qvac/fabric: ^0.6.0, so a fresh install resolves fabric 0.6.0.behavioral breaks. The only breaking change in range is
llm-llamacpp0.43.0's
tools_compactremoval, which predates main's floor and wasabsorbed by #3380.
maininto the branch.packages/sdk/package.jsonconflictedbecause QVAC-23075 feat[api]: expose image_no_upscale in the SDK config schema #3854 bumped the same six pins to the 10069.1.0 generation; resolved
by keeping the higher floor per line and main's
tts-ggml ^0.7.4. The netdiff against
mainis six lines in one file.None. Floor-only range bumps to already-published versions, with no public API
or behavioral change in the SDK.