Skip to content

deps(backend)(deps): bump llama-cpp-4 from 0.3.2 to 0.6.1 in /backend - #284

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/backend/llama-cpp-4-0.6.1
Open

deps(backend)(deps): bump llama-cpp-4 from 0.3.2 to 0.6.1 in /backend#284
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/cargo/backend/llama-cpp-4-0.6.1

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Sep 1, 2026

Copy link
Copy Markdown
Contributor

Bumps llama-cpp-4 from 0.3.2 to 0.6.1.

Release notes

Sourced from llama-cpp-4's releases.

v0.6.1

Patch release: llama.cpp b10502 (includes upstream release v0.1.2), opt-in DFlash2 speculative decoding vendored from an unmerged upstream PR, and LlamaSampler::copy_state_from.

No public API breaks — this is a drop-in upgrade from 0.6.0.

Changed

  • llama.cpp: vendored submodule updated to 0adcc3bb5 (b10502) from 34af94cd9 (b10470) — 32 upstream commits, including release v0.1.2 plus 17 later ones: RPC use_count population to enable backend fusion (#27142), shared thread pools when n_threads differ (#27138), per-layer weight eviction to cut quantization memory (#22877), and mtmd fixes for DeepSeek-OCR and LFM2 tiling.
  • No public API changed. llama.h, common/speculative.h and common/common.h are byte-identical across the bump. The only header deltas are the RPC protocol minor version (5.0.05.1.0), an additive mtmd_input_chunk_get_placeholder(), and a comment noting mtmd_helper bitmap IDs are now SHA-256 rather than FNV. Patches 00030005 apply unchanged.

Added

  • dflash2 feature (opt-in, off by default) — DFlash2 speculative decoding, vendored from the unmerged upstream PR #27342 as patches/0006-dflash2.patch, staged after 00030005.

    Verified against a real checkpoint (z-lab/Qwen3.8-27B-DFlash2, Q4_K_M): without the feature the model fails to load — wrong number of tensors; expected 81, got 58 — and with it all 81 tensors load and the new hyperparameters are read back (conv kernel = 2, group = 16, selector rank = 256, top-k = 16).

    Caveats, since this is pre-merge upstream code:

    • Only the C++ the library needs is vendored (common/ and src/ — 13 of the PR's 20 files). The Python side (gguf-py/, conversion/qwen.py) is excluded because it is not part of the published crate, so this build can run a DFlash2 checkpoint but not convert one.
    • The patch adds GGUF KV keys and tensors under the existing LLM_ARCH_DFLASH architecture, so a dflash2 build recognises checkpoints stock llama.cpp releases do not.
    • Upstream may still change the PR. When it merges, the patch should be dropped and the feature retired.
  • Eagle3Session::new_dflash() / new_dflash_with_config() and the DFlashSession alias (both behind dflash2), plus MTP_SPEC_TYPE_DFLASH in the shim mapping to COMMON_SPECULATIVE_TYPE_DRAFT_DFLASH. DFlash reuses the EAGLE-3 session type because the drafting protocol is identical through the shim — only construction differs. DFlash2 checkpoints are detected from GGUF metadata, so no distinct speculative type is needed.

  • LlamaSampler::copy_state_from(), wrapping llama_sampler_copy (upstream b10470). Where clone_sampler allocates, this overwrites an existing sampler's state in place — the cheap way to rewind to a checkpoint in a loop. Upstream requires both samplers to share type and configuration; that is the caller's contract.

  • Context validation split into a shared validate_contexts_common and the EAGLE-3-only requirement that the draft model name exactly three target-extraction sites — which DFlash drafts do not have, and which would otherwise reject every DFlash draft model.

  • CI: dflash2 added to the feature-combos matrix, so the vendored pre-merge patch cannot silently rot on the next llama.cpp bump.


Published to crates.io: llama-cpp-4 = "0.6.1", llama-cpp-sys-4 = "0.6.1". Prebuilt library tarballs are uploaded automatically by CI after this tag is pushed.

v0.6.0

Minor release: llama.cpp b10470 / v0.1.1 (235 upstream commits), with breaking sampler and load-mode API changes, a fix for dynamically linked binaries that could not run outside cargo run, and CI checks that actually gate.

Upstream adopted semantic versioning in this window, so b10470 is also tagged v0.1.1 — its newest release.

Changed

  • llama.cpp: vendored submodule updated to 34af94cd9 (b10470 / v0.1.1) from 221f0f635 (b10235) — multi-output backend sampling (#25532), speculative-type auto-detection from draft-GGUF metadata (#26814, #27005), backend sampling for dflash + dspark (#26958), the mtmd audio-generation API, and new model architectures (BailingMoE3, MiniMax, Granite-Switch, Muse Glimmer, GLM-4.7-Flash MTP).
  • BREAKINGLlamaSampler::penalties / penalties_simple take a leading n_vocab: i32. Upstream moved n_vocab out of llama_sampler_data into the penalty sampler (#26520). Pass LlamaModel::n_vocab, as mirostat already required. penalty_last_n = -1 ("context size") is gone upstream; only 0 disables the penalty.
  • BREAKINGLlamaSampler::dry no longer takes n_ctx_train; upstream dropped the parameter.
  • BREAKINGLlamaLoadMode gained an Auto variant (-1) and is now #[repr(i32)] on every target. Auto is llama.cpp's new default: it memory-maps unless a backend device lacks mmap support. use_mmap() reports true for Auto, so default-parameter behaviour is unchanged.
  • BREAKINGcommon_sampler_params (llama-cpp-sys-4) resynced with upstream common_params_sampling, which it hand-mirrors and had drifted far from. Removed tfs_z and penalize_nl; added top_n_sigma, adaptive_target, adaptive_decay, timing_per_token; dry_penalty_last_n now defaults to 64. The default sampler chain previously still listed the removed TFS-Z sampler.
  • Patch 0003 (exact speculative state) rebased: upstream removed the need_embd() / need_embd_nextn() virtuals those hunks used as context (#26904). Patches 0004 and 0005 apply unchanged.

Added

  • llama_version() — the vendored llama.cpp version string. Now that upstream ships semver releases, this is the direct way to report which upstream a binary carries.
  • LlamaContextParams::with_n_outputs_max_per_seq() / n_outputs_max_per_seq(), wrapping the new context-params field. Backend samplers are initialized for this many outputs per sequence, so multi-output backend sampling must raise it above its default of 1.
  • Tests for every API this release changes, which previously had none: LlamaLoadMode, penalties / penalties_simple, dry, and n_outputs_max_per_seq.
  • CI job feature-combos covering static mtmd and rpc — the two feature-gated bindgen paths. PRs previously only ever built the default feature set, so a break under any other feature stayed hidden until a release tag.

... (truncated)

Changelog

Sourced from llama-cpp-4's changelog.

[0.6.1] - 2026-08-19

Added

  • dflash2 feature (opt-in, off by default): DFlash2 speculative decoding, vendored from the unmerged upstream PR #27342 as patches/0006-dflash2.patch. Enabling it stages that patch after 00030005 (which also touch common/speculative.cpp) and unlocks the Rust entry points. Caveats, since this is pre-merge upstream code:
    • Only the C++ the library needs is vendored — common/ and src/ (13 of the PR's 20 files). The Python side (gguf-py/, conversion/qwen.py) is deliberately excluded because it is not part of the published crate, so this build can run a DFlash2 checkpoint but not convert one.
    • The patch adds GGUF KV keys and tensors under the existing LLM_ARCH_DFLASH architecture, so a dflash2 build recognises checkpoints that stock llama.cpp releases do not.
    • Upstream may still change the PR. When it merges, drop the patch and retire the feature.
  • Eagle3Session::new_dflash() / new_dflash_with_config() and the DFlashSession alias (both behind dflash2), plus MTP_SPEC_TYPE_DFLASH in the shim mapping to COMMON_SPECULATIVE_TYPE_DRAFT_DFLASH. DFlash reuses the EAGLE-3 session type because the drafting protocol is identical through the shim — only construction differs — so this adds two constructors rather than duplicating a 768-line session. DFlash2 checkpoints are detected from GGUF metadata and need no distinct speculative type.
  • Context validation split into a shared validate_contexts_common (context types, sequence and batch capacity) and the EAGLE-3-only requirement that the draft model name exactly three target-extraction sites — which DFlash drafts do not have, and which would otherwise reject every DFlash draft model.
  • LlamaSampler::copy_state_from(), wrapping llama_sampler_copy (added upstream in b10470). Where clone_sampler allocates, this overwrites an existing sampler's state in place — the cheap way to rewind to a checkpoint in a loop. Upstream requires both samplers to be the same type and configuration; that is the caller's contract and is documented rather than checked.

Changed

  • llama.cpp: vendored submodule updated to 0adcc3bb5 (tag b10502) from 34af94cd9 (b10470), 32 upstream commits. This includes release v0.1.2 (1511ce3bc) plus 17 later commits — notably RPC use_count population to enable backend fusion (#27142), shared thread pools when n_threads differ (#27138), per-layer weight eviction to cut quantization memory (#22877), and mtmd fixes for DeepSeek-OCR and LFM2 tiling.
  • No public API changed: llama.h, common/speculative.h, and common/common.h are byte-identical across the bump. The only header changes are the RPC protocol minor version (5.0.05.1.0), a new additive

... (truncated)

Commits
  • ef626e9 0.6.1
  • 08e4907 0.6.0
  • a171830 Merge pull request #313 from eugenehp/dependabot/cargo/actix-web-4.14.1
  • c73b8c5 build(deps): Bump actix-web from 4.14.0 to 4.14.1
  • 48a22f6 Merge pull request #315 from eugenehp/dependabot/cargo/futures-util-0.3.34
  • 0b40b15 Merge pull request #316 from eugenehp/dependabot/cargo/thiserror-2.0.20
  • 7537ff6 Merge pull request #314 from eugenehp/dependabot/cargo/cc-1.4.2
  • 31576de Merge pull request #312 from eugenehp/dependabot/github_actions/Swatinem/rust...
  • fd6d85a build(deps): Bump thiserror from 2.0.19 to 2.0.20
  • 51d17b8 build(deps): Bump futures-util from 0.3.33 to 0.3.34
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [llama-cpp-4](https://github.com/eugenehp/llama-cpp-rs) from 0.3.2 to 0.6.1.
- [Release notes](https://github.com/eugenehp/llama-cpp-rs/releases)
- [Changelog](https://github.com/eugenehp/llama-cpp-rs/blob/main/CHANGELOG.md)
- [Commits](eugenehp/llama-cpp-rs@v0.3.2...v0.6.1)

---
updated-dependencies:
- dependency-name: llama-cpp-4
  dependency-version: 0.6.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update rust code labels Sep 1, 2026
@pacphi

pacphi commented Sep 1, 2026

Copy link
Copy Markdown
Owner

Snyk checks have passed. No issues have been found so far.

Status Scan Engine Critical High Medium Low Total (0)
Open Source Security 0 0 0 0 0 issues

💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant