Skip to content

feat(studio): clip drag engine — preview and commit (unwired)#2206

Merged
miguel-heygen merged 1 commit into
studio-dnd/pr14-glue-api-coexistencefrom
studio-dnd/pr15-clip-drag-engine
Jul 12, 2026
Merged

feat(studio): clip drag engine — preview and commit (unwired)#2206
miguel-heygen merged 1 commit into
studio-dnd/pr14-glue-api-coexistencefrom
studio-dnd/pr15-clip-drag-engine

Conversation

@ukimsanov

@ukimsanov ukimsanov commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

What

the NLE clip-drag engine core: timelineClipDragPreview (zone-aware preview placement; keeps the legacy resolveDragPreviewPlacement export until the timeline swap), timelineClipDragCommit (drop → move/insert commit, stacking-synced) and timelineElementsMove (batched ripple/insert move with GSAP position shifting), with test suites.

Why

the drag-drop brain, reviewable as functions before any component mounts it.

How

new files plus one authored intermediate (preview file = final content + legacy export the old engine still imports); consumes the collision/ snapping/zones/stacking modules and the coexistence layer.

Test plan

bunx vitest run on both test suites; tsc --noEmit; fallow audit clean.


Stack position 15/25 — studio NLE overhaul (CapCut-parity timeline + canvas). Graphite manages bases; merge from #2192 upward. Temporary TEMP(studio-dnd) fallow entries (unwired-component windows) are all removed by #2213 (app-shell swap), whose tree is byte-identical to the fully-verified integration branch.

Merge invariant: #2206#2213 land as ONE ordered unit — no cherry-picks, no deploys between #2211#2213 (review-fix foliation concentrates engine wiring at #2213; seam evidence in the #2205 thread).

ukimsanov commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator Author

Warning

This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

This stack of pull requests is managed by Graphite. Learn more about stacking.

@miga-heygen miga-heygen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed as part of the 25-PR NLE overhaul stack. Full stack review on #2205 (the keystone). No blockers on this PR. — Miga

@ukimsanov ukimsanov force-pushed the studio-dnd/pr14-glue-api-coexistence branch from a2f4dd0 to 7d93612 Compare July 11, 2026 02:56
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch 2 times, most recently from 0d3d115 to de842df Compare July 11, 2026 08:18
@ukimsanov ukimsanov force-pushed the studio-dnd/pr14-glue-api-coexistence branch from 7d93612 to dbb7d62 Compare July 11, 2026 08:18
@ukimsanov ukimsanov marked this pull request as ready for review July 11, 2026 09:06
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch 2 times, most recently from 4500814 to 61bd37e Compare July 11, 2026 12:51
@ukimsanov ukimsanov force-pushed the studio-dnd/pr14-glue-api-coexistence branch from 0a4df4f to 4675cb9 Compare July 11, 2026 12:51
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch from 61bd37e to 8913566 Compare July 11, 2026 21:08
@ukimsanov ukimsanov force-pushed the studio-dnd/pr14-glue-api-coexistence branch from 4675cb9 to 6be93e9 Compare July 11, 2026 21:08
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch from 8913566 to f0b490b Compare July 11, 2026 22:38

@miguel-heygen miguel-heygen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-review at current head f0b490b: clip-drag engine boundaries and regression tests remain intact; required checks green. Approving.

@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch from f0b490b to 5868b89 Compare July 11, 2026 23:26
@ukimsanov ukimsanov force-pushed the studio-dnd/pr14-glue-api-coexistence branch 2 times, most recently from 4c1399b to fc1973d Compare July 12, 2026 01:03
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch from 5868b89 to 37dcb0b Compare July 12, 2026 01:03
@ukimsanov ukimsanov force-pushed the studio-dnd/pr14-glue-api-coexistence branch from fc1973d to ee487d0 Compare July 12, 2026 01:22
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch from 37dcb0b to 3a5a5d6 Compare July 12, 2026 01:23

@miguel-heygen miguel-heygen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed current head and verified the addressed feedback and required behavior. Approval is for this exact head; Graphite mergeability may still be pending.

What: the NLE clip-drag engine core: timelineClipDragPreview (zone-aware
preview placement; keeps the legacy resolveDragPreviewPlacement export until
the timeline swap), timelineClipDragCommit (drop → move/insert commit,
stacking-synced) and timelineElementsMove (batched ripple/insert move with
GSAP position shifting), with test suites.

Why: the drag-drop brain, reviewable as functions before any component
mounts it.

How: new files plus one authored intermediate (preview file = final content
+ legacy export the old engine still imports); consumes the collision/
snapping/zones/stacking modules and the coexistence layer.

Test plan: bunx vitest run on both test suites; tsc --noEmit; fallow audit
clean.
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.

4 participants