Skip to content

v2.0.5

Choose a tag to compare

@github-actions github-actions released this 25 Jul 11:49
· 16 commits to main since this release

Signed-off-by: Guenther Alka gea@napp-it.org
Concept Co-Authored-By: Claude Sonnet 4.6 noreply@anthropic.com

Tested sync variants (live, 2026-07-25)

Mode Hosts Result
Local bidir (primary <-> secondary) Linux .112 (ZFS posixacl) OK
Local bidir FreeBSD 15.1 .191 (ZFS nfs4) OK after B4 fix
Local bidir macOS .195 (APFS, acltype=none) OK after B5 fix
Local bidir Windows winpool (ZFS nfs4, ACL via SDDL) OK
Remote backup Linux -> FreeBSD .112 -> .191:9010 OK
Remote backup Linux -> OmniOS .112 -> .189:9010 OK
Remote backup Linux -> macOS .112 -> .195:9010 OK
Remote backup Linux -> Windows .112 -> .65:9010 OK
Remote backup Windows -> Linux .65 -> .112:9010 OK
Remote backup Windows -> OmniOS .65 -> .189:9010 OK
Remote backup Windows -> FreeBSD .65 -> .191:9010 OK
Rename across network .112 -> .191 OK -- metadata op, no re-transfer
Mass-delete guard + freeze/approve flow sandbox OK
Transfer key mismatch sandbox OK -- REFUSED immediately, clean log
Disconnect / reconnect + queue drain sandbox OK

Bugfixes vs v2.0.0

  • B1 Sender logged
    emote connected before receiver validated the transfer key -- fix: explicit accept-ack from receiver, sender waits for it before declaring connected
  • B2 Nil-pointer panic in Sender.connect(): double-close of already-nil connection after transport error
  • B3 Delete-freeze loop: deleting delete-freeze.txt re-tripped the same budget on the next pass -- fix: one-shot rename-to-delete-approve.txt protocol (approve file is consumed after one pass)
  • B4 FreeBSD 15.1: ZFS property acltype=posixacl is a compat label even on NFS4 datasets, caused WARN spam on every reconcile pass -- fix: FreeBSD treated like illumos, acltype read skipped, always returns nfs4
  • B5 macOS without ZFS (APFS/HFS+): FATAL on missing zfs binary -- fix: graceful fallback to acltype=none (file sync only, no ACL propagation), parallel to the existing Windows fallback
  • B6 Log line incorrectly said aclinherit=passthrough set on both parent datasets when acltype=none
  • B7 --key flag was wired through Sender/Receiver structs but missing from main.go flag definitions -- caused lag provided but not defined: -key on all platforms
  • B8 Protocol handshake incompatibility between v2.0.0 (no accept-ack) and v2.0.1+ (accept-ack added in B1 fix): receivers logged handshake recv failed: EOF when contacted by older senders -- fix: update all members to the same version; ProtoVersion bump on any handshake flow change is tracked as TODO for v2.1