feat(studio): timeline interaction hooks and lanes component (unwired)#2207
Closed
ukimsanov wants to merge 1 commit into
Closed
feat(studio): timeline interaction hooks and lanes component (unwired)#2207ukimsanov wants to merge 1 commit into
ukimsanov wants to merge 1 commit into
Conversation
This was referenced Jul 11, 2026
Collaborator
Author
This was referenced Jul 11, 2026
c297603 to
7fccf6c
Compare
09f11b9 to
a664a07
Compare
7fccf6c to
b7eee0d
Compare
miga-heygen
reviewed
Jul 11, 2026
miga-heygen
left a comment
Contributor
There was a problem hiding this comment.
Reviewed as part of the 25-PR NLE overhaul stack. Full stack review on #2205 (the keystone). No blockers on this PR. — Miga
de842df to
4500814
Compare
c40be0a to
f81114c
Compare
8913566 to
f0b490b
Compare
f81114c to
e887f6a
Compare
miguel-heygen
previously requested changes
Jul 11, 2026
miguel-heygen
left a comment
Collaborator
There was a problem hiding this comment.
Current required CI is not clean: preview-regression is failing at head e887f6a. Please rerun/fix and re-request review once green.
e887f6a to
cf2e6d5
Compare
5868b89 to
37dcb0b
Compare
cf2e6d5 to
dd3fb70
Compare
37dcb0b to
3a5a5d6
Compare
dd3fb70 to
6f66a32
Compare
miguel-heygen
approved these changes
Jul 12, 2026
miguel-heygen
left a comment
Collaborator
There was a problem hiding this comment.
Re-reviewed current head and verified the addressed feedback and required behavior. Approval is for this exact head; Graphite mergeability may still be pending.
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.
3a5a5d6 to
874e6d8
Compare
6f66a32 to
27b9804
Compare
This was referenced Jul 12, 2026
This was referenced Jul 12, 2026
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.

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.