Skip to content

perf(studio): stabilize virtualized clip gestures#2704

Draft
miguel-heygen wants to merge 1 commit into
codex/review-baseline/studio-timeline-family-d-v2from
codex/studio-timeline-e-clip-gestures-v2
Draft

perf(studio): stabilize virtualized clip gestures#2704
miguel-heygen wants to merge 1 commit into
codex/review-baseline/studio-timeline-family-d-v2from
codex/studio-timeline-e-clip-gestures-v2

Conversation

@miguel-heygen

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

Copy link
Copy Markdown
Collaborator

What

Stabilize clip move and resize gestures when timeline rows and clips are virtualized.

Why

Virtualization can unmount or recycle the surface that started a gesture. The gesture must keep one explicit session owner so preview, autoscroll, cancellation, and commit cannot drift or double-fire as the viewport changes.

How

  • Add a lifecycle actor that owns the active clip gesture, session epoch, scroll state, and cancellation.
  • Keep drag preview and commit identity stable across virtualized row/clip changes.
  • Cover cancellation, cleanup, StrictMode, and viewport-remount behavior with focused tests.

This is E1 of the independent Family E draft Graphite stack. Its review base is the immutable, PR-less Family D baseline; Families A-D do not need to merge for this PR to be reviewed.

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.

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