Skip to content

chore: pin llamacpp-upstream backend to b10063 (and fix macOS backend download URLs) - #187

Closed
cashcon57 wants to merge 2 commits into
AtomicBot-ai:mainfrom
cashcon57:chore/bump-upstream-llamacpp-b10063
Closed

chore: pin llamacpp-upstream backend to b10063 (and fix macOS backend download URLs)#187
cashcon57 wants to merge 2 commits into
AtomicBot-ai:mainfrom
cashcon57:chore/bump-upstream-llamacpp-b10063

Conversation

@cashcon57

@cashcon57 cashcon57 commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Describe Your Changes

Bumps the pinned upstream llama.cpp backend from b9937 to b10063 so the
desktop app can run ternary models (e.g. the new Ternary-Bonsai family) on the
upstream backend — plus a fix this bump surfaced: runtime backend downloads
on macOS were silently 404ing
because the extension built .zip asset URLs
while ggml-org publishes macOS builds only as .tar.gz. The bug was masked
until now because macOS normally gets the backend bundled into the app at
build time; the moment the pin outruns the bundled backend,
enforcePinnedBackendVersion hits the 404 and quietly keeps the old backend.
Second commit routes macos-* through .tar.gz naming (the Tauri
decompress command already handles both) with archive-name tests.

Why: mainline llama.cpp ternary Q2_0 support landed after our pin. The
CPU kernels merged Jul 7 (ggml-org/llama.cpp#24448) and the Metal kernels
merged Jul 14 (ggml-org/llama.cpp#25419, first shipped in b9994); b9937
was cut Jul 9, so it has CPU but not Metal. Today no backend available in the
desktop app can load these models, while the mainline Q2_0_g64 GGUFs run
fine on current upstream builds. (Vulkan and CUDA ternary kernels are still in
review upstream: ggml-org/llama.cpp#25430 and #25707, so those platforms gain
nothing yet but lose nothing either.)

What's bumped (the three mirrored pins):

  • PINNED_BACKEND_TAG in extensions/llamacpp-upstream-extension/src/index.ts
  • the offline fallback manifest in extensions/llamacpp-upstream-extension/src/backend.ts
  • LLAMACPP_UPSTREAM_TAG in Makefile

The remote manifest in atomic-chat-conf/backends/manifest.json needs the
matching bump; opening that separately since it goes live for all installs the
moment it merges.

Verification

  • Kernel-level: with the raw b10063 macos-arm64 release binaries,
    prism-ml/Ternary-Bonsai-8B-gguf Q2_0_g64 (the mainline-format file)
    loads on an M3 Max with 254 q2_0 tensors / file type = Q2_0, Metal
    initializes, and generation is coherent.
  • End to end in a dev build of the app: without the tar.gz fix,
    enforcePinnedBackendVersion failed with HTTP status 404 Not Found; with
    it, the pin downloaded llama-b10063-bin-macos-arm64.tar.gz, logged
    Backend b10063/macos-arm64 installed successfully, and the installed
    binary reports version: 10063. The ternary 8B then loads and generates
    through the app on that backend (~704 t/s prompt / ~85 t/s gen at 5k
    context, clean stops, tool calls working).
  • Confirmed all eight asset filenames referenced by the fallback manifest
    (win cpu/cuda-12.4/cuda-13.3/vulkan, ubuntu x64/vulkan, both cudart zips)
    exist verbatim on the b10063 release.
  • Extension tests: the new archive-name tests pass; the suite's pre-existing
    failures are identical on main (verified by stash-compare).

Fixes Issues

  • n/a (dependency bump; motivated by ternary model support)

Self Checklist

  • Added relevant comments, esp in complex areas (why macOS routes to tar.gz)
  • Updated docs (for bug fixes / features): n/a
  • Created issues for follow-up changes or refactoring needed: noted the atomic-chat-conf manifest bump above

b9937 predates the ternary Q2_0 Metal kernels that landed upstream in
ggml-org/llama.cpp#25419 (merged Jul 14, first shipped in b9994); the
CPU kernels landed earlier in #24448. Bumping to b10063 lets the
upstream backend load ternary models like Ternary-Bonsai in the
mainline Q2_0_g64 format on macOS and CPU.

Verified locally on an M3 Max with the b10063 macos-arm64 release
binaries and Ternary-Bonsai-8B-Q2_0_g64: Metal backend initializes,
the model loads (254 q2_0 tensors, file type Q2_0), and generation is
coherent. All eight asset names referenced by the fallback manifest
exist on the b10063 release.

Mirrors: PINNED_BACKEND_TAG (extension), the offline fallback manifest
(backend.ts), and LLAMACPP_UPSTREAM_TAG (Makefile). The remote manifest
in atomic-chat-conf needs the matching one-line bump.
ggml-org publishes macOS release assets only as .tar.gz (and always
has), but getBackendDownloadUrl and getBackendArchiveName fell through
to the Windows .zip naming for macos-* backends, so every runtime
backend download on macOS 404ed and enforcePinnedBackendVersion
silently kept the previous backend. The bug was masked because macOS
normally receives the backend bundled into the app at build time; it
surfaces as soon as the pinned tag is newer than the bundled backend.

Route macos-* through the .tar.gz naming (the Tauri decompress command
already handles both formats) and add archive-name tests. Verified in
a dev build: the pin now downloads and installs
llama-b10063-bin-macos-arm64.tar.gz successfully, and a ternary
Q2_0_g64 model loads and generates on the installed backend.
@cashcon57 cashcon57 changed the title chore: pin llamacpp-upstream backend to b10063 chore: pin llamacpp-upstream backend to b10063 (and fix macOS backend download URLs) Jul 17, 2026
@cashcon57

Copy link
Copy Markdown
Contributor Author

Closing as superseded: main now pins the upstream backend via LLAMACPP_UPSTREAM_PINNED_TAG (currently b10205), which covers what this PR was for.

@cashcon57 cashcon57 closed this Jul 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant