tcrypt no longer blanket-utf8-encodes/decodes the data that passes through it. it was (in some cases) doubling the size of the ciphertext needlessly. instead, it now detects whether or not it needs to encode, and sets the first byte in the unencrypted data to a random value between 0-127 (if NOT utf8 encoded) and 128-255 (if is encoded). this allows the decryption to detect the encoding without giving a predictable first byte in the ciphertext (ie 1|0). works well, especially for binary files.
implementing a NoteFile.to_blob() function (async) which finishes with a blob we can use to generate a url. great for image previews or file downloads. implemented this in the note file editor, so far so good (except the "remove attachment" link is gone now. need to make this delete the file, probably.