Skip to content

fix(studio): glue API coexistence continuation#2290

Open
miguel-heygen wants to merge 2 commits into
mainfrom
recovery/pr14-live
Open

fix(studio): glue API coexistence continuation#2290
miguel-heygen wants to merge 2 commits into
mainfrom
recovery/pr14-live

Conversation

@miguel-heygen

Copy link
Copy Markdown
Collaborator

Continuation of #2205 rebased onto live main. Preserves glue/API commit and removes only confirmed dead action props; fallow conflict resolved by retaining live main canonical config.

ukimsanov and others added 2 commits July 12, 2026 05:53
What: extends 21 glue files so the OLD timeline/canvas engine and the NEW
NLE components type-check side by side: playerStore (multi-select setters,
zoom pin, snap toggle, non-reactive scale scratch), drag-state types gain
optional NLE fields, timelineLayout/timelineAssetDrop/timelineEditingHelpers/
timelineEditing/timelineElementHelpers/studioHelpers/assetHelpers gain the
NLE exports, DomEditOverlay + gestures + AssetContextMenu + Timeline props
gain optional callbacks/params, contexts gain *Optional hooks, and
TimelineEditCallbacks.onMoveElements becomes a bivariant method accepting
both engines' change shapes. patchDocumentRootDuration's test rides along.

Why: this is the keystone that dissolves the old "welded glue" problem —
every symbol the NLE components need is ADDED next to what the old engine
still uses, so the engine components and the swaps can land as separate
reviewable PRs.

How: 15 authored intermediate files (main content + additive symbols; no
behavior changes — new fields optional, new callbacks unused until wired)
plus 6 files whose final content is already purely additive. New exports
without consumers yet carry TEMP(studio-dnd) ignoreExports entries, removed
by the app-shell swap.

Test plan: tsc --noEmit in studio + studio-server (verifies BOTH engines
compile); bunx vitest run (full suite green incl. the 6 new
patchDocumentRootDuration tests); fallow audit clean.
@github-actions

Copy link
Copy Markdown

Fallow audit report

Found 44 findings.

