Fix broken hand-off workflows across recordings and annotations
Four defects that all shared a shape: work or feedback that quietly went nowhere. Recordings were saved and copied without their cursor. Captures record with showsCursor = false and reconstruct the pointer at render time, and the camera stays a separate movie, so a session's raw screen master is never what the user saw. Only CloudUploader flattened it first; after-capture Save/Copy, the overlay card's Save/Copy, the save panel, and History's Copy all handed over the raw file. RecordingDeliverable is now the single gate they all pass through, with a "Preparing" state on the card while a render is needed and the card marked engaged so auto-close cannot interrupt it. The annotation editor discarded everything on close. Only the Done button persisted; closing with Cmd-W or the red X ran releaseEditorResources and lost every shape, the background, and the crop, with no prompt. Commit logic that was duplicated across Done and Upload is now one commitEdits() that Done, Cmd-S, Upload, and the close prompt all use. StudioCloseGuard becomes EditorCloseGuard and is shared by both editors. Cloud upload failures in Settings > History printed to the console and nothing else. That list has no card or badge to carry the news, so an upload could die and never produce a link or a reason. FailureAlert covers those paths. VideoEditorWindow was unreachable, and with it VideoCompressionService, VideoTrimExportService, VideoTrimTimelineView, FFmpegToolLocator, and HistoryWindow. Removed. VideoTrimExportError.invalidRange survives in VideoTrimSelection because the live Studio exporters still throw it. Also: flattening and the cloud transcript sidecar read the last saved document rather than the draft, so an upload and its transcript could disagree with the editor; deleting a recording from History now refreshes the projects browser. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
F
Fayaz Ahmed committed
892606820101ead182b0f29e0692e08da80e8772
Parent: f0c4516