availability

open override fun availability(): BoltAvailability

BoltAvailability.Available exactly while the archive has room for the smallest possible frame, plus the segment header one would need if the active segment is full.

Not "usedBytes < capacityBytes", which was wrong in the direction that matters: an archive with four bytes free reported itself writable while every append failed, and a bolt whose Available does not imply "an append will be accepted" is the one thing this signal exists to rule out. A single append larger than the remaining room still fails — and reports the dots it lost — because no per-append size is knowable before the append arrives.