# feat: the editor records ops and the app saves them · clo/snowbound

[View on GitCafe](https://git.cafe/clo/snowbound/commit/ed9e69d6d927206decb398664df5f135e7244603)

Repository: [clo/snowbound](https://git.cafe/clo/snowbound)

Visibility: public

Requested revision: ed9e69d6d927206decb398664df5f135e7244603

Requested commit: ed9e69d6d927206decb398664df5f135e7244603

Commit: ed9e69d6d927206decb398664df5f135e7244603

Tree: a7035fa2e8cf0c5f4d404c706ea49e38c502ce51

Author: clover caruso

Committer: clover caruso

## Message

```
feat: the editor records ops and the app saves them

Every editor change records the ops it made at edit time, and undo records the
ops its inverse produces, restoring original identities. The app hands one
Edit per frame to the notebook session, so the per-edit whole-page read and
compare is gone; a keystroke on a 3000-paragraph page records in ~18 µs. Across
~56,000 differential steps the ops store the same page as the old whole-page
path. Our own publishes never refresh the open page; a real remote change
refreshes it in place, keeping caret, selection, scroll, drafts and the undo
history it did not reach. A rejected edit restores the saved page and puts the
text on the clipboard. Page dates save as OneNote 2010 stores them (new
corpus/page-date row), page reads never wait behind a rebase, and the iOS host
drains its edits.

Assisted-by: claude-opus-5.5
Assisted-by: claude-opus-5

```

## Parents

- [4292e4deb721a9526b18e9d9385d225c033b245c](https://git.cafe/clo/snowbound/commit/4292e4deb721a9526b18e9d9385d225c033b245c?format=markdown)

[Source at this commit](https://git.cafe/clo/snowbound/tree/ed9e69d6d927206decb398664df5f135e7244603?format=markdown)
