Skip to content

fix: keep captions and keyboard overlays synced after timeline edits - #2251

Merged
richiemcilroy merged 3 commits into
mainfrom
fix/editor-keyboard-caption-sync
Sep 8, 2026
Merged

fix: keep captions and keyboard overlays synced after timeline edits#2251
richiemcilroy merged 3 commits into
mainfrom
fix/editor-keyboard-caption-sync

Conversation

@richiemcilroy

@richiemcilroy richiemcilroy commented Sep 8, 2026

Copy link
Copy Markdown
Member

Cutting or deleting footage could leave keyboard overlays on recording time, and regenerating them included removed events. Captions could also drift when takes contained silence or when preview/export loaded stale derived tracks.

Keyboard capture events now project through the edited timeline before grouping and render on output time. Cut, speed, split, transition and fullscreen-hold edits preserve individual key timing. Regeneration waits for the latest saved timeline, rejects stale results, and works in both desktop editors. Legacy tracks migrate with authored text/styles preserved, removed keys filtered, and exact old cut results recognized to avoid applying the shift twice.

Captions share source-to-edit projection for editor load, previews and export. Transcription audio retains silent take durations and track offsets; GPUI caption edits update source data. Deleting a whole clip preserves neighboring transition-overlap events, and cuts preserve surviving camera keyframe times and sampled boundary poses.

Validation: 111 isolated project tests, 41 audio tests, keyboard renderer, frontend timing, preview and GPUI persistence regressions passed. Desktop TypeScript, scoped Biome, workspace formatting, shared Rust strict Clippy and Tauri/GPUI checks passed. The current uncommitted v0.6 integration was checked separately. The isolated GPUI check used a validation-only resolved lock for the existing local zed-cap patch; committed lockfiles are unchanged. A pre-existing GPUI mask-lane test failure remains outside this change.

Windows 11 packaged playback/export and an actual ASR run remain release verification gates. This PR isolates the fix from other uncommitted release work.

Fixes #2152

RetriggerView in GreptileConfidence Score: 5/5

The PR appears safe to merge; the previous camera-motion and legacy-keyboard findings are resolved, and no actionable regression was found in the follow-up changes.

Summary

  • Projects captured keyboard events through cuts, speed changes, transitions, clip moves, splits, and fullscreen holds.
  • Synchronizes source-timed captions for editor loading, preview, persistence, and export.
  • Preserves silent take durations and track offsets during transcription.
  • Adds stale-generation protection and native keyboard regeneration support.
  • Corrects camera keyframe and auxiliary-track ripple behavior when footage is deleted.

@richiemcilroy

Copy link
Copy Markdown
Member Author

hey @greptileai, please re-review the PR

Comment thread apps/desktop-gpui/src/editor_edits.rs Outdated
Comment thread crates/rendering/src/layers/keyboard.rs
@richiemcilroy

Copy link
Copy Markdown
Member Author

hey @greptileai, please re-review the PR

@richiemcilroy
richiemcilroy merged commit 298e268 into main Sep 8, 2026
30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sync Issue

1 participant