Skip to content

chore: bump llama.cpp to b9982#21

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
automation/bump-llama-cpp
Open

chore: bump llama.cpp to b9982#21
github-actions[bot] wants to merge 1 commit into
mainfrom
automation/bump-llama-cpp

Conversation

@github-actions

@github-actions github-actions Bot commented Jul 10, 2026

Copy link
Copy Markdown
Contributor

llama.cpp update

Upstream changelog

Release notes for b9982
Details

server: honour per-request reasoning_budget_tokens in chat completions (#23116)

  • server: honour per-request reasoning_budget_tokens in chat completions

The reasoning-budget block in oaicompat_chat_params_parse read only the
server-level default (opt.reasoning_budget, typically -1) and the
Anthropic-style alias thinking_budget_tokens, but never the canonical
reasoning_budget_tokens field from the request body. Because the key
was then written into llama_params before the generic body-copy loop
ran, the copy loop found the key already present and silently skipped
the caller-supplied value. Any per-request override (e.g. 0 to
suppress thinking entirely) was therefore discarded.

Fix: read reasoning_budget_tokens from the request body first, so the
value that reaches the sampling layer is the one the caller intended.

Add a unit test in test-chat.cpp that exercises this path via
oaicompat_chat_params_parse with a Qwen3 template (which the autoparser
detects as a thinking-capable model) and asserts the returned
llama_params carries reasoning_budget_tokens == 0.

  • server: honour per-request reasoning_budget_message in chat completions

The reasoning-budget block in oaicompat_chat_params_parse wrote
reasoning_budget_message into llama_params straight from the server-level
default (opt.reasoning_budget_message) and never read the canonical
reasoning_budget_message field from the request body. Because the key
was written before the generic body-copy loop ran, that loop found the
key already present and silently skipped the caller-supplied value. Any
per-request override of the message injected before the end tag when the
budget is exhausted was therefore discarded, even though server-task.cpp
already reads reasoning_budget_message from that data.

This mirrors the reasoning_budget_tokens bug fixed in the previous commit.

Fix: read reasoning_budget_message from the request body first, falling
back to the server default, so the value that reaches the sampling layer
is the one the caller intended.

While here, collapse the adjacent reasoning_budget_tokens override to a
single json_value() call; json_value already falls back to the default on
a missing/null/wrong-type key, so the explicit body.contains() guard was
redundant. No behavioral change.

Add a unit test in test-chat.cpp that exercises this path via
oaicompat_chat_params_parse with a Qwen3 template (which the autoparser
detects as a thinking-capable model) and asserts the returned
llama_params carries the per-request reasoning_budget_message rather than
the server default.

  • cleanup

Co-authored-by: Xuan Son Nguyen son@huggingface.co

macOS/iOS:

Linux:

Android:

Windows:

openEuler:

  • DISABLED
  • openEuler x86 (310p)
  • openEuler x86 (910b, ACL Graph)
  • openEuler aarch64 (310p)
  • openEuler aarch64 (910b, ACL Graph)

UI:

Commit range

Commits from b9915 to b9982 (first 80)
  • ggml : fix A indexing in simd_gemm scalar tail-column path (#25390) (57b50e1)
  • fix: OOB reads in UGM tokenizer (precompiled_charsmap handling) (#18750) (4a7ee31)
  • metal : add set_rows with src0 f16 (#25434) (0512ef1)
  • llama-eval : fix crash when answer is None in HTML dump (#25435) (da46e59)
  • ui: Context usage gauge and panel (#25340) (f1161b1)
  • common: auto-create prompts-log-dir at argument parsing, so all tools using the flag benefit (#25322) (f296fdf)
  • llama-batch: add n_keep_tail in split_equal for recurrent models (#25278) (230ea9d)
  • server-stream: follow-up on SSE Replay Buffer (#23226) (#25047) (bbebeec)
  • llama: refactor fused ops (#24646) (90e0f5c)
  • cuda : add support for f16->f16 GGML_OP_SET_ROWS (#25367) (ed8c261)
  • Make hip quality check run on all changes (#25403) (07e012a)
  • cli : move to HTTP-based implementation (#24948) (c264f65)
  • hexagon: new vtcm layouts and improved pipelines for MUL_MAT, MUL_MAT_ID and FLASH_ATTN_EXT (#25425) (81ff7ab)
  • vulkan: for small AMD GPUs, reduce submission threshold based on CU count (#25240) (0bbc87b)
  • llama-batch: fix allowed decreasing pos in a seq (#25449) (1ee0939)
  • opencl: ragged-tile MoE prefill FP16 GEMM optimization (skip padded expert tiles) (#25433) (167d057)
  • vulkan: disable FA mask_opt on GCN to improve performance (#24362) (a646006)
  • opencl: Q6_K GEMM/GEMV fix for ne01 of weights that are not multiples of 128. (#25464) (92366df)
  • ggml-webgpu: tune subgroup split (d_split) in flash_attn_vec (#25418) (32e41fa)
  • hexagon: add VISION RoPE support (#25216) (f2d1c2f)
  • server : respect min-step when splitting prompt batches (#25420) (64c8b7d)
  • cuda: align snake fusion matcher with the other backends (#25460) (2021515)
  • ggml-hip: enable -funsafe-math-optimizations (#24668) (ccb0c34)
  • metal : add CONV_2D_DW (depthwise convolution) support (#21565) (92b187c)
  • llama-bench : init params.offline (#25476) (259f2e2)
  • Only index by compile times + always multiply/add (#25445) (683f0c7)
  • Refactor: Consistently use smart pointers in test-backend-ops (#25440) (f84a519)
  • meta: add hard emphasis on agents not writing descriptions/comments (#25480) (c15c5c7)
  • ggml : fix conv 2d dw (#25490) (5c3a586)
  • server : move chat-template thinking probe inside the init try/catch (#24093) (82fce65)
  • hexagon: tiling, tracing and optimizations for unary ops (#25474) (fb30ba9)
  • cli: add --output option (#25484) (3de7dd4)
  • ggml : process data in smaller chunks in CUDA ggml_top_k() and ggml_argsort() to reduce temporary buffers memory usage (#24776) (0749449)
  • opencl: cluster-parallel decode FA for Adreno (#25473) (049326a)
  • llama-batch: add unit test (#25471) (961e4b2)
  • ggml-et: Initial ET backend (#24179) (082b326)
  • llama : make all KQ masks f16 if FA is used, remove zero attention bias, remove raw_k repeats in DeepSeek V4 (#25370) (2ed3c1a)
  • ui: export full message tree instead of active path only (#25501) (d46786f)
  • sync : ggml (#25517) (8f114a9)
  • ui: prevent tooltip from flickering open and closed on hover (#25503) (c7af942)
  • cli: fix crash on wrong server base url (#25497) (1b9691b)
  • server: improve tools, remove apply_diff (#25498) (c4ae9a8)
  • ggml : use ggml_vqtbl1q_u8 for 32-bit compat (whisper/0) (ac17f8a)
  • sync : ggml (0badc06)
  • server: remove loading.html (#25500) (a935fbf)
  • ui: use server modalities in non-router mode (#24874) (9f623c6)
  • feat: pre-select models in the webui using alias (#25492) (07d9378)
  • mtmd: deepseek-ocr v1 multi-tile (#24717) (3e706dd)
  • arg: prevent duplicate spec model downloads (#25527) (22b69b6)
  • hexagon: improve ARGSORT performance for small tensors (#25512) (67776ea)
  • llama : make tensor-split regex patterns static (#24710) (c749cb0)
  • server: accept null sampling params (#25538) (4f37f51)
  • opencl: add int8 dp4 dense and MoE prefill optimization for Adreno GPUs (#25537) (1d1d9a9)
  • Vulkan: route large matmuls to medium tile on Adreno (#24877) (76f2798)
  • ggml : add GGML_OP_LIGHTNING_INDEXER that implements DeepSeek V3.2/V4 lightning indexer (#24231) (00f5442)
  • server: refactor server_stream (#25541) (ea1f7bb)
  • server: allow stream for exec_shell_command (#25526) (c92e806)
  • DeepseekV4: clear cache only for seq rather than full (#25521) (13f2b28)
  • cuda: Don't crash when querying memory on device with no free memory. (#25157) (3cec3bc)
  • gguf : reject empty metadata keys (#24917) (d72bfa3)
  • Fix conditional to display 'LLAMA_SPLIT_MODE_TENSOR not implemented for architecture' message (#24926) (e3546c7)
  • server : fix image blocks in tool_result being dropped during Anthropic OpenAI conversion (#22536) (6b4dc21)
  • server : evict checkpoints within min-step of each other (#25472) (0c4fa7a)
  • mtmd: fix silent prompt truncation on embedded NUL (#25548) (4114ba1)
  • server: Don't consider models with --no-mmproj-auto as multimodal (#25590) (8014d2c)
  • vendor : update cpp-httplib to 0.50.1 (#25576) (3455882)
  • server: honour per-request reasoning_budget_tokens in chat completions (#23116) (99f3dc3)

Web bridge review focus

Please pay extra attention to upstream changes touching:

  • WebGPU, WASM, Emscripten, pthreads, or memory64 build behavior
  • ggml backend APIs used by the bridge
  • model loading, tokenizer, chat template, context/state persistence, or cache semantics
  • CMake/build flags that can affect the generated JS/WASM artifacts

Validation

  • Emscripten build passed
  • Browser WebGPU/state-persistence smoke passed
  • Generated bridge artifacts include wasm32 and memory64 outputs
  • No stale hard-coded llama.cpp tag remains in CI/publish defaults

Automation behavior

This PR is managed from the stable branch automation/bump-llama-cpp. If another llama.cpp release appears before merge, the scheduled workflow updates this same PR instead of opening a duplicate. The workflow skips if a non-automation PR already changes llama_cpp.version.

@github-actions github-actions Bot force-pushed the automation/bump-llama-cpp branch from 092de8a to 3b702ab Compare July 11, 2026 05:56
@github-actions github-actions Bot changed the title chore: bump llama.cpp to b9947 chore: bump llama.cpp to b9957 Jul 11, 2026
@github-actions github-actions Bot force-pushed the automation/bump-llama-cpp branch from 3b702ab to dfd88ff Compare July 12, 2026 06:15
@github-actions github-actions Bot changed the title chore: bump llama.cpp to b9957 chore: bump llama.cpp to b9969 Jul 12, 2026
@github-actions github-actions Bot force-pushed the automation/bump-llama-cpp branch from dfd88ff to 872d4ce Compare July 13, 2026 06:35
@github-actions github-actions Bot changed the title chore: bump llama.cpp to b9969 chore: bump llama.cpp to b9982 Jul 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant