storytold/wordcraft is an open-source project that reimplements Microsoft Word in pure Rust. The 2026-11-07 commit 595cddaaeff115e11ae7f7d524ecc71b3e53abe6 looked at the way images inside documents are read and saved. When a frame holding an image presents several formats together, it now picks the first readable image, and keeps that image when saving to a file later.
This change addresses a problem that surfaced in ODT (word processor documents based on the Open Document Format) files saved by LibreOffice. LibreOffice writes the same image both as a .svm metafile and as a PNG, but WordCraft grabbed whatever came first in the list. So when an unreadable format came first, the image was not visible, and it disappeared when paragraphs generated by the model were written to the file. Now it chooses the first readable image according to the preference order that the frame indicates. In addition, even when an unreadable replacement image (replacement) comes first, it displays and saves the readable image behind it, and it does not discard the replacement image before the object appears but keeps it.
The change spans 7 files, including the ODT body parser (body.rs, body/drawing.rs), the writer (writer/drawing.rs), tests (floats.rs, objects.rs), and the format parity document (docs/file-format-parity.md). 155 lines added, 10 lines deleted. That said, this commit deals with only one ODT image handling item, which the commit message calls 'gap 19'. The commit states that the problem was found in a CodeRabbit review, and that placeholders (placeholder) are still not recorded. The ROADMAP document lists the stage as alpha and the next goal as beta, and gives readiness estimates of ~15 points (actual work readiness 60% → 75%) and ~150–230 h. Validation results for formats other than ODT are not included in this commit.