fix: keep captions and keyboard overlays synced after timeline edits - #2251
Merged
Conversation
Member
Author
|
hey @greptileai, please re-review the PR |
Member
Author
|
hey @greptileai, please re-review the PR |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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
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