- List the log files of suvi and its tasks, rotated ones included, behind a new files icon next to json and txt on the global log and every task log page, each with a link to view it as plain text and one to download it. - List all of these files with their size and date at `/logfiles.json`. - Serve only files named after suvi or a task config file, so a log directory shared with other programs exposes nothing else. - Compress responses while they stream instead of holding the whole body in memory, and leave byte range answers uncompressed. - Keep webhook tokens out of the log, which every user login can read. The log names the position of the token in the task config file instead, i. e. `hook token #2`. Log files written before keep their tokens until they rotate out. - Escape line breaks inside a log entry as `\n`, `\r` and the like, so that one entry is always one line of the log file and a webhook call or a login name can no longer write a forged entry.