v0.6.0
FRAM v0.6.0 makes the native, Bun, and Cloudflare paths independently reproducible release surfaces, and adds the application-level safety needed to build on them without changing FRAM’s neutral recursive-Triple kernel.
Highlights
- Bun-first official client.
@tompassarelli/framrpc0.4.0 is a reproducible, zero-runtime-dependency package for Bun 1.3.13+. The root entry point provides TCP;@tompassarelli/framrpc/coreprovides the same thirteen-operation client over an injected exact-frame transport; generated TypeScript declarations ship with both. - Guarded application writes. The new
@tompassarelli/framrpc/schemaentry point provides single-value replacement, unique create/upsert, guarded single- and multi-subject updates, and combined create/update transactions. Every attempt reads one pinned snapshot, preflights the exact batch, and commits withexpected-versionOCC. - Deterministic ordered queries. Structured queries now support stable
orderBy/:order-byandlimit/:limit, with natural Term ordering, exact i64 behavior, a canonical full-row tie-breaker, and global top-K semantics. Bound-attribute text queries now build only the relevant text-index rows. - Native backup and restore.
bin/fram-backupcreates and verifies a checkpoint-bound backup of the authoritative FRAMLOG prefix, its SpaceId and served version, and the exact native artifact receipt. Restore is gated against fresh storage and the recorded artifact identity. - Cloudflare Durable Object release path.
@tompassarelli/fram-cloudflare-do0.2.0 shares the official portable FRAMRPC transport, ships typed adapter and seam declarations, and adds exact FRAMLOG export/restore with transactional publication and fail-closed recovery from interrupted replacement. The release also carries the matching deterministic Wasm envelope and a launch-blocking, wiki-shaped 128 MiB capacity gate. - Stronger mutation atomicity and native operation. Writes, batches, and successful lease mutations encode their predicted success response before append, so response depth or frame-size failure leaves state and version unchanged. Native storage/build-cache work reduces copying and preserves compiler/provenance closure across worktrees.
- Reproducible supply chain. Native, Bun, Cloudflare adapter, and Wasm archives are normalized and paired with closed receipts binding SHA-256, source commit, annotated tag object, package/target identity, and—where applicable—the pinned Beagle compiler and third-party notices.
Upgrade and compatibility notes
- The official checkout client moved from
clients/node(Node 20+) toclients/bun(Bun 1.3.13+). Install the shipped@tompassarelli/framrpc0.4.0 tarball, or use its runtime-neutralcoreentry point with an owned transport. - FRAMRPC remains the closed thirteen-operation v1 data surface, with checkpoint kept as a separately named native operator capability. Structured-query encoding expanded for ordering and limits, so upgrade v0.6 clients and servers together instead of assuming mixed-version query compatibility.
- Schema constraints remain application-layer guarantees. Direct FRAMRPC writes can bypass uniqueness, cardinality, and reference guards.
- Mutation batches are capped at 247 actions and may now refuse before commit when the exact predicted receipt exceeds the wire budget. Nontrivial reads should continue to paginate; the unpaged response ceiling is 248 rows.
- The Cloudflare adapter requires Bun 1.3.13 for its package toolchain, a Worker compatibility date of
2026-03-15or newer, a named Durable Object, and a SpaceId no longer than 1,024 UTF-8 bytes. Keep the raw namespace and export/restore behind a separately authorized backend/admin boundary; expose only the exchange service binding to applications. - FRAM remains pre-1.0 and has no engine access control. Keep the native socket private and isolate by process, network, SpaceId, and FRAMLOG.
Release assets
Each archive has a sibling receipt; verify the archive against the archive-sha256 recorded there.
tompassarelli-framrpc-0.4.0.tgz— Bun FRAMRPC client, portable core, schema client, declarations, backup module, and licenses.tompassarelli-framrpc-0.4.0.receipt.txt—fram-bun-release-receipt/v2provenance and archive digest.tompassarelli-fram-cloudflare-do-0.2.0.tgz— typed Durable Object adapter and seam package.tompassarelli-fram-cloudflare-do-0.2.0.receipt.txt—fram-cloudflare-do-release-receipt/v1provenance and archive digest.fram-v0.6.0-wasm32-wasm-embed.tar.gz— deterministic Wasm engine, seam ledger, native provenance, licenses, and third-party notices.fram-v0.6.0-wasm32-wasm-embed.receipt.txt—fram-cloudflare-wasm-release-receipt/v2Wasm, seam, toolchain, provenance, and archive digests.fram-v0.6.0-x86_64-linux-musl.tar.gz— static native server executable and licenses.fram-v0.6.0-x86_64-linux-musl.receipt.txt—fram-native-release-receipt/v2executable/provenance and archive digests.
Full Changelog: v0.5.3...v0.6.0