Files
hyperframes/packages
Miguel Ángel 4e118824b3 fix(studio-server): freeze still appears whole, so a slow extraction cannot break its undo (#4982)
* fix(studio-server): freeze still appears whole, so a slow extraction cannot break its undo

The freeze route reserved the still's final name with an empty file before
ffmpeg ran. When extraction outlasted the history's quiet time, history
committed that empty file as an outside change, and Cmd+Z then restored a
0-byte PNG. ffmpeg now writes under an atomic temp name the history skips,
and the still is published with createFileAtomically (EEXIST still refuses
a taken name).

* fix(core): a direct exclusive write that fails midway leaves no partial file

Without hard links, createFileAtomically writes the destination directly.
A full disk then left a partial file behind (a corrupt upload or freeze
still); it is now removed, and a name another writer holds is never
touched. Freeze tests: the slow-extraction test leaves a half-written temp
file while history commits, and concurrent extractions meet at a barrier
instead of a real timer.

* fix(core): a quota reported only at close still removes the partial file

* test(core): the direct write closes once and keeps its write error when cleanup fails

* test(core): a failed direct write closes its descriptor exactly once

* refactor(studio-server): freeze names carry what their comments said
2026-10-04 04:16:02 +00:00
..
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00
2026-10-03 19:25:43 -07:00