glm-5.3-flash
b10e980346
Release 0.4.0: fuzzing wave findings, MaxLengthReserved encoding, reservation read/write API
...
- VariableEncoding gains MaxLengthReserved (public enum, semver-major
for 0.x; breaks exhaustive matches) — W3-3 root fix
- read_field/write_field correctly treat aligned maxLength reservations
as raw zero-padded/NUL-trimmed windows (W3-3, a0dd3d2 )
- plan_read_array bounds check for truncated fixed-stride arrays (W2-1)
- data_access::read_reservation{,_string}/write_reservation public API
- 0.4.0 changelog entry; fuzz Cargo.lock version sync
Verification: cargo test --release 573 passed/0 failed; clippy
--all-targets -D warnings clean; wasm32-unknown-unknown release build
clean; fuzz corpus replay 30/30; cargo doc --no-deps clean;
cargo publish --dry-run --allow-dirty (67 files, 1.3MiB) verified
2026-09-30 12:51:56 +00:00
glm-5.3-flash
9803d3b768
Pre-publish review #008 : gate int_keys on canonical keys, restore no-prealloc array rule
...
Review #008 (docs/reviews/008-pre-publish-review.md) audits the two
post-#007 unreviewed commits (dea96f0 bench port, d4635d2 perf) before
the first crates.io publish of 0.3.0.
- F1: the int_keys integer dispatch accepted non-canonical mapping
keys ("01", "+1" parse as u64 1) — the reader dispatched disc 1
while the materializer, validation plan, and tunion rejected the
same buffer. compile_int_keys now builds the table only when every
key is canonical (v.to_string() == key); otherwise the string
fallback applies (agreement restored, perf kept for canonical
mappings). Tests: r8_non_canonical_mapping_key_disables_int_dispatch,
r8_canonical_mapping_keys_keep_int_dispatch.
- F2: d4635d2 reintroduced Vec::with_capacity(count) on both array
materializers. Bounded per array by MAX_ARRAY_ELEMENTS but nesting
compounds: probe (counting allocator) measured ~477 MB simultaneous
allocation from a ~1 KB schema + empty buffer (100-level stride-0
chain, all legal under the caps). H1's layer-1 rule restored:
Vec::new() + push. Bench unchanged (packet read 220µs vs 246µs
baseline). Test: r8_deeply_nested_stride0_array_rejects_before_bulk_prealloc.
- N3a disposition (review #007 's deferred item): BastField::synthetic
(pub(crate), zero callers, #[allow(dead_code)]) deleted; the seven
source() accessors are public API and stay (semver decision —
removal needs an explicit ask); resolve_typeref_as_def's inline
struct/union/enum arms probe-verified reachable (inline struct
union variants are legal) — kept.
- CHANGELOG: 0.3.0 entry (compiled forms, breaking surface, hardening
fixes, coverage). README: ReadPlan/ValidationPlan roles, union
conventions, untrusted-schema bounds.
Verification: 569 tests green (491 lib + 17 + 34 + 15 + 12, + 2
ignored doctests), clippy -D warnings clean, cargo doc 0 warnings,
wasm32 build green, cargo publish --dry-run clean.
2026-09-07 10:58:49 +00:00
glm-5.2
cab493206c
Release v0.2.0: BAST pivot
...
Bump version to 0.2.0, exclude AGENTS.md from the published crate, and
add a CHANGELOG.md covering the breaking BAST pivot (schema format,
compile signature, validation split) plus bug fixes vs v0.1.0.
Verification:
- cargo test --release: all tests pass
- cargo clippy --all-targets -- -D warnings: clean
- cargo publish --dry-run --allow-dirty: packages as v0.2.0, no collision
- AGENTS.md no longer in cargo package --list; CHANGELOG.md included
2026-08-17 05:47:25 +00:00