Skip to content

Applying a native editor preset replaces or clears the current caption text #3310

Description

@AksharP5

Description

Applying a native desktop editor preset can replace a recording's caption text with another recording's transcript, or clear its saved caption source when the preset has no captions.

Presets preserve the current timeline and clips, but replace the complete CaptionsData with the preset's copy. The editor then runs caption synchronization using that replaced source. Newly saved presets also contain the original recording's transcript.

Expected: a preset applies caption styling while retaining the current recording's text, word timings and source-timing mode. The built-in Default preset should also retain that source.

Reproduction

  1. Generate captions for recording A, then save an editor preset.
  2. Generate captions for a different recording B.
  3. Apply A's preset to B. The caption track now contains A's words.
  4. Alternatively, apply a preset saved without captions. B's caption source is removed. Native projects without a legacy captions sidecar cannot restore it simply by re-enabling captions.

The production preset functions followed by the real cap_project::synchronize_captions reproduce both cases:

Current recording / applied preset Current main Fixed behavior
Current recording / preset containing Other recording Track reads Other recording Track reads Current recording; preset style applies
Captioned recording / uncaptioned preset Caption source becomes absent Caption source retained; default caption settings apply
Captioned recording / built-in Default Caption source becomes absent Caption source retained; default caption settings apply
Save a preset from a captioned recording Preset JSON contains transcript text Preset stores caption settings without transcript text

Additional Context

The same saved presets are consumed by CLI upload automations: cap upload existing.cap triggers UploadCompleted and can run ApplyPreset against a captioned project. The original CLI method at 9960049 also reproduces replacing the caption source with foreign text, emptying it when using a newly saved GPUI preset, and discarding current clip offsets. The follow-up shares the preservation merge between the GPUI editor and CLI; actual project IO and caption synchronization verify save/reopen behavior.

Activity

  1. linear commented on Oct 26, 2026

    @linear
  2. added a commit that references this issue on Oct 26, 2026
    df3e82f
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions