Skip to content

v3.0.0-alpha.21

@claude claude tagged this 07 Jun 19:38
New lockstep extension packages (package count 26 -> 28):

- @drakkar.software/starfish-wal (TS): an append-only CRDT op-log document
  model. Deterministic, op-based CRDT with a no-ties total order
  (Lamport counter, replicaId): an LWW typed register, an RGA sequence, and
  text (an RGA of characters). The fold is commutative, idempotent, and
  byte-identical across TypeScript and Python (locked by the shared vector
  tests/test-vectors/wal-crdt.json). Ships a WalDocument client log over
  injected transport/encryptor/signer interfaces (open/commit/materialize/
  pull/snapshot) that works under encryption "none" and "delegated" with no
  server, wire, or storage change, and enforces: mandatory Ed25519 author
  verification (fail-closed), an optional authorized-writer set and
  snapshot-role gate, a per-writer signed sequence for truncation detection
  (optionally fail-closed via strictSequence), and trust / trust-retain-tail /
  re-derive reader postures (re-derive compares full canonical state).
- starfish-wal (Python): the cross-language CRDT core (clock + fold).

High-level reconcile API on WalDocument (TS): update(next) / setText(list, next)
/ setList(list, next) auto-generate the minimal CRDT ops by diffing a desired
value against current state, so callers declare the value they want instead of
hand-driving insert/removeAt/insertText. The diff trims the common prefix/suffix
before the LCS, so a localized text edit is ~linear in document length.

materialize() folds iteratively (explicit stack), so a long linear list/text
does not overflow the call stack / Python recursion limit (found by benchmarking;
regression-tested at 50k elements).

Wires both packages into the TS and Python publish workflows; adds a docs/ts/wal/
guide set (overview, CRDT model, document layer, reconcile, snapshots, security)
incl. measured performance characteristics, README + per-package READMEs, and
CHANGELOG/CLAUDE updates. Versions bumped to 3.0.0-alpha.21 across all packages.

https://claude.ai/code/session_01Bs9Ruvz6h9RpRoaKEo4R36
Assets 2
Loading