* fix(recovery): snapshot a document only once it has unsaved edits Opening a document lays it out, which bumps the scene version, so crash recovery wrote a full .fig snapshot of every document opened from a file without a writable source, edited or not. For the 401 MiB file from #924 that copied the whole archive a few seconds after opening and killed the tab. Recovery now asks the document's change tracking, which ignores layout, whether anything is unsaved. * fix(recovery): store snapshots as Blobs so large documents fit Chromium refuses a single IndexedDB value over 127 MiB, so a snapshot of any larger document failed and recovery fell back to memory for the rest of the session, holding another copy of the document. A Blob is kept as a file at any size: a 421 MB snapshot now writes in IndexedDB. Writes also no longer copy the archive first, and snapshots stored as byte arrays by earlier versions still read back. * test(recovery): drop the scene version from the large-buffer snapshot |
||
|---|---|---|
| .. | ||
| app | ||
| e2e | ||
| engine | ||
| figma | ||
| fixtures | ||
| helpers | ||
| integration | ||
| AGENTS.md | ||