Repository navigation
fix(build): unbreak develop — drop the snapshot pin, restore the kernel bootstraps - #356
Merged
michalharakal merged 1 commit intoAug 31, 2026
Conversation
…tstraps develop currently does not build: #355 merged with red CI, and the three failures it carried are all still there. - The engine was pinned to 0.51.1-SNAPSHOT. We publish no snapshots for CI to resolve, so every job died at dependency resolution. Back to the 0.51.0 release. - That pin was what allowed the kernel bootstraps to be deleted: the deletion assumed KernelDispatch self-heals, which only lands in the engine after 0.51.0. Against the release, nothing installs kernel packs at all and every matmul silently falls back to the decoding reference kernel — the ~1000x regression the bootstraps exist to prevent. Reverts the deletion; the restored KgemmaKernels keeps its ordering fix (discover providers, then install packs). It can go again once the engine change ships in a release. - transformer-core api-exports skainet-lang-core, whose alias is versionless, but held the BOM that versions it as implementation. A consumer seeing it only transitively (kllama-cli -> kllama -> llm-core -> transformer-core) resolved it with no version: 'Could not find sk.ainet.core:skainet-lang-core:.'. The platform now travels with the dependency it versions. Pre-existing; the unresolvable snapshot BOM was failing earlier and masking it. Also fixes a latent commonMain break of mine that assemble catches and the jvm compile did not: RegexOption.DOT_MATCHES_ALL is JVM-only, so the two FunctionGemma official-format regexes use [\s\S] instead. Verified against the published 0.51.0, no composite build: assemble, :llm-agent:jsPackageJson (the job that failed on #355) and jvmTest all green. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YKeDSK4JF295y53Uvez954
michalharakal
deleted the
fix/no-snapshot-pin-restore-kernel-bootstraps
branch
August 31, 2026 13:30
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
developdoes not currently build. #355 was merged with red CI, and all three failures it carried are still on the branch.What was broken
1. The engine was pinned to
0.51.1-SNAPSHOT. We publish no snapshots that CI can resolve, so every job died at dependency resolution:Pinned back to the 0.51.0 release.
2. The kernel bootstraps were deleted. That deletion was only safe under the snapshot: it assumed
KernelDispatchself-heals, which lands in the engine after 0.51.0 (SKaiNET#1221). Against the release, nothing installs kernel packs at all and every matmul silently falls back to the decoding reference kernel — the ~1000× regression the bootstraps exist to prevent, and exactly the class of bug #315 is fixing on Apple targets.Reverted. The restored
KgemmaKernelskeeps its ordering fix — discover providers, then install packs, so all 17 kernels land rather than 8. The deletion can go back in once the engine change ships in a release; it is right in substance, just ahead of its dependency.3.
transformer-coreleaked a versionless dependency. It api-exportsskainet-lang-core, whose alias carries no version by design, while holding the BOM that versions it asimplementation— so the platform did not travel with the dependency. Any consumer seeing it only transitively (kllama-cli → kllama → llm-core → transformer-core) resolved it with no version:This one is pre-existing, not from #355 — the unresolvable snapshot BOM was failing earlier and masking it.
Also
A latent
commonMainbreak of mine thatassemblecatches and the JVM compile does not:RegexOption.DOT_MATCHES_ALLis JVM-only, so the two FunctionGemma official-format regexes now use[\s\S]instead of.with that flag.FunctionGemmaOfficialFormatTeststill passes, so the rewrite is behavior-preserving.Verification
All against the published 0.51.0, no composite build, matching what CI does:
./gradlew assemble./gradlew :llm-agent:jsPackageJson(the job that failed on #355)./gradlew jvmTestFollow-up
Once SKaiNET#1221 is merged and released, re-apply the bootstrap deletion (revert this PR's revert) and bump the pin to that release.
🤖 Generated with Claude Code
https://claude.ai/code/session_01YKeDSK4JF295y53Uvez954