Skip to content

feat(studio): timeline interaction hooks and lanes component (unwired)#2207

Closed
ukimsanov wants to merge 1 commit into
studio-dnd/pr15-clip-drag-enginefrom
studio-dnd/pr16-timeline-interaction-hooks
Closed

feat(studio): timeline interaction hooks and lanes component (unwired)#2207
ukimsanov wants to merge 1 commit into
studio-dnd/pr15-clip-drag-enginefrom
studio-dnd/pr16-timeline-interaction-hooks

Conversation

@ukimsanov

@ukimsanov ukimsanov commented Jul 11, 2026

Copy link
Copy Markdown
Collaborator

What

the timeline-side wiring layer, unwired: TimelineLanes (the lane renderer driving drag/resize/marquee), timelineMarquee (+tests), useTimelineStackingSync, useTimelineGeometry, useTimelineEditPinning, useTimelineEditingDrops.

Why

everything between the pure drag math and itself; the timeline-glue swap PR then only rewires Timeline/TimelineCanvas onto these.

How

new files, tsc-clean against the coexistence layer. Unwired components carry TEMP(studio-dnd) entry registrations, removed at the app-shell swap.

Test plan

bunx vitest run timelineMarquee.test.ts; tsc --noEmit; fallow audit clean.


Stack position 16/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 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 from de842df to 4500814 Compare July 11, 2026 10:49
@ukimsanov ukimsanov force-pushed the studio-dnd/pr16-timeline-interaction-hooks branch 3 times, most recently from c40be0a to f81114c Compare July 11, 2026 21:08
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch 2 times, most recently from 8913566 to f0b490b Compare July 11, 2026 22:38
@ukimsanov ukimsanov force-pushed the studio-dnd/pr16-timeline-interaction-hooks branch from f81114c to e887f6a 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.

Current required CI is not clean: preview-regression is failing at head e887f6a. Please rerun/fix and re-request review once green.

@ukimsanov ukimsanov force-pushed the studio-dnd/pr16-timeline-interaction-hooks branch from e887f6a to cf2e6d5 Compare July 11, 2026 23:26
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch 2 times, most recently from 5868b89 to 37dcb0b Compare July 12, 2026 01:03
@ukimsanov ukimsanov force-pushed the studio-dnd/pr16-timeline-interaction-hooks branch from cf2e6d5 to dd3fb70 Compare July 12, 2026 01:03
@ukimsanov ukimsanov force-pushed the studio-dnd/pr15-clip-drag-engine branch from 37dcb0b to 3a5a5d6 Compare July 12, 2026 01:23
@ukimsanov ukimsanov force-pushed the studio-dnd/pr16-timeline-interaction-hooks branch from dd3fb70 to 6f66a32 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.

@miguel-heygen miguel-heygen dismissed their stale review July 12, 2026 02:38

Superseded by current-head re-review; findings verified addressed.

What: the timeline-side wiring layer, unwired: TimelineLanes (the lane
renderer driving drag/resize/marquee), timelineMarquee (+tests),
useTimelineStackingSync, useTimelineGeometry, useTimelineEditPinning,
useTimelineEditingDrops.

Why: everything between the pure drag math and <Timeline> itself; the
timeline-glue swap PR then only rewires Timeline/TimelineCanvas onto these.

How: new files, tsc-clean against the coexistence layer. Unwired components
carry TEMP(studio-dnd) entry registrations, removed at the app-shell swap.

Test plan: bunx vitest run timelineMarquee.test.ts; 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