Skip to content

@remotion/studio: Remove timeline sequence hashes - #9701

Merged
JonnyBurger merged 3 commits into
mainfrom
codex/remove-timeline-sequence-hash
Jul 27, 2026
Merged

@remotion/studio: Remove timeline sequence hashes#9701
JonnyBurger merged 3 commits into
mainfrom
codex/remove-timeline-sequence-hash

Conversation

@JonnyBurger

Copy link
Copy Markdown
Member

Summary

  • remove rootId from timeline contexts and sequence registrations now that Studio has one active preview root
  • remove sequence hashing and cross-root deduplication from timeline calculation
  • keep runtime sequence IDs for registration, parent relationships, and React keys
  • remove the legacy captured test that combined thumbnail-era roots

Testing

  • bun test for the affected Studio timeline suites (188 tests)
  • bun test for the affected core sequence suites (52 tests)
  • bun run build
  • bun run stylecheck

@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
bugs Ready Ready Preview, Comment Jul 27, 2026 9:39am
remotion Ready Ready Preview, Comment Jul 27, 2026 9:39am

Request Review

@pullfrog pullfrog Bot 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.

Important

A stale rootId reference in packages/gif/src/test/Gif.test.tsx will cause a TypeScript error after removing rootId from TimelineContextValue.

Reviewed changes — removes the timeline sequence hashing and rootId deduplication system now that Studio has a single active preview root, and renames the remaining track types for clarity.

  • Remove rootId from TSequence and TimelineContextValue — no longer passed in Sequence.tsx, useMediaInTimeline, TimelineContextProvider, Player, or Thumbnail.
  • Delete getTimelineSequenceHash — the deduplication-by-hash logic and the uniqueTracks loop in calculate-timeline are removed since every sequence now maps to exactly one track.
  • Simplify getTimelineSequenceSortKey — drops the hash-based parent lookup in favor of direct parent field traversal; nonceRanks is now a required parameter.
  • Rename typesTrackWithHashTimelineTrackData, TrackWithHashAndOriginalTimingsTimelineTrackWithOriginalTimings, Track (inner) → exported TimelineTrackData.
  • Update all consumers across 34 files in core, player, studio, and test-utils, plus inline test fixture removals for rootId and hash fields.

⚠️ Stale rootId in packages/gif test — will not compile

packages/gif/src/test/Gif.test.tsx constructs a TimelineContextValue (via React.ContextType<typeof Internals.TimelineContext>) with a now-removed rootId property. The PR updated core, player, studio, and test-utils but missed this consumer in the gif package.

Technical details
# Stale `rootId` in `packages/gif` test

## Affected sites
- `packages/gif/src/test/Gif.test.tsx:97``rootId: 'test-root'` on a `TimelineContextValue` typed object

## Required outcome
- Remove the `rootId` line from the `timelineContext` object literal in `Gif.test.tsx`

## Suggested approach
Delete line 97 (`rootId: 'test-root',`) — identical to the cleanups performed in `packages/core/src/test/nested-sequences.test.tsx`, `series.test.tsx`, `wrap-sequence-context.tsx`, and `test-utils/src/timeline-context.ts`.

Note: 1 inline comment(s) dropped because they did not anchor to lines inside the PR diff:

  • packages/gif/src/test/Gif.test.tsx:97 (RIGHT) — file not in PR diff

Pullfrog  | Fix it ➔View workflow run | Using DeepSeek Pro (free via Pullfrog for OSS) (Claude Opus not used — the program covers this model; add its provider key to run your pick) | 𝕏

@JonnyBurger
JonnyBurger force-pushed the codex/remove-timeline-sequence-hash branch from dac7632 to 2bfcfff Compare July 27, 2026 09:27
@JonnyBurger
JonnyBurger merged commit 4128098 into main Jul 27, 2026
18 checks passed
@JonnyBurger
JonnyBurger deleted the codex/remove-timeline-sequence-hash branch July 27, 2026 09:40
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