What changed
10 builds in 18 hours (b9968 through b9977), picking up from b9966 covered in the July 11 digest. Three changes stand out:
| Build | UTC | Key change |
|-------|-----|------------|
| b9977 | 16:18 | server: fix image blocks in tool_result silently dropped during AnthropicβOpenAI format conversion |
| b9974 | 14:16 | cuda: prevent crash when querying memory on device with zero free memory |
| b9973 | 13:40 | DeepSeek V4: clear cache only for current sequence, not full context |
| b9972 | 13:07 | server: stream: true now supported for exec_shell_command |
| b9971 | 12:36 | server: server_stream refactor with improved API documentation |
| b9970 | 12:03 | ggml: add GGML_OP_LIGHTNING_INDEXER for DeepSeek V3.2/V4 with CPU support and test coverage |
| b9969 | 05:30 | Vulkan: route large matmuls to medium tile on Adreno β fixes llama-cli breakage with longer prompts |
| b9968 | 01:12 | opencl: int8 dp4 dense and MoE prefill optimization for Adreno GPUs |
TL;DR
b9977 fixes a silent data loss bug (image blocks dropped in AnthropicβOpenAI multimodal conversion); b9970 adds GGML_OP_LIGHTNING_INDEXER for DeepSeek V3.2/V4 CPU inference; b9969 fixes Vulkan/Adreno prompt-length crashes.
Developer signal
(1) b9977 β multimodal tool_result image fix: If you use the llama.cpp server with models that return images in tool_result content blocks (e.g., models running with Anthropic-format tool calls and you proxy to OpenAI format), the image blocks were previously silently dropped during format conversion. This is now fixed. If you saw truncated or missing visual outputs from tool calls in your llama.cpp server pipeline, upgrade to b9977. (2) b9970 β LIGHTNING_INDEXER for DeepSeek V3.2/V4 (CPU): DeepSeek V3.2 and V4 use a "lightning indexer" architecture for efficient token routing. This GGML operation adds CPU-path support, enabling CPU inference for these model variants in llama.cpp. If you run DeepSeek V3.2 or V4 GGUF models on CPU (or in hybrid CPU+GPU setups), upgrade to b9970 or later. GGUF weights compatible with the new op are required β check the model card. (3) b9969 β Vulkan/Adreno large matmul fix: The previous Vulkan backend routed large matrix multiplications to the large tile path on Adreno GPUs, which exceeded shared memory limits and caused llama-cli crashes with prompts above a threshold length. Now routes to medium tile. If you run llama.cpp on Qualcomm Adreno GPUs via Vulkan and hit crashes on longer prompts, upgrade to b9969. (4) b9968 β OpenCL int8 dp4 MoE optimization: For Adreno GPU inference via OpenCL (not Vulkan), dense and MoE prefill performance improves via int8 dp4 operations. Expect measurable prefill speed gains on Qualcomm devices running OpenCL backend.