Skip to content

perf(studio): stabilize virtualized keyframe retiming#2705

Draft
miguel-heygen wants to merge 1 commit into
codex/studio-timeline-e-clip-gestures-v2from
codex/studio-timeline-e-keyframe-retiming-v2
Draft

perf(studio): stabilize virtualized keyframe retiming#2705
miguel-heygen wants to merge 1 commit into
codex/studio-timeline-e-clip-gestures-v2from
codex/studio-timeline-e-keyframe-retiming-v2

Conversation

@miguel-heygen

@miguel-heygen miguel-heygen commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator

What

Make keyframe retiming deterministic across virtualized timeline renders.

Why

Pointer previews can outlive the diamond DOM node that started a drag. Without stable gesture identity and cleanup, rejected or interrupted retimes can leak pending state into a later drag or commit the wrong keyframe.

How

  • Keep retime preview identity independent from mounted diamond nodes.
  • Scope pending and commit state to one gesture session and clear it on every terminal path.
  • Preserve dense-diamond overlap behavior and add StrictMode retime-preview regression coverage.

This is E2 of the independent Family E draft Graphite stack, stacked only on E1 and the immutable Family D review baseline.

Test plan

  • Unit tests added/updated
  • Manual testing performed
  • Documentation updated (not applicable)

Validated on the exact Family E tip with 130 focused interaction tests, 3 timeline virtualization tests, the full Studio suite (2,991 passed; 18 todos), Studio typecheck/build, the full workspace build, oxfmt, oxlint, diff hygiene, and file-size/Fallow gates.

miguel-heygen commented Jul 21, 2026

Copy link
Copy Markdown
Collaborator Author

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.

1 participant