Historical record: 3.1 file and recovery milestone
Documentation home · Current file semantics
Version 3.1.0, released on 25 October 2026, implemented the first usable file and coordinated-recovery batch. This retrospective is not an active release checklist.
File and session changes
The release added basic ownership/modes/umask, nanosecond timestamps, sparse/truncate operations, ordered append, atomic rename and open-unlink behavior. It separated the replaceable CSI frontend from the FUSE mount owner, so frontend restart could retain a surviving owner's established connections. Request expiry, immutable replay identities and a replicated expiry floor bounded duplicate-result lifetime across retries and restart.
Hardlinks, symlink publication and current durable handle reclamation arrived later in 3.2.0. The current contract is Filesystem semantics, with handle lifetime covering unlink/close/expiry.
Replication and membership changes
Sparse current-state checkpoints replaced indefinitely retained full command history. Transfer gained checksummed resumable prefixes, bounded journals/spools and background rebuild. Learner replacement recorded identity, verified catch-up, promoted under current quorum and required a durable original-member serving fence. Stable aliases and authenticated successor discovery supported mounted clients. Kubernetes Leases selected lifecycle actors without substituting for storage fences.
Historical observations and limits
The original first-usable batch report records its exact runtime sources and outcomes. Its failures, single-copy storage waits and deferred work retain their original meaning. The 3.1 milestone did not establish transparency through mount-owner/host loss, production SLOs, quotas, file-backed database support or migration from the retired driver.
For current operating instructions, use replication, lifecycle and the operator runbook.
