feat: bullet and numbered lists, and undo across saves (engine + routes)

↗ view on GitHub · Ethan Ward · 2026-08-19 · 9ddfc71a

Lists: a paragraph can be marked as a bullet or numbered item. The list
definitions are written into word/numbering.xml and the part is registered
in the package when a document has none, so Word renders the list. A
document that already defines its own numbering keeps it - ours is added
beside it with unused ids. Consecutive items of the same kind share one
numId, so a numbered run counts 1, 2, 3. Clearing the list removes w:numPr.

Undo: POST /single-documents/:documentId/undo-edit restores the bytes of
the version preceding the current one and makes that current, so a save
can be stepped back without destroying later history.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018RCY6K4dNwdbo9gU3HQ9un
Repository wardethan2000-eng/mike
Author Ethan Ward <ethanward321@hotmail.com>
Authored
Parents 49a6b5a3
Stats 3 files changed , +556 , -3
Part of In-app DOCX editor

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-9ddfc71a.md from inside the repo you want the change in.

⬇ Download capture-commit-9ddfc71a.md