Tracking checklist for the first engine release that carries the mobile/on-device work merged since 0.38.0. Several fixes are on develop but unreleased, so no downstream consumer (incl. SKaiNET-transformers, which pins skainet = "0.38.0") can see them until this ships.
What this release propagates to consumers
Release checklist
Note on the mobile win reaching apps
For a transformers-based Android app to actually get the speedup it needs to (a) depend on this release, and (b) add sk.ainet.core:skainet-backend-jni-cpu as a dependency so the .sos ship in the APK. The provider is then discovered automatically. Worth a short "using native kernels on Android" doc note alongside the release.
Tracking checklist for the first engine release that carries the mobile/on-device work merged since 0.38.0. Several fixes are on
developbut unreleased, so no downstream consumer (incl. SKaiNET-transformers, which pinsskainet = "0.38.0") can see them until this ships.What this release propagates to consumers
createRandomAccessSourcereturns null on Android: full-file heap load OOMs on a 138 MiB GGUF (working ~40-line fix included) #922 AndroidcreateRandomAccessSource— fixes the streaming-load OOM (the transformers Android LLM path hits this directly)skainet-backend-jni-cpu— Android JNI NEON bridge. Measured on a Pixel 8a: ~24 tok/s SmolLM2-135M Q8_0 decode projection (V82_DOTPROD tier) vs 3.8 tok/s scalar — clears the field-report usability gate ~6x. This is the artifact that turns Android inference on.Release checklist
./gradlew publishon macOS, which now includes theskainet-backend-jni-cpuAndroid library, but the runner has no pinned Android SDK/NDK, so the AAR's.sos won't build reliably. PR incoming; needed before the release actually ships the JNI artifact.VERSION_NAMEingradle.properties; updateCHANGELOG.md[Unreleased]→ the version.sk.ainet.core:skainet-backend-jni-cpuAAR (witharm64-v8a+x86_64.sos and consumer ProGuard rules) and the linkable K/N klibs from fix(backend): embed the kernel static archive into published K/N klibs (#941) #942.skainet = "<version>"ingradle/libs.versions.toml; then transformers#272 (SmolLM2 reproducer) can prove the end-to-end Android generation path withNATIVE_OPTIMIZED+ the JNI AAR dependency (the provider auto-registers via thePlatformCpuOpsFactory.androidServiceLoader install — no transformers code change needed, just the dependency).Note on the mobile win reaching apps
For a transformers-based Android app to actually get the speedup it needs to (a) depend on this release, and (b) add
sk.ainet.core:skainet-backend-jni-cpuas a dependency so the.sos ship in the APK. The provider is then discovered automatically. Worth a short "using native kernels on Android" doc note alongside the release.