CultLib/packages
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Meta Vens 9e6027e8d8 Measure what adding a bytes slot does to records already written
Four of cultnet-rs's ten DatabaseEntry byte fields lack
#[cultcache(key = N, bytes)] and so serialize as MessagePack
array-of-integers rather than bin: IdunnDeploymentBrakeRecord.signature,
IdunnDaemonHealthTrustBindingRecord.signer_public_key,
GameCultServiceTrustAnchorRecord.signer_public_key, and
IdunnAuthenticatedProviderHealthProjectionRecord.signature. Converting
them touches live stores, so the question is what breaks.

Measured rather than reasoned, and the answer is the opposite of what I
expected. Reading is compatible in both directions: serde_bytes::ByteBuf
accepts an array marker, and a plain Vec<u8> accepts bin, so the flip is
neither a hard read break nor a one-way door. No dual-read path is
needed and reverting the binary is survivable.

What does change is reproduction. A record written before the flip can
be read but can never re-encode to the bytes it was stored as, and its
canonical digest moves with it. That is the cost, and it lands on
byte-exact store checks and canonical_sha256, not on readability -- so
the migration is a re-encode question, not a compatibility one.

Also pins the size difference the media work is chasing: 406 bytes as an
array against 278 as bin for a 256-byte payload, 1.46x, independently
matching the 1.45x measured on an 848-byte payload.

  cargo test --test byte_slot_migration -> test result: ok. 4 passed; 0 failed

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-10 00:42:26 +02:00
..
cultcache-py Publish the non-Rust packages and make the licensing uniform 2026-09-04 04:41:44 +02:00
cultcache-rs Publish the non-Rust packages and make the licensing uniform 2026-09-04 04:41:44 +02:00
cultcache-ts Promote the swarm document catalog into cultcache-ts 2026-09-06 19:40:37 +02:00
cultmath Clarify CultMath and CultGeometry ownership 2026-08-26 17:47:06 +02:00
cultmesh-browser Harden CultMesh route fallback and secure onboarding 2026-08-18 19:41:03 +02:00
cultmesh-kotlin Finish the sequence-domain split in Python and Kotlin 2026-09-04 00:40:05 +02:00
cultmesh-rs Reconcile cultmesh-rs: adopt Odin's lineage, keep CultLib's additions 2026-09-05 17:26:44 +02:00
cultmesh-ts Publish the non-Rust packages and make the licensing uniform 2026-09-04 04:41:44 +02:00
cultnet-rs Measure what adding a bytes slot does to records already written 2026-09-10 00:42:26 +02:00
cultnet-ts Port gamecult.runtime_presence_health.v2 to cultnet-ts 2026-09-07 21:42:54 +02:00