From dc08abd27527bfd06aaef008de5030128810b0fc Mon Sep 17 00:00:00 2001 From: Michal Harakal Date: Wed, 2 Sep 2026 15:01:08 +0200 Subject: [PATCH 1/2] =?UTF-8?q?test(kgemma):=20re-enable=20the=20Gemma=204?= =?UTF-8?q?=20E2B=20tool-call=20smoke=20test=20=E2=80=94=20passes=20under?= =?UTF-8?q?=20engine=200.53.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The test was @Ignore'd because the real E2B checkpoint emitted coherent English on the calculator prompt but no <|tool_call> markup. Against the 0.53.0 engine (self-healing kernel dispatch, dense-FP32-from-any-storage, decode-shaped FP32 kernels) the Q4_K_M checkpoint now emits <|tool_call>call:calculator{expression:...} and every assertion holds in ~80 s. Still env-gated on GEMMA4_E2B_MODEL_PATH, so CI skips without the checkpoint. Co-Authored-By: Claude Fable 5.1 --- .../sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt b/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt index e09f8113..d1027fcd 100644 --- a/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt +++ b/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt @@ -118,9 +118,10 @@ class Gemma4E2BToolCallSmokeTest { } @Test - @Ignore // Gemma 4 E2B emits coherent English on the calculator prompt but no <|tool_call> markup. - // Format-grammar gap is upstream of the agent loop (suspected prefill/sampling divergence). - // Re-enable once the underlying fix lands; the assertions here are the regression guard. + // Was @Ignore'd ("emits coherent English but no <|tool_call> markup"). Under engine + // 0.53.0 the real E2B Q4_K_M checkpoint emits `<|tool_call>call:calculator{expression:...}` + // and this test passes (~80 s on an M-series host); it stays env-gated on + // GEMMA4_E2B_MODEL_PATH, so CI without the checkpoint still skips. fun `real Gemma 4 E2B emits parseable tool_call against Gemma4ChatTemplate`() { val modelPath = System.getenv("GEMMA4_E2B_MODEL_PATH")?.trim().orEmpty() if (modelPath.isEmpty()) { From dfd1c1855e0e87c40efbb50770848bde30bbc1dd Mon Sep 17 00:00:00 2001 From: Michal Harakal Date: Wed, 2 Sep 2026 15:01:27 +0200 Subject: [PATCH 2/2] test(kgemma): drop the now-unused Ignore import Co-Authored-By: Claude Fable 5.1 --- .../sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt b/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt index d1027fcd..06a17111 100644 --- a/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt +++ b/llm-runtime/kgemma/src/jvmTest/kotlin/sk/ainet/apps/kgemma/cli/Gemma4E2BToolCallSmokeTest.kt @@ -8,7 +8,6 @@ import kotlin.io.path.exists import kotlin.io.path.isDirectory import kotlin.io.path.readText import kotlin.random.Random -import kotlin.test.Ignore import kotlin.test.Test import kotlin.test.assertTrue import kotlin.test.fail