{"slug": "llama-cpp-1-0-what-changed-and-what-to-check-before-upgrading", "title": "llama.cpp 1.0: What Changed and What to Check Before Upgrading", "summary": "Llama.cpp 1.0, released on GitHub at 10:20 UTC on 13 Nov 2026 by ggml-org, removes the deprecated public API — including llama_set_warmup, 35 deprecated functions, defrag_thold and the --defrag-thold flag in pull request #30565 — and commits that future breaking changes to that API will require a new major version. The release adds OCP FP8 KV caches set via -ctk/-ctv f8_e4m3 with optional static per-tensor scales, a host-memory MoE expert cache with configurable CPU share controlled by the new moe_cache_size and moe_cache_cpu_share fields in llama_context_params, and llama-server hardening for SSRF, CORS and DNS rebinding plus MCP tool cancellation. The MIT-licensed C/C++ inference engine, which showed 134,841 GitHub stars on 13 Nov 2026, also promotes the NextN speculative decoding API from llama-ext.h into llama.h, renames llama_set_embd_state_src to llama_set_ctx_state_src, and ships ggml 1.0.0.", "body_md": "# llama.cpp 1.0: What Changed and What to Check Before Upgrading\n\nllama.cpp 1.0 drops the deprecated API, adds FP8 KV caches and an MoE expert cache, and hardens llama-server. What changed. Checked 13 Nov 2026.\n\n[llama.cpp 1.0](https://github.com/ggml-org/llama.cpp/releases/tag/v1.0.0) is a cleanup release with a promise attached: it removes the deprecated public API, and from now on a breaking change to that API gets a new major version. It also adds FP8 KV caches, an MoE expert cache, new models and a hardened `llama-server`. Checked 13 Nov 2026.\n\nThe release went out on GitHub at 10:20 UTC on 13 Nov 2026, with a [ggml-org blog post](https://huggingface.co/blog/ggml-org/llama-cpp-v1) the same day. The [Concepts hub](https://munderdiffl.in/blog/topics/concepts/) explains the terms. If you mostly run hosted Claude, our [Claude Code Max plan tips](https://munderdiffl.in/blog/claude-code-max-plan-tips/) cover that side.\n\n## What is llama.cpp? [#](#what-is-llamacpp)\n\nllama.cpp is an open source C/C++ engine for running large language models, locally or in the cloud. Its [README](https://github.com/ggml-org/llama.cpp) describes it as “LLM inference in C/C++”, built on the [ggml](https://github.com/ggml-org/ggml) library, with the goal “to enable LLM (and VLM) inference with minimal setup and state-of-the-art performance on a wide range of hardware”.\n\nThe repo is MIT licensed and showed 134,841 GitHub stars on 13 Nov 2026. The [Hacker News](https://news.ycombinator.com/item?id=50483765) launch thread had 12 points at 16:12 UTC on 13 Nov 2026, two hours after it was posted.\n\n## What changed in llama.cpp 1.0? [#](#what-changed-in-llamacpp-10)\n\nNine things stand out. Our selection from the v1.0.0 release notes, as of 13 Nov 2026:\n\n| Change | What it does | Who it affects | \n|---|---|---|\n| Deprecated API removed | Drops `llama_set_warmup` , 35 deprecated functions,`defrag_thold` | Code calling `llama.h` | \n| NextN API promoted | Moves NextN from `llama-ext.h` into`llama.h` | Speculative decoding code | \n| FP8 KV caches | `-ctk/-ctv f8_e4m3` , optional static scales | Anyone setting KV cache types | \n| MoE expert cache | Experts cached in host memory, CPU share for misses | Mixture of experts users | \n| New models | Kimi-K3.1-Pro, Ripple, xing4_0, drama-3 TTS, two vision models | Users of those models | \n| Server hardening | SSRF, CORS and DNS rebinding fixes, MCP tool cancellation | Anyone running `llama-server` | \n| Speech endpoint | OpenAI compatible `/v1/audio/speech` | Text to speech apps | \n| Web UI | Chat groups, markdown editor, phone layout | Web UI users | \n| ggml 1.0.0 | Prunes deprecated API and `DIAG_MASK` ops, adds FP8 | Direct `ggml` users | \n\n## What happened to the deprecated API? [#](#what-happened-to-the-deprecated-api)\n\nIt is gone. The release notes list these removals under `llama.h`: `llama_set_warmup`, 35 deprecated functions, `defrag_thold` and the `--defrag-thold` flag, all in pull request [#30565](https://github.com/ggml-org/llama.cpp/pull/30565). Deprecation warnings tend to be ignored until the day the function disappears. For 35 functions, that day was 13 Nov 2026.\n\nThe same pull request promotes the NextN API out of `llama-ext.h` and into `llama.h`, and renames `llama_set_embd_state_src` to `llama_set_ctx_state_src`. The overview calls it the “NextN/speculative API”, so it now sits in the public header the new version rules cover.\n\n## What are the FP8 KV caches and the MoE expert cache? [#](#what-are-the-fp8-kv-caches-and-the-moe-expert-cache)\n\nThey are two memory features. The release notes add “OCP FP8 KV caches”, set with `-ctk/-ctv f8_e4m3`, with “optional static per-tensor scales”.\n\nThe MoE expert cache is for mixture of experts models. The overview calls it “a host-memory MoE expert cache with a configurable CPU share”, and the core notes add “LRFU/ClassLRU replacement” and “no CPU wait on cached experts”. Two new fields in `llama_context_params`, `moe_cache_size` and `moe_cache_cpu_share`, control it. 1.0 also loads external PLE shards from separate GGUF files with `--shard` or `--ple`.\n\nNeither source gives speed figures, so we won’t guess.\n\n## Which new models does llama.cpp 1.0 support? [#](#which-new-models-does-llamacpp-10-support)\n\nThree new text architectures, a speech model and two vision models, per the release notes:\n\n- Kimi-K3.1-Pro, “K3 with the full-attention MLA layers replaced by DSA”\n- Ripple-65B-Preview, a “new dense 65B architecture, no new ops”\n- xing4_0, with “mHC, MLA, MoE and MTP”\n- drama-3 TTS from fishaudio\n- MageVL-Cowork and Kimi-K3.1 vision\n\nThe blog post says llama.cpp now supports “more than 150 architecture variants as well as all mainstream speculative decoding methods”.\n\n## What changed in llama-server? [#](#what-changed-in-llama-server)\n\nIt is harder to misuse, and it can now speak. The release notes list fixes for `--cors-origins`, DNS rebinding, SSRF through the CORS proxy and child instance access, plus two new opt in flags: `--allow-unauthenticated-tools` and `--media-allow-private-urls`. A changelog entry describes the change behind the first flag as “explicit opt-in tools via non-loopback addr”.\n\nThe server also limits `HF_TOKEN` to `huggingface.co` hosts, and cancels MCP tool calls on client disconnect or timeout, notifying the MCP server. For audio, there is the OpenAI compatible `/v1/audio/speech` endpoint and a `temperature` option for `/tts`.\n\nThe redesigned web UI adds named chat groups, a live preview markdown editor, a native phone layout, and Models, MCP and Settings in a sidebar footer.\n\n## What should you check before upgrading? [#](#what-should-you-check-before-upgrading)\n\nSix removed or changed items, all named in the release notes:\n\n1. Calls to `llama_set_warmup` or the 35 removed deprecated functions.\n2. Any `defrag_thold` or`--defrag-thold` in code, scripts or configs.\n3. Calls to `llama_set_embd_state_src` , now`llama_set_ctx_state_src` .\n4. Includes of `clip.h` , which is removed; its code now lives in`mtmd` .\n5. Tools on a network address without an API key, or private media URLs, which now need the opt in flags above.\n6. Code on `ggml` itself: ggml 1.0.0 “prunes the deprecated public API and the legacy`DIAG_MASK` ops”.\n\n## What does the 1.0 number mean? [#](#what-does-the-10-number-mean)\n\nIt is a versioning promise. The ggml-org blog post says: “Moving forward, both llama.cpp and ggml will reflect API and ABI incompatibilities with major-version bumps.”\n\nThe post sets rules for all ggml-org projects using semantic versioning. MAJOR is a “Breaking change to the public C API in ./include”, MINOR a “Backward-compatible feature, backend updates, model support, or API addition”, and PATCH a “Bug fix with no API change”. It also gives the reason: “many downstream applications already depend on our work.”\n\n## Should you upgrade now? [#](#should-you-upgrade-now)\n\nNeither the release notes nor the blog post gives upgrade advice; the list above names what the notes remove or change. We think the version rules matter more than any single feature: apps that embed llama.cpp now get a clear signal for breaking changes.\n\nPrefer Ollama? Read [is Ollama good for coding](https://munderdiffl.in/blog/is-ollama-good-for-coding/) and [how to connect Ollama to Claude Code](https://munderdiffl.in/blog/how-to-connect-ollama-to-claude-code/). If you want a team of agents on local models, [Munder Difflin](https://harnessmd.com/download) is free and open source: a desktop app that runs a team of AI agents for all kinds of knowledge work, coding included, on your own computer. Its [README](https://github.com/HarnessMD/munder-difflin), read 13 Nov 2026, says: “Plus bring your own keys and local models through Ollama, LM Studio or vLLM.” The [open models guide](https://munderdiffl.in/blog/run-munder-difflin-on-open-models/) shows the wiring for each engine.\n\n## FAQ\n\nWhat is llama.cpp 1.0?\n\nIt is the first major version of llama.cpp, the C/C++ library and tools for running LLMs, published on GitHub on 13 Nov 2026 at 10:20 UTC. The release notes say it removes the deprecated public API, promotes the NextN and speculative API to llama.h, adds FP8 KV caches and an MoE expert cache, and hardens llama-server. It also updates ggml to v1.0.0.\n\nWill my code that calls llama.h break on llama.cpp 1.0?\n\nIt can. The release notes say 1.0 removes llama_set_warmup, 35 deprecated functions and defrag_thold, and renames llama_set_embd_state_src to llama_set_ctx_state_src. Code that still uses any of those needs updating.\n\nWhat does the 1.0 version number mean for llama.cpp?\n\nIt is a versioning promise. The ggml-org blog post says: \"Moving forward, both llama.cpp and ggml will reflect API and ABI incompatibilities with major-version bumps.\" Its rules table defines a MAJOR bump as a \"Breaking change to the public C API in ./include\".\n\nIs --defrag-thold still supported in llama.cpp 1.0?\n\nNo. The v1.0.0 release notes list defrag_thold and --defrag-thold among the removed items, next to llama_set_warmup and 35 deprecated functions.\n\nDoes llama-server in 1.0 handle MCP tools?\n\nYes. The release notes say llama-server now cancels MCP tool calls on client disconnect or timeout and notifies the MCP server. They also add --allow-unauthenticated-tools as an opt in, and the web UI moves Models, MCP and Settings into a sidebar footer.", "url": "https://wpnews.pro/news/llama-cpp-1-0-what-changed-and-what-to-check-before-upgrading", "canonical_source": "https://munderdiffl.in/blog/llama-cpp-1-0/", "published_at": "2026-11-13 00:00:00+00:00", "updated_at": "2026-11-14 07:51:10.576564+00:00", "lang": "en", "topics": ["artificial-intelligence", "large-language-models", "ai-infrastructure", "ai-tools", "mlops"], "entities": ["llama.cpp", "ggml-org", "ggml", "llama-server", "GitHub", "Hacker News", "Kimi-K3.1-Pro", "llama.h"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/llama-cpp-1-0-what-changed-and-what-to-check-before-upgrading", "markdown": "https://wpnews.pro/news/llama-cpp-1-0-what-changed-and-what-to-check-before-upgrading.md", "text": "https://wpnews.pro/news/llama-cpp-1-0-what-changed-and-what-to-check-before-upgrading.txt", "jsonld": "https://wpnews.pro/news/llama-cpp-1-0-what-changed-and-what-to-check-before-upgrading.jsonld"}}