mirror of
https://github.com/storytold/wordcraft.git
synced 2026-10-22 19:53:15 -05:00
* A file name that isn't valid Unicode no longer crashes wordcraft-cli or the app (#1440) Both binaries read std::env::args(), which panics on a non-Unicode argument such as a Latin-1 file name. The CLI now reads args_os(): the file a command opens keeps its real name and opens (convert, info, text, inspect, render, zotero, run --file), and any other such argument is an error naming it, exit 1. The app leaves such a file out with a warning, as it does a file that fails to open, since file.open takes its path as text; a --control port that isn't valid Unicode exits 2. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * The app opens a file whose name isn't valid Unicode too (#1440) file.open takes its path as text but also accepts the file's bytes under a name, as dropped files use. The app reads such a file, opens its bytes under the lossy name and keeps the real path on the session, so Save writes back to it. A unit test covers the open and the save. The CLI test now checks that every command in OPENS_FILE reaches its open with the file, and no longer pins `pos` counting a `--page` value. ROADMAP says which saves go back to the file. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> * #1440: skip non-UTF-8 file name tests on macOS APFS refuses file names that aren't valid UTF-8, so the fixtures fail with "Illegal byte sequence" there, and the app-start test keeps running because macOS opens a window without a display variable. The unit test for the CLI's argument checks and the control-port test still run. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Brandon Thomas <echelon@gmail.com>