diff --git a/CLAUDE.md b/CLAUDE.md
index 82a00664..484d1934 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -6,7 +6,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
Java bindings for [llama.cpp](https://github.com/ggerganov/llama.cpp) via JNI, providing a high-level API for LLM inference in Java. The Java layer communicates with a native C++ library through JNI.
-Current llama.cpp pinned version: **b9553**
+Current llama.cpp pinned version: **b9555**
## Upgrading CUDA Version
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a670485c..aeb12b4f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -114,7 +114,7 @@ set(LLAMA_BUILD_APP OFF CACHE BOOL "" FORCE)
FetchContent_Declare(
llama.cpp
GIT_REPOSITORY https://github.com/ggerganov/llama.cpp.git
- GIT_TAG b9553
+ GIT_TAG b9555
)
FetchContent_MakeAvailable(llama.cpp)
diff --git a/README.md b/README.md
index c2db4e7d..040e595a 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,7 @@
**Build:**


-[](https://github.com/ggml-org/llama.cpp/releases/tag/b9553)
+[](https://github.com/ggml-org/llama.cpp/releases/tag/b9555)
[](https://openjdk.org/projects/jigsaw/)

[](https://jspecify.dev)
@@ -110,7 +110,7 @@ Access this library via Maven (released versions on Maven Central):
net.ladenthin
llama
- 5.0.1
+ 5.0.2
```
@@ -168,14 +168,14 @@ Pick at most one — they are mutually exclusive.
net.ladenthin
llama
- 5.0.1
+ 5.0.2
net.ladenthin
llama
- 5.0.1
+ 5.0.2
cuda13-linux-x86-64
@@ -183,7 +183,7 @@ Pick at most one — they are mutually exclusive.
net.ladenthin
llama
- 5.0.1
+ 5.0.2
opencl-android-aarch64
```
diff --git a/docs/history/llama-cpp-breaking-changes.md b/docs/history/llama-cpp-breaking-changes.md
index 58e39320..a6a321cd 100644
--- a/docs/history/llama-cpp-breaking-changes.md
+++ b/docs/history/llama-cpp-breaking-changes.md
@@ -325,3 +325,4 @@ Used during `llama.cpp` version bumps: when upgrading, scan this file from the r
| ~b9549–b9553 | `src/llama-kv-cache.cpp` + `src/llama-kv-cache.h` + `src/llama-kv-cells.h` | KV-cache shared-cells refactor (continues `TAG_KV_CACHE_SHARE_CELLS`, used by the Gemma4-assistant MTP head): the `v_cells` member changed from a by-value `std::vector` to a `std::shared_ptr v_cells_impl` plus a `llama_kv_cells_vec & v_cells` reference, so a target cache now *views* the source cache's cells instead of copying them in `apply_ubatch()`; the constructor also clamps `kv_size` down to the shared source's size. New type alias `using llama_kv_cells_vec = std::vector;` in `llama-kv-cells.h`. All internal `src/` headers the JNI build does **not** include (the project pulls public `llama.h` / `llama-cpp.h`, never `llama-kv-cache.h` / `llama-kv-cells.h`) — verified via `grep -rn "llama_kv_cells\|llama-kv-cache" src/main/cpp src/test/cpp` → zero matches. No project source changes required |
| ~b9549–b9553 | `conversion/mistral.py` + `convert_hf_to_gguf.py` | Python conversion-script robustness only: `hparams["llama_4_scaling"]` and `"moe" in hparams` replaced with `hparams.get(...)` / `is not None` guards so a present-but-null key no longer crashes conversion. Python tooling, not part of the JNI build. No impact |
| ~b9549–b9553 | upstream build / verification | Local build with `GIT_TAG b9553` verified clean on Linux x86_64: `cmake -B build -DBUILD_TESTING=ON` configures cleanly, `cmake --build build --config Release -j$(nproc)` links `libjllama.so` + `jllama_test` with zero warnings on any project translation unit, and `ctest --test-dir build --output-on-failure` reports **440/440 tests passing** (435 prior + 5 new `Samplers_*` tests). The sole breaking change in this range (the `common_sampler_types_from_names` signature) is absorbed inside upstream-compiled translation units; no project C++ source edits were required for the version bump itself |
+| ~b9553–b9555 | `.devops/intel.Dockerfile` + `ggml/src/ggml-metal/ggml-metal-device.cpp` + `tests/test-backend-ops.cpp` | Tiny maintenance bump — **no API change and no new feature**. (1) `intel.Dockerfile`: Intel GPU userspace driver pins bumped (IGC `v2.20.5`→`v2.34.4`, compute-runtime `25.40.35563.10`→`26.18.38308.1`, IGDGMM `22.8.2`→`22.10.0`) with the old multi-GPU-safe versions commented out; upstream's own Docker image only — this project ships its own `publish.yml` and does not consume `.devops/`. No impact. (2) `ggml-metal-device.cpp`: bugfix to the Metal im2col pipeline selector — the standard-vs-`_ext` kernel choice now keys off the actual conv-kernel footprint (`KH*KW`, with `KH = is_2D ? ne01 : 1`, `KW = ne00`) instead of the raw `ne00*ne01` product, fixing kernel selection for 1-D convolutions. Backend-internal Metal TU compiled via FetchContent; no API surface visible to `jllama.cpp`, and only affects the macOS/Metal backend at runtime. (3) `tests/test-backend-ops.cpp`: one extra `test_im2col` case (`{3000,384,1,1}` / `{3,384,384,1}`) added — upstream test only, not linked into the JNI build. **No project source changes required; no new Java-API-exposable feature.** Build verification deferred to CI (`publish.yml`) / a developer host as usual |
diff --git a/pom.xml b/pom.xml
index a7cfb882..0d613045 100644
--- a/pom.xml
+++ b/pom.xml
@@ -12,7 +12,7 @@ SPDX-License-Identifier: MIT
net.ladenthin
llama
- 5.0.2-SNAPSHOT
+ 5.0.2
jar
${project.groupId}:${project.artifactId}