Skip to content

fix(build): unbreak develop — drop the snapshot pin, restore the kernel bootstraps - #356

Merged
michalharakal merged 1 commit into
developfrom
fix/no-snapshot-pin-restore-kernel-bootstraps
Aug 31, 2026
Merged

michalharakal merged 1 commit into
developfrom
fix/no-snapshot-pin-restore-kernel-bootstraps

Conversation

@michalharakal

Copy link
Copy Markdown
Contributor

Why

develop does 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:

Could not find sk.ainet:skainet-bom:0.51.1-SNAPSHOT.

Pinned back to the 0.51.0 release.

2. The kernel bootstraps were deleted. That deletion was only safe under the snapshot: it assumed KernelDispatch self-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 KgemmaKernels keeps 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-core leaked a versionless dependency. It api-exports skainet-lang-core, whose alias carries no version by design, while holding the BOM that versions it as implementation — 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:

Could not find sk.ainet.core:skainet-lang-core:.

This one is pre-existing, not from #355 — the unresolvable snapshot BOM was failing earlier and masking it.

Also

A latent commonMain break of mine that assemble catches and the JVM compile does not: RegexOption.DOT_MATCHES_ALL is JVM-only, so the two FunctionGemma official-format regexes now use [\s\S] instead of . with that flag. FunctionGemmaOfficialFormatTest still passes, so the rewrite is behavior-preserving.

Verification

All against the published 0.51.0, no composite build, matching what CI does:

Command Result
./gradlew assemble green
./gradlew :llm-agent:jsPackageJson (the job that failed on #355) green
./gradlew jvmTest green

Follow-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

…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
michalharakal merged commit 50e8810 into develop Aug 31, 2026
1 of 2 checks passed
@michalharakal
michalharakal deleted the fix/no-snapshot-pin-restore-kernel-bootstraps branch August 31, 2026 13:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant