1.5 KiB
FAIL
apps/ely-doc/src/output.rs:114 — The open-source export guard compares canonical paths through save::holder; different hard-link paths to the same file pass the guard. Reproducer on macOS with the real worker: open the 1,243-byte long.fodt fixture, create alias.pdf with std::fs::hard_link(&source, &alias), and call export_to with that alias. Export succeeds and the still-open source becomes a 26,002-byte file starting with %PDF-1.7. This reproduces in two isolated runs and leaves R1's source-preservation defect open for hard-link aliases. Fix direction: compare filesystem file identities against open sources, propagate identity-read failures, and add a hard-link source-preservation regression through export_to.
apps/ely-doc/src/navigate.rs:160 — going survives completion of its jump, so a later manual return to its original cursor is mistaken for a jump still in flight. Reproducer with the real worker: start at (1418, 1658, 0, 414), jump to the second heading and wait for completion, manually click back at the original cursor and wait, then jump to page three and invoke Back. History stores the second heading (1418, 17542, 9971, 275) and Back actually lands at y=17542, although this jump left from y=1658. Both isolated runs fail; DOC-16's return-to-original-position contract breaks. Fix direction: retire pending-jump state when its input and cursor update complete, invalidate it after manual movement, and cover a completed jump followed by manual return, another jump, and Back.