Skip to content

Commit 83c7fa3

Browse files
michalharakalclaude
andcommitted
docs(changelog): note GGUF unsigned-metadata fix in 0.22.2
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 86cc067 commit 83c7fa3

1 file changed

Lines changed: 1 addition & 0 deletions

File tree

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
### Fixed
88

99
- **`skainet-bom` published at the wrong Maven coordinates** — the umbrella BOM was being emitted as `sk.ainet.core:skainet-bom` because the engine-wide `GROUP=sk.ainet.core` from the root `gradle.properties` clobbered the per-module `group = "sk.ainet"` override picked up by `vanniktech.maven.publish`. Downstream BOMs (e.g. `sk.ainet.transformers:skainet-transformers-bom`) import this with `<groupId>sk.ainet</groupId>`, so they were unresolvable from a fresh `mavenCentral()`-only project. Fix uses vanniktech's explicit `mavenPublishing { coordinates("sk.ainet", "skainet-bom", VERSION_NAME) }` so the BOM publishes at `sk.ainet:skainet-bom:0.22.2`. `validate-published-poms.sh` extended to assert the BOM landed at the expected path so the regression cannot ship again. (Issue #584)
10+
- **`GgufModelMetadata` silently dropped `UInt`/`ULong` numeric fields** — modern GGUFs (recent llama.cpp converters) store dimensions and counts as `uint32`, which the reader preserves as Kotlin `UInt`. Kotlin's unsigned types do **not** extend `kotlin.Number`, so the previous private `(value as? Number)?.toInt()` helper returned `null` for every `UInt`/`ULong` field. Result: `contextLength`, `embeddingLength`, `layerCount`, `headCount`, `vocabSize` (fallback), `bosTokenId`, and `eosTokenId` all came back `null` on real-world GGUFs and downstream loaders fell back to defaults (e.g. `blockCount=0` → zero-layer transformer). New public file `GgufFieldAccessors.kt` exposes `Map<String, Any?>` extensions (`getInt`/`getLong`/`getString`/`getIntList`/`getStringList`) covering every signed and unsigned integer type the reader can emit, plus the matching primitive arrays for the list variant. `GgufModelMetadata.from()` now routes through these public accessors; the buggy private helpers are deleted. New `GgufModelMetadataUnsignedTest` pins the contract. Non-breaking — only adds public API and fixes existing methods to return correct values. (Issue #585)
1011

1112
## [0.22.1] - 2026-04-30
1213

0 commit comments

Comments
 (0)