Dead code (31)
Severity Rule Location Description
major fallow/unused-export packages/studio/src/components/editor/domEditOverlayGeometry.ts:228 Export 'overlayCornersCentroid' is never imported by other modules
major fallow/unused-export packages/studio/src/components/editor/domEditOverlayGeometry.ts:246 Export 'elementCornerOverlayPoints' is never imported by other modules
major fallow/unused-export packages/studio/src/components/editor/domEditOverlayGeometry.ts:325 Export 'orientedOverlayRect' is never imported by other modules
major fallow/unused-export packages/studio/src/components/editor/manualOffsetDrag.ts:489 Export 'applyManualOffsetNudgeDraft' is never imported by other modules
major fallow/unused-export packages/studio/src/components/editor/manualOffsetDrag.ts:503 Export 'applyManualOffsetNudgeCommit' is never imported by other modules
major fallow/unused-export packages/studio/src/components/sidebar/AssetContextMenu.tsx:84 Export 'DeleteConfirm' is never imported by other modules
major fallow/unused-export packages/studio/src/components/sidebar/assetHelpers.ts:42 Export 'truncateMiddle' is never imported by other modules
major fallow/unused-export packages/studio/src/components/sidebar/assetHelpers.ts:54 Export 'formatDuration' is never imported by other modules
major fallow/unused-export packages/studio/src/contexts/DomEditContext.tsx:106 Export 'useDomEditActionsContextOptional' is never imported by other modules
major fallow/unused-export packages/studio/src/contexts/StudioContext.tsx:64 Export 'useStudioShellContextOptional' is never imported by other modules
major fallow/unused-export packages/studio/src/hooks/timelineEditingHelpers.ts:641 Export 'patchIframeRootDuration' is never imported by other modules
major fallow/unused-export packages/studio/src/hooks/timelineEditingHelpers.ts:659 Export 'shiftGsapPositionsBatch' is never imported by other modules
major fallow/unused-export packages/studio/src/hooks/timelineEditingHelpers.ts:703 Export 'syncTimingEditPreview' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineEditing.ts:536 Export 'applyTimelineAutoScrollStep' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineEditing.ts:559 Export 'resolveTimelineAutoScrollLoopAction' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineEditing.ts:578 Export 'resolveTimelineDragEscape' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineLayout.ts:267 Export 'getTimelineRowTop' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineLayout.ts:276 Export 'getTimelineRowFromY' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineLayout.ts:286 Export 'DRAG_EXTEND_MARGIN_PX' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineLayout.ts:294 Export 'getTimelineFitPps' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineLayout.ts:309 Export 'getTimelineDisplayContentWidth' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineLayout.ts:336 Export 'TRACKS_TOP_PAD' is never imported by other modules
major fallow/unused-export packages/studio/src/player/components/timelineLayout.ts:346 Export 'MIN_TIMELINE_EXTENT_S' is never imported by other modules
major fallow/unused-export packages/studio/src/player/lib/timelineElementHelpers.ts:26 Export 'readTimelineElementZIndex' is never imported by other modules
major fallow/unused-export packages/studio/src/player/lib/timelineElementHelpers.ts:72 Export 'furthestClipEndFromDocument' is never imported by other modules
major fallow/unused-export packages/studio/src/player/lib/timelineElementHelpers.ts:99 Export 'furthestClipEndFromSource' is never imported by other modules
major fallow/unused-export packages/studio/src/utils/studioHelpers.ts:312 Export 'resolveDroppedAssetDimensions' is never imported by other modules
major fallow/unused-export packages/studio/src/utils/timelineAssetDrop.ts:150 Export 'setCompositionDurationToContent' is never imported by other modules
major fallow/unused-export packages/studio/src/utils/timelineAssetDrop.ts:159 Export 'extendCompositionDurationIfNeeded' is never imported by other modules
major fallow/unused-export packages/studio/src/utils/timelineAssetDrop.ts:172 Export 'fitTimelineAssetGeometry' is never imported by other modules
major fallow/unused-export packages/studio/src/utils/timelineAssetDrop.ts:190 Export 'resolveTimelineAssetCompositionSize' is never imported by other modules
Duplication (8)
Severity Rule Location Description
minor fallow/code-duplication packages/studio/src/hooks/timelineEditingHelpers.ts:561 Code clone group 1 (13 lines, 2 instances)
minor fallow/code-duplication packages/studio/src/hooks/timelineEditingHelpers.ts:584 Code clone group 1 (13 lines, 2 instances)
minor fallow/code-duplication packages/studio/src/player/components/Timeline.tsx:486 Code clone group 2 (40 lines, 2 instances)
minor fallow/code-duplication packages/studio/src/player/components/TimelineCanvas.tsx:109 Code clone group 2 (40 lines, 2 instances)
minor fallow/code-duplication packages/studio/src/player/components/useTimelineClipDrag.ts:307 Code clone group 3 (14 lines, 2 instances)
minor fallow/code-duplication packages/studio/src/player/components/useTimelineMarqueeSelection.ts:155 Code clone group 3 (14 lines, 2 instances)
minor fallow/code-duplication packages/studio/src/utils/timelineAssetDrop.ts:86 Code clone group 4 (12 lines, 2 instances)
minor fallow/code-duplication packages/studio/src/utils/timelineAssetDrop.ts:191 Code clone group 4 (12 lines, 2 instances)
Health (5)
Severity Rule Location Description
minor fallow/high-crap-score packages/studio/src/components/editor/domEditOverlayGeometry.ts:246 'elementCornerOverlayPoints' has CRAP score 31.6 (threshold: 30.0, cyclomatic 10)
minor fallow/high-cognitive-complexity packages/studio/src/components/editor/manualOffsetDrag.ts:328 'createManualOffsetDragMember' has cognitive complexity 17 (threshold: 15)
minor fallow/high-crap-score packages/studio/src/player/components/timelineEditing.ts:578 'resolveTimelineDragEscape' has CRAP score 31.6 (threshold: 30.0, cyclomatic 10)
minor fallow/high-cognitive-complexity packages/studio/src/player/lib/timelineElementHelpers.ts:124 'applyMediaMetadataFromElement' has cognitive complexity 20 (threshold: 15)
minor fallow/high-crap-score packages/studio/src/player/lib/timelineElementHelpers.ts:316 'nodeMatchesManifestClip' has CRAP score 43.1 (threshold: 30.0, cyclomatic 12)

Generated by fallow.

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.

2 participants