Razor/blade tool for splitting timeline clips with GSAP-aware keyframe preservation, plus GSAP drag intercept is now behind a feature flag (off by default) to fix buggy drag behavior on animated elements.
Features
- Studio: Razor/blade tool UI for timeline clip splitting (ef186139, #1331)
- Core: GSAP-aware split engine for timeline clip splitting (45d4a71e, #1330)
Fixes
Internal
View the full commit range.GIF support: render to GIF with two-pass palette encoding, and animated GIF inputs now play frame-synced via VP9 transcode. Plus new agent detection for Windsurf, Cline, Gemini CLI, and Crush.
Features
- Producer,core: Play animated GIF inputs frame-synced via prep-time VP9 transcode (edd85473, #1335)
- Cli,producer: Add gif output format with two-pass palette encode (e6b8d66c, #1333)
- CLI: Detect Windsurf, Cline, Gemini CLI, and Crush agents (e0ecd4d2, #1328)
- Producer: Optional targetChunkFrames to bound per-chunk frames (9b18fadc, #1332)
- Producer: Stage wall-clock split in chunk perf telemetry (69eac249, #1327)
- CLI: Detect Gemini managed-agent sandbox in detectAgentRuntime (0766eb81, #1294)
Internal
View the full commit range.Fixes audio dropout during playback (WebAudio source cleanup), muted video audio leak in renders, IEEE 754 frame-index precision, and keyframe editing stability.
Fixes
- Runtime: Preserve authored muted attr; clean up WebAudio on end (036b991c, #1319)
- Studio: Keyframe bug fixes — gate delete hooks, fix value corruption, gesture recording (f0b499b5, #1314)
- Engine: Add epsilon to frame index floor to prevent IEEE 754 boundary duplicates (3a72aa52, #1318)
- Producer: Don’t mix audio from muted videos into the render (8133d934, #1322)
Docs & Examples
Internal
- Shrink repo — untrack failure frames, recompress backgrounds, harden LFS (e845793c, #1326)
- Studio: Split oversized files to pass 600-line check (81416ab3, #1313)
Fixes a regression where Studio’s element stamping code ran during production renders, causing sub-composition elements to become incorrectly visible.
Fixes
- Core: Guard element stamping to iframe-only (Studio preview) (192417b7)
Studio keyframe system, render queue improvements, and GSAP parser arc path mutations. Feature-gated behind
VITE_STUDIO_ENABLE_KEYFRAMES.View the full commit range.Fixes a race condition where
audio-locked (and other bridge controls) were silently dropped on warm-cache reloads of claude.ai and inside the Claude desktop Electron client. The runtime now emits a ready handshake once its message listener is installed; the player replays current bridge state on receipt.Fixes
- Runtime,player: Replay bridge state on iframe ready to repair race (5a0966df)
Fixes
audio-locked attribute not surviving into the rendered DOM on Claude Desktop. Also ships the GCP Cloud Run distributed render adapter, font self-bundling for compositions, and several stability fixes.Features
- Player: Force audio lock on Claude desktop via UA fallback (cc45b1fa)
- Core: Implement createPreviewAdapter (R7, Task 3) (1a23938b, #1291)
- Core: Hf-id write-back to disk + serve-time surfacing (R7, Tasks 1-2) (740a83ab, #1289)
- Core: SourceMutation data-hf-id targeting (R1, T7) (1cd4ad6a, #1272)
- Studio: SourcePatcher data-hf-id targeting (R1, T3) (42c247d2, #1271)
- Core: Clip-model hf- ids minted at parse, emitted as data-hf-id (R1) (8d6b7cf5, #1270)
- Core: EnsureHfIds node-id pass + shared hf- mint helper (R1) (c12854b4, #1269)
- Font resolution pipeline — compositions capture and embed their own fonts (0bf15119, #1255)
- Gcp Cloud Run: Google Cloud Run + Workflows distributed render adapter (4da567df, #1253)
Fixes
- Core: Apply playbackRate to all media duration resolution sites (908b455e, #1288)
- Core: Account for playbackRate in media duration resolution (7b6c87fa, #1287)
- Producer: Revert Proxy-based wrapTimeline to plain-object approach (c12987e3, #1284)
- Release: Guard against non-monotonic tags (24279c8c, #1283)
- Core: Re-register hf-timelines-built listener in maybePublishRenderReady (1bcd6ec3, #1279)
Docs & Examples
- Mcp: Add Grok as a supported host (b4210f65, #1280)
- Mcp: Remove voiceover/TTS references and surface MCP guide in sidebar (b2be289d, #1278)
Catalog
- Catalog: Add motion-blur component (1fd1b316, #1274)
- Registry: Add morph-text component and text-effects catalog section (48fcf4ad, #1247)
Internal
- Core,studio: Extract draft-marker constants + R7 code-review fixes (Task 4) (3d7d7c02, #1292)
- Core: PreviewAdapter contract failing tests (T10 spec for R7) (72e4f1a0, #1286)
- Skip ffmpeg-static CDN download on ubuntu; retry Windows FFmpeg install (25420bf4, #1275)
- Core: Address review feedback on T6a / T10 / T7 stubs (63fd322d, #1268)
- Core,studio: Add T3+T7 hfId targeting stubs (spec for R1) (1e705b11, #1267)
- Core: Add T6a GSAP parser golden baselines (Recast/Babel snapshot) (184ef033, #1263)
- Core: Add T10 PreviewAdapter contract stubs (spec for R7) (1fdce71c, #1262)
- Core: Extract maxEndTime+serialize to parsers/test-utils.ts (TU) (ffc54c78, #1261)
- Studio: Add T5c review-fix gaps in manualEditsDomPatches characterization (5b29bea0, #1259)
- Studio: Add T5b rotation+motion build-patches characterization (63ff0c16, #1258)
- Studio: Add T5a pathOffset+boxSize build-patches characterization (19f46cd1, #1257)
- Remove plan docs and gitignore docs/plans/ (fc01717c, #1265)
- Core: Add T9 CompositionVariable font/image parse spec (before R1) (806b226b, #1246)
- Core: Add T2 stable id spec for parse-to-hf id contract (before R1) (a890d093, #1245)
- Studio: Add T4 op-contract stubs for editor dispatch boundary (bdbd8b1d, #1243)
Completes the playbackRate fix across all media duration resolution sites — visibility, timeline payload, and auto-calculated duration now all respect
defaultPlaybackRate.Fixes
View the full commit range.Fixes media elements with custom playback rates being clipped to the raw source duration instead of the rate-adjusted timeline duration. Also adds a release tag monotonicity guard.
Fixes
- Core: Account for playbackRate in media duration resolution (7b6c87fa, #1287)
- Producer: Revert Proxy-based wrapTimeline to plain-object approach (c12987e3, #1284)
- Release: Guard against non-monotonic tags (24279c8c, #1283)
Fixes a render-ready listener race and adds Grok MCP support, a motion-blur catalog component, and improved CI reliability.
Fixes
Docs & Examples
- Mcp: Add Grok as a supported host (b4210f65, #1280)
- Mcp: Remove voiceover/TTS references and surface MCP guide in sidebar (b2be289d, #1278)
Catalog
Internal
- Skip ffmpeg-static CDN download on ubuntu; retry Windows FFmpeg install (25420bf4, #1275)
- Core: Address review feedback on T6a / T10 / T7 stubs (63fd322d, #1268)
- Core,studio: Add T3+T7 hfId targeting stubs (spec for R1) (1e705b11, #1267)
- Core: Add T6a GSAP parser golden baselines (Recast/Babel snapshot) (184ef033, #1263)
- Core: Add T10 PreviewAdapter contract stubs (spec for R7) (1fdce71c, #1262)
- Core: Extract maxEndTime+serialize to parsers/test-utils.ts (TU) (ffc54c78, #1261)
- Studio: Add T5c review-fix gaps in manualEditsDomPatches characterization (5b29bea0, #1259)
- Studio: Add T5b rotation+motion build-patches characterization (63ff0c16, #1258)
- Studio: Add T5a pathOffset+boxSize build-patches characterization (19f46cd1, #1257)
- Remove plan docs and gitignore docs/plans/ (fc01717c, #1265)
Adds Google Cloud Run + Cloud Workflows as a distributed-render target (
@hyperframes/gcp-cloud-run) — the GCP counterpart to the AWS Lambda adapter, sharing the same plan → renderChunk → assemble primitives. Also lands a font-resolution pipeline so compositions capture and embed their own fonts for deterministic rendering.Features
- Font resolution pipeline — compositions capture and embed their own fonts (0bf15119, #1255)
- Gcp Cloud Run: Google Cloud Run + Workflows distributed render adapter (4da567df, #1253)
Catalog
Internal
- Core: Add T9 CompositionVariable font/image parse spec (before R1) (806b226b, #1246)
- Core: Add T2 stable id spec for parse-to-hf id contract (before R1) (a890d093, #1245)
- Studio: Add T4 op-contract stubs for editor dispatch boundary (bdbd8b1d, #1243)
Fixes a main-thread hang on compositions with thousands of GSAP tween calls by batching timeline construction through
requestAnimationFrame, and adds innerText support to the GSAP inspector for counter animations.Features
Fixes
- Batch GSAP timeline construction to prevent main-thread hang (#1231) (ebd156bc, #1249)
- Render: Add end-to-end observability (29d6f1ea, #1248)
Internal
- Studio: Add T11 history coalescing and cross-prop separation suite (9aebc8db, #1242)
- Core: Add T8 override-set merge semantics suite for getVariables (37d02f26, #1241)
- Core: Add T1 round-trip idempotence suite for parse/serialize (dd956744, #1240)
Switches the parity harness page navigation to
domcontentloaded instead of load, preventing timeouts caused by slow video preload on compositions with large or numerous media sources.Fixes
View the full commit range.Adds detailed diagnostics around page navigation timeouts — captures failed requests, HTTP errors, and timing context to help debug environment-specific render failures.
Internal
View the full commit range.Ensures the probe stage respects low-memory mode by threading the
forceScreenshot flag, preventing BeginFrame probe failures on memory-constrained systems.Fixes
View the full commit range.Adds the
audio-locked player attribute for embedding contexts that need force-muted playback, a full GSAP keyframe system (parsing → runtime bridge → design panel), Figma-quality snap guides in Studio, and reliability improvements for low-memory render environments.Features
- Player: Add audio-locked attribute (force-mute + hide controls) (f39b5988, #1234)
- Studio: Draggable layer reorder with z-index persistence (7a0cb085, #1216)
- Producer: Auto low-memory safe render profile (bacfb175, #1225)
- Studio: Add fit-to-children button in property panel (4d968866, #1224)
- Studio: Wire snap engine into preview drag and resize gestures (0a965dc4, #1223)
- Studio: Add snap guide overlay, toolbar, grid, and target collection (f8bf039a, #1228)
- Studio: Add stateless snap engine with alignment computation (1863831a, #1227)
- Studio: Runtime-synced design panel + 3D props + split polish (1bdb2d4e, #1188)
- Studio: Runtime-first dynamic keyframe system [8/10] (c1699ec9, #1190)
- Studio: Split clip at playhead for media elements [7/10] (d1aad77f, #1189)
- Studio: Design panel, timeline polish, feature flag [6/6] (a5211954, #1172)
- Studio: Keyframe hooks wiring — session, cache, toolbar [5/6] (7a088326, #1171)
- Studio: Keyframe diamonds, navigation, context menu [4/6] (5984c588, #1170)
- Studio: GSAP runtime bridge + optimistic updates [3/6] (12e87e05, #1169)
- Core: Spring physics solver + runtime fixes [2/6] (aab73774, #1168)
- Core: GSAP keyframe parsing, mutations, and API routes (e639a163, #1167)
Fixes
- Producer: Restore calibration timeout ceiling + add pipeline observability (1d16216a, #1233)
- AWS Lambda: Validate event S3 URIs against render bucket (F-004) (65888840, #1213)
- CLI: Re-validate SSRF denylist on redirects + harden isPrivateUrl (1f37920f, #1212)
- Studio: Fix PropertyPanel format and file size regression (2c73fa9c, #1229)
- CLI: Bind studio preview server to loopback by default (1324de54, #1210)
- Runtime: Make audio/media sync boundary inclusive to match visibility fix (b6a14ea9, #1173)
- Add progress logging during silent render pipeline stages (6bd1e764, #1220)
- Respect user timeouts on low-memory systems (20894ab9, #1221)
Docs & Examples
View the full commit range.Figma-quality snap lines, grid overlay, and fit-to-children for the Studio preview canvas. Also ships the GSAP keyframe system (parsing, runtime bridge, diamonds, dynamic keyframes, design panel) and a batch of CLI reliability fixes.
Features
- Studio: Add fit-to-children button in property panel (4d968866, #1224)
- Studio: Wire snap engine into preview drag and resize gestures (0a965dc4, #1223)
- Studio: Add snap guide overlay, toolbar, grid, and target collection (f8bf039a, #1228)
- Studio: Add stateless snap engine with alignment computation (1863831a, #1227)
- Studio: Runtime-synced design panel + 3D props + split polish (1bdb2d4e, #1188)
- Studio: Runtime-first dynamic keyframe system [8/10] (c1699ec9, #1190)
- Studio: Split clip at playhead for media elements [7/10] (d1aad77f, #1189)
- Studio: Design panel, timeline polish, feature flag [6/6] (a5211954, #1172)
- Studio: Keyframe hooks wiring — session, cache, toolbar [5/6] (7a088326, #1171)
- Studio: Keyframe diamonds, navigation, context menu [4/6] (5984c588, #1170)
- Studio: GSAP runtime bridge + optimistic updates [3/6] (12e87e05, #1169)
- Core: Spring physics solver + runtime fixes [2/6] (aab73774, #1168)
- Core: GSAP keyframe parsing, mutations, and API routes (e639a163, #1167)
- Docs: Add weekly update drafts (1abe69f3, #1183)
- Docs: Add changelog release workflow (248f6407, #1164)
Fixes
- Studio: Fix PropertyPanel format and file size regression (2c73fa9c, #1229)
- CLI: Bind studio preview server to loopback by default (1324de54, #1210)
- Runtime: Make audio/media sync boundary inclusive to match visibility fix (b6a14ea9, #1173)
- Add progress logging during silent render pipeline stages (6bd1e764, #1220)
- Respect user timeouts on low-memory systems (20894ab9, #1221)
- Runtime: Don’t restart non-loop media that has naturally ended (faa3f588, #1203)
- CLI: Report available memory instead of free memory in doctor (96795031, #1204)
- CLI: Reject directory —composition and add —browser-timeout (#1199) (6affe2d2, #1200)
- Scripts: Make release change-guard robust to git status prefix (8228932e, #1198)
- Producer: Localize remote <img> sources + await image readiness (72c461d8, #1197)
- CLI: Support arm64 hosts for
--dockerrender (2be41937, #1196) - Engine: Fast-fail on zero duration instead of 45s timeout (efb8d90f, #1186)
- CLI: Lazy-load @puppeteer/browsers to prevent debug package crash (8c6faa45, #1185)
- CLI: Suppress EPIPE crashes in piped agent environments (cabd0616, #1184)
- Delay ObjectURL revocation and silence TS5 baseUrl deprecations (6de6ea53, #1181)
- Engine: Add —autoplay-policy=no-user-gesture-required to headless Chrome args (9e5adafd, #1177)
- Runtime: Apply parent composition offset to WebAudio scheduling for sub-comp audio (ac73cbbc, #1175)
- Runtime: Show elements at exact end of their duration (inclusive boundary) (b652c0a2, #1166)
- CLI: Localize external assets in publish archive (a4706da5, #1160)
Docs & Examples
- Add reap as HyperFrames adopter (4b51cc64, #876)
- README: Add Frame.md design template gallery (1a617d30, #1182)
- Skills: Prefer frame.md over design.md for video specs (fcff442a, #1180)
Catalog
- Registry: Add 14 missing blocks to registry manifest (d8ed343d, #1163)
- Registry: Add Apple Terminal blocks to registry manifest (e9949d76, #1162)
- Registry: Add Apple Terminal theme code snippet blocks (689deaf4, #1161)
Internal
- CLI: Cover the cloud client 401-refresh-retry decorator (0870394d, #1202)
- Producer: Regenerate stale style-7-prod baseline in Docker (1aa651bd, #1178)
- Add release prepare command (17b0db1d, #1165)
Runtime stability and CLI improvements: fixes audio stuttering in the preview player when a media file ends before the composition does, adds a configurable browser navigation timeout, localizes remote
<img> sources before render to eliminate image flicker, and adds ARM64 Docker render support for Apple Silicon.Fixes
- Runtime: Don’t restart non-loop media that has naturally ended (faa3f588, #1203)
- CLI: Report available memory instead of free memory in doctor (96795031, #1204)
- CLI: Reject directory —composition and add —browser-timeout (#1199) (6affe2d2, #1200)
- Scripts: Make release change-guard robust to git status prefix (8228932e, #1198)
- Producer: Localize remote <img> sources + await image readiness (72c461d8, #1197)
- CLI: Support arm64 hosts for
--dockerrender (2be41937, #1196)
Internal
View the full commit range.A render-reliability release: the producer now localizes remote
<img> sources and waits for them to load before capturing frames, fixing blank-frame flicker in compositions that reference remote (S3) images. --docker renders also now run on arm64 hosts.Fixes
- Producer: Localize remote <img> sources + await image readiness (72c461d8, #1197)
- CLI: Support arm64 hosts for
--dockerrender (2be41937, #1196)
Fixes three production-observed CLI and engine errors: EPIPE crashes in piped agent environments,
@puppeteer/browsers import failures that blocked all commands when the debug package was missing, and zero-duration composition timeouts reduced from 45s to ~11s with an actionable diagnostic.Features
Fixes
- Engine: Fast-fail on zero duration instead of 45s timeout (efb8d90f, #1186)
- CLI: Lazy-load @puppeteer/browsers to prevent debug package crash (8c6faa45, #1185)
- CLI: Suppress EPIPE crashes in piped agent environments (cabd0616, #1184)
- Delay ObjectURL revocation and silence TS5 baseUrl deprecations (6de6ea53, #1181)
Docs & Examples
- README: Add Frame.md design template gallery (1a617d30, #1182)
- Skills: Prefer frame.md over design.md for video specs (fcff442a, #1180)
Runtime audio and rendering stability improvements: fixes audio in sub-compositions playing at the wrong timeline position, elements showing blank at the exact last frame, and a headless Chrome deadlock when GSAP tweens audio volume. Includes Apple Terminal catalog blocks and registry manifest fixes.
Features
- Docs: Add changelog release workflow (248f6407, #1164)
- CLI: Validate cloud render aspect/composition/format before upload (42ad3050, #1156)
Fixes
- Engine: Add —autoplay-policy=no-user-gesture-required to headless Chrome args (9e5adafd, #1177)
- Runtime: Apply parent composition offset to WebAudio scheduling for sub-comp audio (ac73cbbc, #1175)
- Runtime: Show elements at exact end of their duration (inclusive boundary) (b652c0a2, #1166)
- CLI: Localize external assets in publish archive (a4706da5, #1160)
- Producer: Localize remote @font-face src URLs before render (b1b03782, #1155)
- Core: Emit mediaVolumeEnvelope in tsc lib output (e7c874cc, #1159)
- Producer: Honor variables + outputResolution in HTTP render server (8b6d35e2, #1152)
- CLI: Mock findFFmpeg in render tests for CI without ffmpeg (a01a266e, #1154)
Catalog
- Registry: Add 14 missing blocks to registry manifest (d8ed343d, #1163)
- Registry: Add Apple Terminal blocks to registry manifest (e9949d76, #1162)
- Registry: Add Apple Terminal theme code snippet blocks (689deaf4, #1161)
Internal
- Producer: Regenerate stale style-7-prod baseline in Docker (1aa651bd, #1178)
- Add release prepare command (17b0db1d, #1165)
This release focuses on stability improvements across Studio rendering, producer telemetry, and core timeline handling.
Fixed
- Studio: Added an FFmpeg pre-flight check before rendering so setup issues fail earlier with a clearer path to resolution.
- Producer: Normalized structured error messages so telemetry and logs no longer collapse details into
[object Object]. - Core: Guarded timeline method calls for non-conformant timeline-like objects.
- Release: Removed a stale marketplace version field from packaged release metadata.