$ the-wire · showcase
Ollama drops its CLI agent, llama.cpp cuts build times, vLLM fixes crash under DP>1
By RepoJournal · Filed · About Local LLMs · Composed from the cited sources · methodology
Ollama reverted its CLI to the old chat interface by removing the built-in agent, while llama.cpp landed PCH and unity build support and a memory-safety fix for concurrent blob downloads.
Ollama removed the built-in agent from the CLI, reverting to the previous chat interface on the command line [1][2]. Separately, dhiltgen shipped a guard that keeps Gemma3n's MobileNetV5 projector off the CPU backend [3][4]. The PR notes that the projector "silently produces corrupted image embeddings on the CPU backend - no error, the model just describes the wrong image," reproduced on llama.cpp b10760, where gemma4's encoder is fine on CPU [3]. Without the guard, partial-offload, limited-VRAM, and OOM-retry fallbacks would select the CPU projector on exactly the small GPUs where gemma3n lands [3][4].
On llama.cpp, danbev added precompiled headers and unity build support to cmake, targeting the most expensive headers in the parsing/frontend stage; the change does not affect codegen/backend [5]. ngxson refactored server subprocess handling onto a single-thread poll()/select() model and fixed a concurrent-download corruption bug where two processes writing the same blob path plus .downloadInProgress could grab each other's partial transfer; the in-progress file now carries the writer's pid [6][7]. On the Metal side, masterFoad split the kernel_mul_mm_id token tile into two NR1H=16 halves and skips the upper half when nr1 <= NR1H, avoiding multiplication of unused expert rows [8]. max-krasnyansky added --split-mode row support for the Hexagon backend, letting model tensors split across multiple NPUs [9].
In vLLM, TheEpicDolphin fixed a DP token-padding mismatch in dflash-derived speculators where extra padding tokens from the DP sync could desync query_start_loc_cpu from num_tokens, tripping an assertion on the FlashInfer backend with DP > 1 [10]. njhill scoped breakable cudagraphs to the piecewise path: VLLM_USE_BREAKABLE_CUDAGRAPH=1 no longer overrides FULL cudagraphs in ModelRunnerV1, so with cudagraph_mode=FULL_AND_PIECEWISE, decode dispatch now uses the standard CUDAGraphWrapper(FULL) [11]. chengchengpei fixed a Kimi-K3 KDA projection-overlap failure on H100/SM90a caused by skinny N/K kernels emitting PTX fma.f32.bf16 requiring SM100 or newer, and by FlashInfer's cute-dsl QKVG backend rejecting SM90 [12].
sglang's YAMY1234 fixed a paged sparse-decode gather on GB300 (SM103) where Qwen3.8-Flash-Next plain decode degenerated into endless token 0 for 40 to 60% of AIME25 samples at 32K max_tokens, and where fp8_e4m3 KV cache collapsed MTP/NEXTN accept length to 1.0 across 86 to 88% of AIME/GPQA samples, via zero-filled scratch, int64 offsets, and FP8 dequant on gather [14]. aurickq fixed RunAI object-storage checkpoint index filtering to read the cached index and validate shards against the remote listing, preventing stale-shard loads [13]. jybsuper enabled MoE LoRA in full and breakable prefill CUDA graphs, removing Triton's 32-request cap [15].
Action items
- → Update ollama if you scripted against the built-in CLI agent; the old chat interface is back ollama/ollama [plan]
- → Upgrade vLLM if you serve DFlash/DSpark under DP > 1 on FlashInfer vllm-project/vllm [immediate]
- → Upgrade sglang if you run Qwen3.8-Flash-Next decode on GB300/SM103 or with fp8_e4m3 KV cache sgl-project/sglang [immediate]
- → Update sglang if you use RunAI object-storage checkpoints, to avoid loading stale shards sgl-project/sglang [plan]
References
- [1] cmd: remove built-in agent ↗ ollama/ollama
- [2] cmd: remove built-in agent (#18393) ↗ ollama/ollama
- [3] llm: keep gemma3n projector off the CPU ↗ ollama/ollama
- [4] llm: keep gemma3n projector off the CPU (#18376) ↗ ollama/ollama
- [5] cmake : add PCH and unity build to improve build times ↗ ggml-org/llama.cpp
- [6] server: refactor subproc handling (#28555) ↗ ggml-org/llama.cpp
- [7] server: refactor subproc handling ↗ ggml-org/llama.cpp
- [8] metal : skip the empty half of the mul_mm_id token tile, load iq2/iq3 codebooks as uint32 ↗ ggml-org/llama.cpp
- [9] hexagon: support for multi-device model split (aka row-split) ↗ ggml-org/llama.cpp
- [10] [BugFix] Fix DP token padding in dflash attention metadata ↗ vllm-project/vllm
- [11] [MRV1] Scope breakable cudagraphs to the piecewise path only ↗ vllm-project/vllm
- [12] [Bugfix][Kimi-K3] Fix KDA projection overlap on Hopper ↗ vllm-project/vllm
- [13] Fix RunAI object-storage checkpoint index filtering ↗ sgl-project/sglang
- [14] fix(qsa): make the paged sparse-decode gather memory-safe (zero-fill scratch, int64 offsets, dequant FP8 on gather) ↗ sgl-project/sglang
- [15] [LoRA] Support MoE in full and breakable prefill CUDA graphs ↗ sgl-project/sglang