# feat: attachments, customize tags, typing undo runs, undoable background art, and iOS catch-up · clo/snowbound

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

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

Visibility: public

Requested revision: 91a2bf8cea7dd59ae56add4cee8bb968e653a439

Requested commit: 91a2bf8cea7dd59ae56add4cee8bb968e653a439

Commit: 91a2bf8cea7dd59ae56add4cee8bb968e653a439

Tree: 5282a37dbfda458e3174e9d68faac4001071af42

Author: clover caruso

Committer: clover caruso

## Message

```
feat: attachments, customize tags, typing undo runs, undoable background art, and iOS catch-up

- File attachments (#23): Attach File, drag and drop, open, and Save As, stored
  inline with a file-type icon as OneNote 2010 does; files on blank page are
  page-level objects that move, delete, and sync.
- Customize Tags (#8): OneNote's dialog with all 143 symbols and both palettes;
  the tag list lives in settings and drives the toolbar, menus, palette, and
  shortcuts; tag definitions store OneNote's status bits.
- Undo groups a run of typing until the caret moves or another edit, as
  OneNote 2010 does, on desktop and iOS.
- Background art is one undoable editor step that renders on the next frame,
  with an opaque backing that hides rule lines as OneNote's art does.
- Renderer: shadows are computed in the shader and the icon atlas evicts and
  grows instead of failing a frame.
- iOS: sync status and sheet, tags with the new artwork, Tags Summary, page
  background, cross-notebook search, and a replica creation race fix.
- An unset paragraph language is no longer written as language 0.

Assisted-by: claude-opus-5.5

```

## Parents

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

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