Skip to content

@remotion/studio-server: Fix deleting the last keyframe#7900

Merged
JonnyBurger merged 1 commit into
mainfrom
cursor/remove-last-keyframe-static-value-102c
Jun 1, 2026
Merged

@remotion/studio-server: Fix deleting the last keyframe#7900
JonnyBurger merged 1 commit into
mainfrom
cursor/remove-last-keyframe-static-value-102c

Conversation

@JonnyBurger
Copy link
Copy Markdown
Member

@JonnyBurger JonnyBurger commented May 31, 2026

Fixes #7898

Summary

  • Convert single-keyframe removals back to the removed static value instead of generating empty interpolate() calls.
  • Update optimistic keyframe deletion state to drop keyframed status when the final keyframe is removed.
  • Add regression coverage for sequence props, color props, effect props, and optimistic deletion.

Testing

  • bun test src/test/update-keyframes.test.ts in packages/studio-server
  • bun test src/test/optimistic-delete-keyframe.test.ts in packages/studio-shared
  • One-off codemod repro now outputs width: 320 instead of interpolate(frame, [], [])
  • bun run build
  • bun run formatting
  • bun run stylecheck (fails only on documented local Go 1.22.2 vs @remotion/lambda-go Go >= 1.23 requirement)
  • bun run lint in packages/studio-server
  • bun run lint in packages/studio-shared
  • bun run formatting in packages/studio-server
  • bun run formatting in packages/studio-shared

Manual UI note

  • Started packages/example Studio successfully, but browser preview manual testing is blocked in this VM by a WebGL/GPU error, so no UI artifact is attached.
Open in Web Open in Cursor 

Co-authored-by: Jonny Burger <hi@jonny.io>
@vercel
Copy link
Copy Markdown
Contributor

vercel Bot commented May 31, 2026

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

Project Deployment Actions Updated (UTC)
bugs Ready Ready Preview, Comment May 31, 2026 8:48pm
remotion Ready Ready Preview, Comment May 31, 2026 8:48pm

Request Review

Copy link
Copy Markdown
Contributor

@pullfrog pullfrog Bot left a comment

Choose a reason for hiding this comment

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

✅ No new issues found.

Reviewed changes — a focused bugfix for deleting the last keyframe on sequence, color, and effect props, plus regression tests.

  • update-keyframes.ts: removeKeyframe now returns the removed keyframe's static output expression when zero keyframes remain, instead of emitting an empty interpolate(frame, [], []) call.
  • optimistic-delete-keyframe.ts: removeKeyframeFromPropStatus now returns a canUpdate: true, codeValue status when the last keyframe is removed, instead of keeping a stale keyframed status.
  • Tests: Added regression coverage for sequence props, color props, effect props, and optimistic deletion.

Pullfrog  | View workflow run | Using Kimi K2𝕏

@JonnyBurger JonnyBurger merged commit e5a0a01 into main Jun 1, 2026
19 checks passed
@JonnyBurger JonnyBurger deleted the cursor/remove-last-keyframe-static-value-102c branch June 1, 2026 07:52
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.

Removing last keyframe should move to static value

2 participants