What's Changed
Fixes a download failure when saving X/Twitter images via the browser extension on Windows (#264). The extension forwarded URL query parameters (?format=jpg&name=large) as part of the filename, which contains characters illegal on Windows filesystems. This release introduces a three-layer filename sanitization pipeline to handle this and similar edge cases robustly.
🐛 Bug Fixes
- X/Twitter image download failure — Extension-provided filenames containing URL query parameters (e.g.
G9v9wWdasAYNqt9?format=jpg&name=large) no longer crash aria2 on Windows witherrorCode=16
🛠 Improvements
- Smart external filename hint validation — New resolveExternalFilenameHint compares the extension's filename against the URL basename; if they match and have no extension, the hint is discarded and resolve_filename HEAD request infers the correct name via Content-Type MIME mapping (e.g. →
G9v9wWdasAYNqt9.jpg) - Filesystem-safe out sanitization — New sanitizeAria2OutHint replaces illegal characters (
/ \ : * ? " < > |), strips control characters, and removes trailing dots/spaces from all out values - Industry-standard Rust safety boundary — sanitize_out_option now uses the
sanitize-filenamecrate (same character set as Chrome'sfilename_util.cc) for Windows reserved name rejection, control character removal, and 255-byte truncation
📦 Downloads
| Platform | Architecture | File |
|---|---|---|
| macOS | Apple Silicon · Intel | .dmg
|
| Windows | x64 · ARM64 | -setup.exe
|
| Linux | x64 · ARM64 | .AppImage .deb
|