From e43be3558cdfefdf1f88242994e241875e8de4c2 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 22 Oct 2026 10:46:02 +0200 Subject: [PATCH 1/4] chore(semantic-emoji-filter): SKaiNET 0.62.1 / transformers 0.63.0, Kotlin 2.4.21 Pins and catalog comments only. Kotlin follows the engine to 2.4.21: the SIMD128 sidecar the web verifier runs on needs a Kotlin/Wasm linker at least as new as the engine's. The README names the transformers version the verifier ships with. --- SemanticEmojiFilter/README.md | 4 ++-- SemanticEmojiFilter/gradle/libs.versions.toml | 12 ++++++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/SemanticEmojiFilter/README.md b/SemanticEmojiFilter/README.md index e2cef5b..393a26d 100644 --- a/SemanticEmojiFilter/README.md +++ b/SemanticEmojiFilter/README.md @@ -38,7 +38,7 @@ The LEAF checkpoint (92 MB) is downloaded on first run into `~/.skainet-examples ```bash ./gradlew :composeApp:run -# with the Laya verifier (SKaiNET-transformers 0.62.1 decisions + laya modules, from Maven Central) +# with the Laya verifier (SKaiNET-transformers 0.63.0 decisions + laya modules, from Maven Central) ./gradlew -PlayaVerifier=true :composeApp:run ``` @@ -82,7 +82,7 @@ Skiko has no system fonts in a browser, so the web build bundles a subset of Not ### The Laya verifier The typed-decision contract (`skainet-transformers-decisions-api`, `-decisions-runtime`) and the -Laya adapter (`skainet-transformers-inference-laya`) ship with SKaiNET-transformers 0.62.1, which +Laya adapter (`skainet-transformers-inference-laya`) ship with SKaiNET-transformers 0.63.0, which the version catalog pins; `-PlayaVerifier=true` adds the `:verifier` module and the Laya source directories. The checkpoint (644 MB, `convaiinnovations/laya` `multilingual/`) downloads on the first verification into `~/.skainet-examples/semantic-emoji-filter/laya-multilingual/` diff --git a/SemanticEmojiFilter/gradle/libs.versions.toml b/SemanticEmojiFilter/gradle/libs.versions.toml index 63cf5d3..b6ec3a3 100644 --- a/SemanticEmojiFilter/gradle/libs.versions.toml +++ b/SemanticEmojiFilter/gradle/libs.versions.toml @@ -9,7 +9,9 @@ androidx-lifecycle = "2.11.0" # pulls two Skiko versions onto the desktop classpath, which crashes with # UnsatisfiedLinkError (getAdapterMaxTextureSize) at first render on macOS/Metal. composeMultiplatform = "1.11.1" -kotlin = "2.4.20" +# At least the engine's Kotlin: the SIMD128 sidecar uses kotlin.wasm.unsafe.wasmMemory and an older +# Kotlin/Wasm linker fails on it (engine 0.62.1 is built with 2.4.21). +kotlin = "2.4.21" kotlinx-coroutines = "1.11.0" kotlinxIo = "0.9.1" # The transformers 0.58.0 pin; the catalog JSON and calibration files are read with it. @@ -18,9 +20,11 @@ kotlinxSerialization = "1.11.0" # the engine BOM; the typed-decision contract, runtime and the Laya adapter need transformers 0.59.0+ # (0.60.0 runs Laya's exact GELU through the engine's exact gelu op instead of a host-side loop; # 0.61.0 adds padded batches for the BERT and Laya encoders on engine 0.60.0; 0.62.1 on engine -# 0.61.0 makes the Laya loader common code and adds the packed Q8_0 lane, opt-in). -skainet = "0.61.0" -skainet-transformers = "0.62.1" +# 0.61.0 makes the Laya loader common code and adds the packed Q8_0 lane, opt-in; 0.63.0 on engine +# 0.62.x adds Laya expert heads and routing, unused here, and rides on the fused SIMD128 kernels the +# web verifier runs on). +skainet = "0.62.1" +skainet-transformers = "0.63.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } From dbac6389201494397719aa96328f5ddcf6f7c3c6 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 22 Oct 2026 10:46:02 +0200 Subject: [PATCH 2/4] chore(kernelrace): SKaiNET 0.62.1 / transformers 0.63.0 Pins and the catalog comment only; the sample keeps Kotlin 2.4.10. --- KernelRace/gradle/libs.versions.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/KernelRace/gradle/libs.versions.toml b/KernelRace/gradle/libs.versions.toml index 0ab9efa..36031f2 100644 --- a/KernelRace/gradle/libs.versions.toml +++ b/KernelRace/gradle/libs.versions.toml @@ -18,10 +18,11 @@ kotlinxIo = "0.9.1" # IosModelProvider: skainet-data-source is JVM-only (KtorRemoteDataSourceFetcher lives in # its jvmMain), so the iOS download path talks to Ktor's Darwin engine on its own. ktorClientCore = "3.5.2" -# SKaiNET-transformers 0.62.1 is built against engine 0.61.0; keep the two pins +# SKaiNET-transformers 0.63.0 is built against engine 0.62.x (0.62.1 fixes the native packed-kernel +# bindings the Q8_0 lane uses on the desktop JVM); keep the two pins # moving together (the transformers release notes name the engine version). -skainet = "0.61.0" -skainet-transformers = "0.62.1" +skainet = "0.62.1" +skainet-transformers = "0.63.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } From d79b13d1d1611569c859b12ff0c6a8ce48be8919 Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 22 Oct 2026 10:46:02 +0200 Subject: [PATCH 3/4] chore(kllamademo): SKaiNET 0.62.1 / transformers 0.63.0 Pins only. GGUFTokenizer and the legacy LlamaRuntime constructor stay deprecated in transformers 0.63.0 and are still used by the JVM playground (follow-up). --- KllamaDemo/gradle/libs.versions.toml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/KllamaDemo/gradle/libs.versions.toml b/KllamaDemo/gradle/libs.versions.toml index d96ffa2..aead7fe 100644 --- a/KllamaDemo/gradle/libs.versions.toml +++ b/KllamaDemo/gradle/libs.versions.toml @@ -20,8 +20,8 @@ kotlinxIo = "0.9.0" ktor = "3.4.0" logback = "1.5.29" material3 = "1.10.0-alpha05" -skainet = "0.61.0" -skainet-transformers = "0.62.1" +skainet = "0.62.1" +skainet-transformers = "0.63.0" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" } From 6b975c577967e731d4ade9fe4f335cfd5cd1b9ad Mon Sep 17 00:00:00 2001 From: michalharakal Date: Thu, 22 Oct 2026 10:46:02 +0200 Subject: [PATCH 4/4] chore: SKaiNET 0.62.1 for the seven engine-only samples IrisDemo, MnistJavaDemo, TinyTransformer, SinusApproximator, GloVeEmbeddings, TDALab and MNISTDemo move from 0.61.0 to 0.62.1: pins, catalog and settings comments and the MnistJavaDemo README line. No source changes; Kotlin stays 2.4.10 (the 0.62.1 klibs are built with 2.4.21 and load on JVM and wasm). --- GloVeEmbeddings/gradle/libs.versions.toml | 6 +++--- GloVeEmbeddings/settings.gradle.kts | 2 +- IrisDemo/gradle/libs.versions.toml | 2 +- MNISTDemo/gradle/libs.versions.toml | 2 +- MnistJavaDemo/README.md | 2 +- MnistJavaDemo/gradle/libs.versions.toml | 2 +- SinusApproximator/gradle/libs.versions.toml | 2 +- TDALab/gradle/libs.versions.toml | 6 +++--- TDALab/settings.gradle.kts | 2 +- TinyTransformer/gradle/libs.versions.toml | 6 +++--- 10 files changed, 16 insertions(+), 16 deletions(-) diff --git a/GloVeEmbeddings/gradle/libs.versions.toml b/GloVeEmbeddings/gradle/libs.versions.toml index 3378748..805a988 100644 --- a/GloVeEmbeddings/gradle/libs.versions.toml +++ b/GloVeEmbeddings/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.61.0 ships -# klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.62.1 ships +# klibs compiled with Kotlin 2.4.21 (readable by 2.4.10); an older compiler line cannot read them # (JS/wasm fail with "Symbol for Any not found"). kotlin = "2.4.10" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.61.0" +skainet = "0.62.1" # Compose Multiplatform + Android. Must match the shared :skainet-ui design # system (included build) exactly: a mismatched Compose pulls two Skiko diff --git a/GloVeEmbeddings/settings.gradle.kts b/GloVeEmbeddings/settings.gradle.kts index aae78d0..3d1ad28 100644 --- a/GloVeEmbeddings/settings.gradle.kts +++ b/GloVeEmbeddings/settings.gradle.kts @@ -17,7 +17,7 @@ pluginManagement { dependencyResolutionManagement { repositories { - // Resolve everything from Maven Central (SKaiNET 0.61.0 is published there). + // Resolve everything from Maven Central (SKaiNET 0.62.1 is published there). // No mavenLocal: an unrestricted mavenLocal is consulted first and can contain // a partial kotlin-stdlib (JVM jar + POM, no klib variants) that shadows // Central's variant-aware metadata, breaking JS/wasm with "Missing stdlib class". diff --git a/IrisDemo/gradle/libs.versions.toml b/IrisDemo/gradle/libs.versions.toml index 15e1e40..dc9c753 100644 --- a/IrisDemo/gradle/libs.versions.toml +++ b/IrisDemo/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -skainet = "0.61.0" +skainet = "0.62.1" kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" kotlinx-io = "0.8.2" diff --git a/MNISTDemo/gradle/libs.versions.toml b/MNISTDemo/gradle/libs.versions.toml index 6bba61d..c0b5d3e 100644 --- a/MNISTDemo/gradle/libs.versions.toml +++ b/MNISTDemo/gradle/libs.versions.toml @@ -19,7 +19,7 @@ kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" ktor = "3.1.3" logback = "1.5.18" -skainet = "0.61.0" +skainet = "0.62.1" kotlinxIo = "0.8.2" ktorClientCore = "3.3.3" ktorClientPlugins = "3.1.1" diff --git a/MnistJavaDemo/README.md b/MnistJavaDemo/README.md index 52822dc..212b35c 100644 --- a/MnistJavaDemo/README.md +++ b/MnistJavaDemo/README.md @@ -5,7 +5,7 @@ A CLI MNIST digit detector written in Java 21, demonstrating JVM interoperabilit ## Prerequisites - **Java 21+** (with preview features) -- **SKaiNET 0.61.0** -- resolved directly from Maven Central, no local publish needed +- **SKaiNET 0.62.1** -- resolved directly from Maven Central, no local publish needed - **GGUF model file** -- a trained MNIST CNN model in GGUF format ## Usage diff --git a/MnistJavaDemo/gradle/libs.versions.toml b/MnistJavaDemo/gradle/libs.versions.toml index 4b67529..68d0f4b 100644 --- a/MnistJavaDemo/gradle/libs.versions.toml +++ b/MnistJavaDemo/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -skainet = "0.61.0" +skainet = "0.62.1" kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" kotlinx-io = "0.8.2" diff --git a/SinusApproximator/gradle/libs.versions.toml b/SinusApproximator/gradle/libs.versions.toml index 3fa08f2..a7354d4 100644 --- a/SinusApproximator/gradle/libs.versions.toml +++ b/SinusApproximator/gradle/libs.versions.toml @@ -24,7 +24,7 @@ kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" ktor = "3.1.3" logback = "1.5.18" -skainet = "0.61.0" +skainet = "0.62.1" kotlinxIo = "0.8.2" [libraries] diff --git a/TDALab/gradle/libs.versions.toml b/TDALab/gradle/libs.versions.toml index 3378748..805a988 100644 --- a/TDALab/gradle/libs.versions.toml +++ b/TDALab/gradle/libs.versions.toml @@ -1,11 +1,11 @@ [versions] -# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.61.0 ships -# klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.62.1 ships +# klibs compiled with Kotlin 2.4.21 (readable by 2.4.10); an older compiler line cannot read them # (JS/wasm fail with "Symbol for Any not found"). kotlin = "2.4.10" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.61.0" +skainet = "0.62.1" # Compose Multiplatform + Android. Must match the shared :skainet-ui design # system (included build) exactly: a mismatched Compose pulls two Skiko diff --git a/TDALab/settings.gradle.kts b/TDALab/settings.gradle.kts index 9f1ea9a..4dda8f7 100644 --- a/TDALab/settings.gradle.kts +++ b/TDALab/settings.gradle.kts @@ -17,7 +17,7 @@ pluginManagement { dependencyResolutionManagement { repositories { - // Resolve everything from Maven Central (SKaiNET 0.61.0 is published there). + // Resolve everything from Maven Central (SKaiNET 0.62.1 is published there). // No mavenLocal: an unrestricted mavenLocal is consulted first and can contain // a partial kotlin-stdlib (JVM jar + POM, no klib variants) that shadows // Central's variant-aware metadata, breaking JS/wasm with "Missing stdlib class". diff --git a/TinyTransformer/gradle/libs.versions.toml b/TinyTransformer/gradle/libs.versions.toml index e264fcb..d41feb5 100644 --- a/TinyTransformer/gradle/libs.versions.toml +++ b/TinyTransformer/gradle/libs.versions.toml @@ -13,13 +13,13 @@ composeHotReload = "1.0.0" # render on macOS/Metal. AGP must also match skainet-ui's — Gradle composite # builds reject mixed AGP versions. composeMultiplatform = "1.11.1" -# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.61.0 ships -# klibs compiled with Kotlin 2.4.20 (readable by 2.4.10); an older compiler line cannot read them. +# Keep in step with the Kotlin version SKaiNET is built with: SKaiNET 0.62.1 ships +# klibs compiled with Kotlin 2.4.21 (readable by 2.4.10); an older compiler line cannot read them. kotlin = "2.4.10" kotlinx-coroutines = "1.10.2" # SKaiNET BOM version — published to Maven Central. The BOM pins every # sk.ainet.core:* artifact so individual libraries are declared without versions. -skainet = "0.61.0" +skainet = "0.62.1" [libraries] kotlin-test = { module = "org.jetbrains.kotlin:kotlin-test", version.ref = "kotlin" }