handles; use f.buf == null instead of !f.buf so empty buffers/strings do not force SSH_FX_FAILURE on READ. READ accepts Buffer, typed views, or string after WRITE. Earlier in this branch: enqueueSftpReply(reqid) + FAILURE on errors; REQUEST.READ validation in vendor bare-ssh2; coerce typed arrays to Buffer in SFTP.data and Protocol.channelData/channelExtData. CHANGELOG notes.