v0.6.1
A folder this program creates on a network share can now be written to, which it could not before. If you run the container on Unraid or any other box where the share belongs to somebody other than root, this one matters.
🐛 Fixed
- A folder created through the browse panel came out unwritable on a share. It was
root:rootwith mode 0755 while the share around it wasnobody:userswith 0777, so the person who asked for the folder could open it and not put anything in it. The mode handed toMkdiris only a ceiling: the process umask masks it, and a container's default of 022 is exactly what turns 0777 into 0755. A new folder inherits the mode AND the owner of the folder it is created in now, which is the right rule rather than a fixed mode - it makes the new folder behave like the one it sits in, and that is correct on a private disk as well as on a world-writable share. Reported with the Windows dialog attached, and measured on the box before anything was changed. - The files a run copies had the same defect, arriving quietly. A folder you cannot write to announces itself immediately; a copied file that belongs to root does not, until somebody tries to edit it. That write belongs to rclone, so there is no moment for this program to step into and no way to fix it the way the folder was fixed.
ARROWLOOP_UMASKcovers it at the one lever that reaches every create the process makes. The container image sets000, which matches the share it writes into; a desktop install sets nothing and nothing changes there, because there the process is the user and the owner is already right. The Unraid template carries the field with000filled in, never blank - a blank template field overrides the image default rather than falling back to it.
⚡ Improved
- The engine tab saves as you change it, and its save button is gone. A page of settings is not a form somebody fills in and submits: every control on it stands alone, so a button at the foot means a switch flipped at the top does nothing until you scroll down and find it. Writing is delayed by a moment, because half of these controls are text boxes and saving per keystroke would refuse "1" on the way to "1M" and flash an error at somebody typing correctly.
- A refusal now sticks to the bottom of the window. That is the price of taking the button away: with a button the answer appears where the finger just was, and saving as you type puts it at the foot of a long page while the eye is on a field near the top. Only a refusal sticks; "saved" is not news worth pinning over the page.
🎨 Design
- The README has a row of download buttons above its contents, one per platform, drawn from a template rather than by hand. Each carries the platform's own mark and its own colour, with no outline: a filled shape in a colour somebody already associates with the platform does the work an outline was doing, and the eye finds "the blue one" before it reads the word. The marks come from Font Awesome Free, whose icons are CC BY 4.0, and each is used the one way a trademark may be used without permission - to name the thing it refers to, on a button linking to a download for exactly that platform. They link straight to the newest release: the release workflow now uploads each bundle twice, once with the version in the name and once without, because GitHub serves
releases/latest/download/<name>only on an exact name and every versioned link in a README goes stale at the next tag. - The paragraph explaining the name explains the current one. It described what a manorial reeve did, which was the working title's story and not this program's.
🧹 Housekeeping
- The language bar stops counting the translation tables as if they were the program. 1.26 MB of the repository is forty-two locale files and a generated glyph file holding raw SVG paths, all wearing a
.tsextension, which made TypeScript the "main language" of a program whose engine is Go. Marked as data in.gitattributes: Go 0.97 MB against 0.63 MB of actual interface code.