---
title: "Changelog"
description: "Release notes for HyperFrames."
rss: true
---

Recent HyperFrames releases, including user-facing features, fixes, and migration notes.

{/* New release entries are prepended by `bun run changelog:draft <version> --write`. */}

<Update
  label="HyperFrames v0.7.55"
  description="Released - 2026-07-12"
  tags={["Release", "Skills", "Producer", "CLI"]}
>
Studio gains a real timeline collision-and-placement model (snapping, stacking sync, seek-restore on reload). On the render side, several capture-correctness fixes land: software-GPU and distributed video renders no longer clip a black band off the bottom edge, and the experimental parallel drawElement router now fails over to the pinned screenshot path in seconds instead of hanging on a stalled worker.

## Features

- **Studio:** Timeline collision and placement model ([44ffe4b41](https://github.com/heygen-com/hyperframes/commit/44ffe4b41f991c8866d310b760cc17597d5e0434), [#2279](https://github.com/heygen-com/hyperframes/pull/2279))
- **Studio:** Timeline collision and placement model ([7f21d5dc4](https://github.com/heygen-com/hyperframes/commit/7f21d5dc49c50386bb4351f13758cff1a6e4bdab), [#2195](https://github.com/heygen-com/hyperframes/pull/2195))
- **Studio Server:** Files route extensions ([c15819fe8](https://github.com/heygen-com/hyperframes/commit/c15819fe8846402efdf0dc70c7e1fb4fd875fe86))
- **Studio:** Seek-restore contract for player reloads ([3930460c5](https://github.com/heygen-com/hyperframes/commit/3930460c517e0f3d8c404f707931bccab561052e), [#2193](https://github.com/heygen-com/hyperframes/pull/2193))
- **Studio:** Timeline leaf helpers — audio inspector, zoom math, UI prefs ([920dad35e](https://github.com/heygen-com/hyperframes/commit/920dad35ebb162e7b7940a640aec57ead96986f1), [#2192](https://github.com/heygen-com/hyperframes/pull/2192))

## Fixes

- **Producer:** Stop clipping the bottom edge of software-GPU video renders ([de95daa09](https://github.com/heygen-com/hyperframes/commit/de95daa096d9f75860472dfc4742cf5a8769a807))
- **Producer:** Fall back fast when the parallel DE streaming capture stalls ([07fb35c37](https://github.com/heygen-com/hyperframes/commit/07fb35c375955bba690889b0ac9ce706a9067b06))
- **CLI:** Stop losing render telemetry to the exit race ([ccf5f20b3](https://github.com/heygen-com/hyperframes/commit/ccf5f20b3beea2b245c398a89cb686077b546de2), [#2105](https://github.com/heygen-com/hyperframes/pull/2105))
- **CLI:** Grant s3 encryption actions in lambda policies user output ([f1f317a20](https://github.com/heygen-com/hyperframes/commit/f1f317a20cbcdd1386d90676eefecdf84bf1685c), [#2289](https://github.com/heygen-com/hyperframes/pull/2289))
- **Core:** Enforce strict runtime safety ([0af07a07c](https://github.com/heygen-com/hyperframes/commit/0af07a07c5368b857fde0cd8cc9c8d788a39fab9))
- **Studio:** Continuation of #2281 ([ebbd1eb2c](https://github.com/heygen-com/hyperframes/commit/ebbd1eb2c2bcec72ea79bee98538312d021e32ce), [#2287](https://github.com/heygen-com/hyperframes/pull/2287))
- **Studio:** Continuation of #2277 ([c6a508a9b](https://github.com/heygen-com/hyperframes/commit/c6a508a9bc1b7fc94544eba06dcb677bab334b0b), [#2286](https://github.com/heygen-com/hyperframes/pull/2286))
- **Studio:** Continuation of #2280 ([8e5b18f74](https://github.com/heygen-com/hyperframes/commit/8e5b18f7400b5df72731672961d395d017366c55), [#2285](https://github.com/heygen-com/hyperframes/pull/2285))
- **Studio:** Stacking sync ([e464b33bb](https://github.com/heygen-com/hyperframes/commit/e464b33bb3b52fe26755cb4585a6279f028ba1bc), [#2270](https://github.com/heygen-com/hyperframes/pull/2270))
- **Studio:** Timeline snapping ([345f715c3](https://github.com/heygen-com/hyperframes/commit/345f715c3f7a88c61522a87818880b7a0dbe784c), [#2269](https://github.com/heygen-com/hyperframes/pull/2269))

## Docs & Examples

- **Skills:** Tell agents to file reproducible render bugs, not paraphrases ([6a3da1f62](https://github.com/heygen-com/hyperframes/commit/6a3da1f624c7a6f0e67228d9ee5f9cf0771d2f7b))

## Internal

- **Repo:** Enforce workspace contracts ([83db364f8](https://github.com/heygen-com/hyperframes/commit/83db364f81f2f800c74ebd43eaaaaa25d194c1c7))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.54...v0.7.55).
</Update>

<Update
  label="HyperFrames v0.7.54"
  description="Released - 2026-07-12"
  tags={["Release", "CLI", "Producer", "Media"]}
>
This release hardens the drawElement parallel-capture router with real-traffic safety rails — a machine-RAM floor, worker-count-scaled self-verify, and compile-time gates for ancestor background-images and HDR disk headroom — and extends parallel streaming to the non-drawElement screenshot/BeginFrame paths with cohort telemetry. It also closes a cluster of snapshot/check capture-fidelity gaps: remote fonts are localized and embedded to match the render, `check` now flags text that paints invisibly, and video-injection, canvas-motion, and shader-clone capture issues are surfaced or fixed.

## Features

- **Producer:** Emit eligible_off cohort-sizing signal when parallel-stream router is off ([591235f05](https://github.com/heygen-com/hyperframes/commit/591235f05c22fdd31134bd54c33edf8fdbc96702))
- **CLI:** Capture_parallel_stream telemetry on success and failure paths ([88c21ccd8](https://github.com/heygen-com/hyperframes/commit/88c21ccd8b07f18a405ddda895aa503b15be6967))
- **Producer:** Route eligible parallel screenshot/beginframe renders to streaming ([6d5a7711f](https://github.com/heygen-com/hyperframes/commit/6d5a7711f36e534bc0870ebf175ce4ad7e814a07))
- **Producer:** Routing predicate for non-drawelement parallel streaming ([2416e9bcd](https://github.com/heygen-com/hyperframes/commit/2416e9bcd5888420b311a5ee0ae9a52105c5b61d))
- **CLI:** Preview --browser-no-gpu for gpu-unstable hosts ([3dc08c086](https://github.com/heygen-com/hyperframes/commit/3dc08c0868ba053b9bf8b8739947d0864137dac2))
- **Producer:** Surface beginframe no-damage reuse counters in perf summary and telemetry ([dde3afb72](https://github.com/heygen-com/hyperframes/commit/dde3afb72e1b4aa8b1b83e0d342b2c636d2d62ad))

## Fixes

- **CLI:** Only exclude clipped text when a background actually paints the glyphs ([fa902400c](https://github.com/heygen-com/hyperframes/commit/fa902400c973df07f17c59aced9332bee33171a9))
- **CLI:** Read effective text fill by property, not getPropertyValue ([a8fd8562a](https://github.com/heygen-com/hyperframes/commit/a8fd8562a8e908c28f4e048e1c9c618a1d1dedc4))
- **CLI:** Flag text with an effectively transparent fill in check ([9ae84c652](https://github.com/heygen-com/hyperframes/commit/9ae84c652c15f64c74054ef040c44fdb193d50c8))
- **CLI:** Distinguish producer-absent from injector failure in font localization ([fc2b90583](https://github.com/heygen-com/hyperframes/commit/fc2b905837344a1c4e4bae1ecc9b9a70af1a5c79))
- **CLI:** Resolve producer font-localization at runtime so vitest transform doesn't fail ([aa10d4923](https://github.com/heygen-com/hyperframes/commit/aa10d49234ed3eb675232ee8e4ba567b4071bb0e))
- **CLI:** Localize remote fonts in snapshot/check capture to match render ([ad0d2393f](https://github.com/heygen-com/hyperframes/commit/ad0d2393fe3209e89292641e5c2f04a45ceec04c))
- **Media:** Resolve npx without npm_execpath on Windows ([eba9ff9ae](https://github.com/heygen-com/hyperframes/commit/eba9ff9ae1e41e9fd4209aca455cc3d8635118b5), [#2236](https://github.com/heygen-com/hyperframes/pull/2236))
- **Render:** Scale timeout for long video encodes ([9d91c2a23](https://github.com/heygen-com/hyperframes/commit/9d91c2a23ee129add021fecea7e3e4d3cbab1f94), [#2244](https://github.com/heygen-com/hyperframes/pull/2244))
- **Skills:** Hold frame content through transitions ([687883124](https://github.com/heygen-com/hyperframes/commit/687883124f5b0e81c0a15d6a0dd5d7058d756337), [#2235](https://github.com/heygen-com/hyperframes/pull/2235))
- **Lint:** Honor data-no-timeline on root compositions ([c18391b98](https://github.com/heygen-com/hyperframes/commit/c18391b98c63e3b13c7cb1fd7e0a71478ce94a56), [#2228](https://github.com/heygen-com/hyperframes/pull/2228))
- **Producer:** Render -c \<scene\> uses the scene's own duration, not the project's ([6b7431bf4](https://github.com/heygen-com/hyperframes/commit/6b7431bf45a2bb93ff1836897e4e606fd8986339), [#2087](https://github.com/heygen-com/hyperframes/pull/2087))
- **Hyperframes Media:** Surface the real reason a TTS line failed [P2] ([9c98c1e82](https://github.com/heygen-com/hyperframes/commit/9c98c1e82ab6b27cd6b5025254539a7f7026b1b3), [#1999](https://github.com/heygen-com/hyperframes/pull/1999))
- **CLI:** Surface video frame-injection failures in snapshot output ([edc0a1624](https://github.com/heygen-com/hyperframes/commit/edc0a1624b484cce48b2421110a09dbd8218ae4b))
- **Shader Transitions:** Pin clones to their measured live box, not composition size ([b3d851d65](https://github.com/heygen-com/hyperframes/commit/b3d851d65af7e2d37e50b93983c6e721532224f9))
- **CLI:** Fold canvas pixel hashes into the frozen-sweep fingerprint ([3338a6f35](https://github.com/heygen-com/hyperframes/commit/3338a6f3503e98249b48555303c69c515f40595b))
- **Shader Transitions:** Pin cloned scene roots to composition dimensions ([9e3ff630f](https://github.com/heygen-com/hyperframes/commit/9e3ff630f4b6bccd3995b64800429bde0078a841))
- **Producer:** Disk-headroom gate before hdr raw frame pre-extraction ([9a1afce43](https://github.com/heygen-com/hyperframes/commit/9a1afce43c7cbca5deb2875b10bb468dd73cc338))
- **CLI:** Settle post-seek font subset loads before audit screenshots ([8bbd5a649](https://github.com/heygen-com/hyperframes/commit/8bbd5a6496f0ac491e5b48956bb1d692dd7dcea5))
- **Engine:** Densify drawelement self-verify with parallel worker count ([1b95af8bb](https://github.com/heygen-com/hyperframes/commit/1b95af8bbba63e914e99eef29f56ec71f9a13551))
- **Producer:** Withhold de parallel router below a machine ram floor ([ddcd380a1](https://github.com/heygen-com/hyperframes/commit/ddcd380a1a2bb563f238f9145413e3533a4bb501))
- **Producer,engine:** Gate drawelement on ancestor background-image + tail verify sample ([0809c9851](https://github.com/heygen-com/hyperframes/commit/0809c98518a9009de2822d3d23ca485afd01fee7))

## Docs & Examples

- **Producer:** Note attempt-scoped beginFrameReuse semantics after partial retries ([2cd8a750e](https://github.com/heygen-com/hyperframes/commit/2cd8a750e3b5d9f6ff86f2f99fd16b2699b32a36))

## Internal

- **Producer:** Stop coupling the hdr disk-headroom gate's control flow to error-string matching ([c20e20235](https://github.com/heygen-com/hyperframes/commit/c20e20235b01fccec65e12f2d86775930e7e5553))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.53...v0.7.54).
</Update>

<Update
  label="HyperFrames v0.7.53"
  description="Released - 2026-07-11"
  tags={["Release", "Studio", "Producer", "Core"]}
>
This release makes studio manual editing safe for color-graded compositions: edits no longer bake runtime opacity transients into tween bounds (the "element disappears after editing" bug), resize and rotate commit clean per-group values, selecting an element no longer rewrites or destroys its authored clip-path, and the crop tool draws in the element's rotated frame. The GSAP writers also stop accumulating duplicate keys in saved compositions.

## Fixes

- **Studio:** Draw the crop UI in the element's rotated frame ([39f33bd3a](https://github.com/heygen-com/hyperframes/commit/39f33bd3a3bcd2ea20980bca1e871bbc9c6592f3))
- **Studio:** Address review findings on graded-element editing ([5d1cafff8](https://github.com/heygen-com/hyperframes/commit/5d1cafff8225177ee1ae99da85a0ce0ce4e5babd))
- **Studio:** Crop restore value is owned by the lifted element's gesture ([b7fddd548](https://github.com/heygen-com/hyperframes/commit/b7fddd548acf1d268294a7fe71adc9a946ccaa40))
- **Core:** Make timing masks safe for source loaders ([179c942cd](https://github.com/heygen-com/hyperframes/commit/179c942cd2bb3fb37236368fa33b16c4c1ad58a0))
- **Lint:** Anchor the opacity-zero probe so 0.98 stops matching ([fe5296672](https://github.com/heygen-com/hyperframes/commit/fe529667283ad07a2f3cd8440e285ad3d0fc8937))
- **Parsers:** Never emit duplicate vars keys in either writer ([90d77d016](https://github.com/heygen-com/hyperframes/commit/90d77d016ffb75264491bfebb4c227072904d63d))
- **Studio:** Route panel property commits to a group-owning set ([066c3dae3](https://github.com/heygen-com/hyperframes/commit/066c3dae37bbe3397cfc35642076dd30da9743f3))
- **Studio:** Crop tool stands down for clips it cannot edit ([cbfb6ba94](https://github.com/heygen-com/hyperframes/commit/cbfb6ba943ea458bb79f89bbc0611cd81c817831))
- **Studio:** Correct gesture commits for scaled and graded elements ([3525c7ff5](https://github.com/heygen-com/hyperframes/commit/3525c7ff52139a5d63093f7a8863e7fb8ff980e6))
- **Studio:** Stop tween re-inits from baking runtime opacity transients ([5cc14c222](https://github.com/heygen-com/hyperframes/commit/5cc14c2221bb6262ddd0631c9f2df1891f266217))
- **Core:** Capture authored inline opacity at parse time and follow source geometry ([3147c8e06](https://github.com/heygen-com/hyperframes/commit/3147c8e063a72d999447aca8bb0528480bdcd043))
- **Product Launch:** Hoist approved frame videos during assembly ([2aadf450e](https://github.com/heygen-com/hyperframes/commit/2aadf450e718497ac4b0edb7286cf4c8f3da06bc), [#2226](https://github.com/heygen-com/hyperframes/pull/2226))
- **Hooks:** Scope pre-commit build check to target repo, fix stale symlinks ([522d7c93b](https://github.com/heygen-com/hyperframes/commit/522d7c93b7acb16c6ade1376040237ff615dca7b), [#2175](https://github.com/heygen-com/hyperframes/pull/2175))
- **Lint:** Parse HTML structure without regex ([05c3b5503](https://github.com/heygen-com/hyperframes/commit/05c3b5503faf5da1efe5d64985b63db3f762f765), [#2223](https://github.com/heygen-com/hyperframes/pull/2223))
- **Telemetry:** Expose stalled render stages ([87618eef4](https://github.com/heygen-com/hyperframes/commit/87618eef4c65aff78f99f94246c60114a579af0f), [#2220](https://github.com/heygen-com/hyperframes/pull/2220))
- **Lint:** Flag digit-leading element ids ([d51fa7eba](https://github.com/heygen-com/hyperframes/commit/d51fa7eba2e369fd6212cdc59ebaef71e2024f7e), [#2222](https://github.com/heygen-com/hyperframes/pull/2222))
- **CLI:** Correct strict warning hint ([5f22209a8](https://github.com/heygen-com/hyperframes/commit/5f22209a82afbdf3c2a8d1a788b94e9aeeaac689), [#2221](https://github.com/heygen-com/hyperframes/pull/2221))

## Internal

- Address review nits ([67cfae258](https://github.com/heygen-com/hyperframes/commit/67cfae2587e15b0dd6a064d9fdbd4790831905cf))
- **Producer:** Gate source tests by execution lane ([9e7b11998](https://github.com/heygen-com/hyperframes/commit/9e7b11998cb2727b05337f9133eae4647c979644))
- **Repo:** Forbid tracked generated artifacts ([585aa9f6b](https://github.com/heygen-com/hyperframes/commit/585aa9f6b24561fe45ea298787a291390ba8eea2))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.52...v0.7.53).
</Update>

<Update
  label="HyperFrames v0.7.52"
  description="Released - 2026-07-11"
  tags={["Release", "CLI", "Skills", "Sdk"]}
>
The CLI now runs a free trial of the drawElement parallel router (`HF_DE_PARALLEL_ROUTER`) on eligible local renders — it stays on until a real failure fires the safety net, then turns off for that install — and every router/inversion failure path (OOM, blank frames, PSNR, capture errors) now reaches telemetry with a fallback reason, with OOM retries dropping to a single worker after killing stale workers. Also fixes keyframe shots ignoring direct entries, SDK template GSAP scripts missing from resolver parity, and `hyperframes lint` tripping on macOS AppleDouble files.

## Features

- **CLI:** One-shot DE parallel-router trial per install for real telemetry ([37b6a4e7e](https://github.com/heygen-com/hyperframes/commit/37b6a4e7e557d4ec7008ea64d22743602a0c65fb))
- **Producer,cli:** Full telemetry visibility for DE parallel-router/inversion failures ([ec921e143](https://github.com/heygen-com/hyperframes/commit/ec921e143b35fbaf82068a8442a9e45faa693a58))

## Fixes

- **CLI:** Honor direct entries in keyframe shots ([b95ddd74d](https://github.com/heygen-com/hyperframes/commit/b95ddd74d57509e189704617010d86a8bf2dee63), [#2217](https://github.com/heygen-com/hyperframes/pull/2217))
- **Skills:** Align core contract with check ([de4e85add](https://github.com/heygen-com/hyperframes/commit/de4e85add6795755e02101dfe6eb523bde8bcdfb), [#2218](https://github.com/heygen-com/hyperframes/pull/2218))
- **Sdk:** Align template script traversal ([a61f7de8d](https://github.com/heygen-com/hyperframes/commit/a61f7de8d79255da5a79730959a8ac5614415db9))
- **Lint:** Ignore macOS AppleDouble HTML files ([0e7f40dfc](https://github.com/heygen-com/hyperframes/commit/0e7f40dfc0d5f60796894a4dad38fe989091fbdb), [#2191](https://github.com/heygen-com/hyperframes/pull/2191))
- **Cli,producer:** Opt-in trial polarity + narrowed-fallback-flag docs (review) ([b02703b7c](https://github.com/heygen-com/hyperframes/commit/b02703b7c9b3f5fb002e2df9ee0320208b333f02))
- **Sdk:** Include template GSAP scripts in resolver parity ([46602d75f](https://github.com/heygen-com/hyperframes/commit/46602d75f4a3f70803b5d1a89cded3f72c4a2915))
- **CLI:** Atomic config writes, gated trial warning, and write-failure signal ([6172d79dc](https://github.com/heygen-com/hyperframes/commit/6172d79dc2237a02d18084c3bef30b0dca8e51a4))
- **CLI:** Stale-cache arm reads, retry double-count, and unwritable-config re-arm in DE trial ([2542e9427](https://github.com/heygen-com/hyperframes/commit/2542e94277d152898681bb9b838d77f11ea9e426))
- **CLI:** Fix concurrency race, none-vs-undefined bug, and 3 more DE trial gaps ([dc6df93de](https://github.com/heygen-com/hyperframes/commit/dc6df93de586708153a48f87e78c03a115a7c0ae))
- **CLI:** Fix batch re-entrancy, config race, exposure cap, and shouldTrack gap in DE trial ([532dad7cc](https://github.com/heygen-com/hyperframes/commit/532dad7cc78e98654d4552987625b3763fc0486b))
- **CLI:** Keep the DE parallel-router trial on until a real failure, not first engagement ([19f90b0b9](https://github.com/heygen-com/hyperframes/commit/19f90b0b92aad1bdf03df81c01a9664609fd8065))
- **Producer,engine,cli:** Oom wrapping, cancellation, fallback-reason gaps ([a355fb2f6](https://github.com/heygen-com/hyperframes/commit/a355fb2f6be0b6fb98fe0998e56a13e53773624d))
- **Engine:** Recognize Bun/JavaScriptCore's OOM message in isMemoryExhaustionError ([b3f244a7e](https://github.com/heygen-com/hyperframes/commit/b3f244a7e9bcd110d8878582a212735a480a4848))
- **Producer:** Drop to a single worker on OOM retry instead of the pre-pinned count ([51353a7ed](https://github.com/heygen-com/hyperframes/commit/51353a7ed6006ac63e68d9d944f0a934508c9ce5))
- **Producer:** Widen DE self-verify retry to generic failures on a pinned worker count ([df57eb0fd](https://github.com/heygen-com/hyperframes/commit/df57eb0fde334911c712a663f4401b5ca56dfb8b))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.51...v0.7.52).
</Update>

<Update
  label="HyperFrames v0.7.51"
  description="Released - 2026-07-11"
  tags={["Release", "Media Use", "CLI"]}
>
`media-use`'s HeyGen resolves now tag whether a call went through the free (OAuth) or paid (API-key) path and classify failures into stable reasons, with a test-isolation fix so local runs can't reach the production telemetry endpoint. `hyperframes skills update` now converges when a skill has been retired or renamed upstream — it no longer fails with `Skill(s) still missing after install` or loops on `No matching skills found`, and reconciles the orphaned skill away instead.

## Features

- **Media Use:** Usage telemetry for HeyGen conversion ([521f2c9ba](https://github.com/heygen-com/hyperframes/commit/521f2c9ba7016f08ea3ad7fff4a97d323363eedb), [#2130](https://github.com/heygen-com/hyperframes/pull/2130))

## Fixes

- **CLI:** Make skills update converge on a skill retired upstream ([b1f1c0571](https://github.com/heygen-com/hyperframes/commit/b1f1c0571e0dbbc6f12ccfde68345349704ee86e), [#2176](https://github.com/heygen-com/hyperframes/pull/2176))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.50...v0.7.51).
</Update>

<Update
  label="HyperFrames v0.7.50"
  description="Released - 2026-07-10"
  tags={["Release", "CLI", "Core", "Cli,skills"]}
>
This release makes `hyperframes check` the canonical verification gate: one command, one browser session covering lint, runtime errors, layout, motion intent, and WCAG contrast, with agent-actionable findings (source anchors, contrast fix suggestions) and snapshot evidence via annotated frames and per-finding crops. `validate`, `inspect`, and `layout` are deprecated but fully functional; `snapshot` gains `--zoom` for high-density crops of any element or region.

## Features

- **CLI:** --frame-check accepts a severity/seek/tol spec ([659cb6a23](https://github.com/heygen-com/hyperframes/commit/659cb6a23605546e93e95977315f473c86d0f8fe))
- **CLI:** Persistence-tiered findings, frozen-sweep guard, occlusion coverage ([94f6de8b8](https://github.com/heygen-com/hyperframes/commit/94f6de8b8d57bbbadb5032905584881c7b3eaad8))
- **CLI:** Snapshot --zoom and per-finding crops on check --snapshots ([f4cef54b8](https://github.com/heygen-com/hyperframes/commit/f4cef54b8bde538b9a470f4bcee35f989ef3c71a))
- **CLI:** Deprecate validate, inspect, layout in favor of check ([58f45ef75](https://github.com/heygen-com/hyperframes/commit/58f45ef75871045ea9a5ae7fb7229e4f641336be))
- **CLI:** Run-ID telemetry correlation and check breakdown event ([3a02942a0](https://github.com/heygen-com/hyperframes/commit/3a02942a03edd42ffde353e1e1d9331a045283c0))
- **CLI:** Caption-zone and frame-check gates on check ([7ab6c2b7a](https://github.com/heygen-com/hyperframes/commit/7ab6c2b7a2611a25a613fa41ee4d3b2efbf3be53))
- **CLI:** Add check — single-session verification gate ([7d6d41361](https://github.com/heygen-com/hyperframes/commit/7d6d41361bbf9db633dd061747d39ce24b326269))

## Fixes

- **CLI:** Address review — clip-duration audit in check, failure classing, crop observability ([67cdf0fdb](https://github.com/heygen-com/hyperframes/commit/67cdf0fdb795984addb0cf3588a1678db107bd08))
- **Core:** Preserve playhead during volume probing ([16ab8b293](https://github.com/heygen-com/hyperframes/commit/16ab8b2935fb3ab6f8746ae1742ec757f064375e), [#2143](https://github.com/heygen-com/hyperframes/pull/2143))
- Escape NUL bytes in HFMASK regex (Bun blank renders) + Windows junction for studio preview links ([718c67b38](https://github.com/heygen-com/hyperframes/commit/718c67b387a00d3240dda53911b883ff6a5b4da1), [#2140](https://github.com/heygen-com/hyperframes/pull/2140))
- **CLI:** Page closures survive keepNames transpilation; format motion-blur ([2ceb0683a](https://github.com/heygen-com/hyperframes/commit/2ceb0683a8c1e515867cc159621b1d32510f2230))
- **CLI:** Contrast gate judges only readable content; examples pass check ([4b03866c0](https://github.com/heygen-com/hyperframes/commit/4b03866c02801bdc755f4ae7fd86e40b051b60d2))

## Docs & Examples

- **Cli,skills:** Teach check as the canonical verification gate ([cf7c1d760](https://github.com/heygen-com/hyperframes/commit/cf7c1d7609cb7816eaaa5e6651d53dd3873de162))

## Internal

- **CLI:** Type the guard test's mock so the full typecheck passes ([96cb5e39d](https://github.com/heygen-com/hyperframes/commit/96cb5e39dd1accb764bf52648ad55116fd29998b))
- **CLI:** Import the page-function guard in its new unit test ([c169dbaa5](https://github.com/heygen-com/hyperframes/commit/c169dbaa54fe1eda6bd4e34fa8181d221c054ece))
- **CLI:** Single-source-of-truth pass over the check branch ([cea345801](https://github.com/heygen-com/hyperframes/commit/cea34580160da6164bf75c679d9df8e76a063211))
- **Examples:** Mark product-promo cursor and comment layering intentional ([b218ee744](https://github.com/heygen-com/hyperframes/commit/b218ee744397a0f27eb16586db9c7691049903e7))
- **CLI:** Unify seek/settle and Chrome launch across browser commands ([feb256df8](https://github.com/heygen-com/hyperframes/commit/feb256df8adf02a7aa26ebd791a9d939485c5dce))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.49...v0.7.50).
</Update>

<Update
  label="HyperFrames v0.7.49"
  description="Released - 2026-07-10"
  tags={["Release", "Skills", "Figma", "Core,cli"]}
>
Hardens the Figma integration end to end — clearer 403/scope errors, 429 retry with backoff, batch asset fetch, and mapper fidelity fixes (dropped image fills, double-painted rasterized shapes) — plus a fix for creation-workflow skills bypassing the integration entirely. Also ships render-reapply hardening for SDK position edits and prompt-guide pipeline fixes.

## Fixes

- **Skills:** Address PR #2110 review feedback ([23c9d15b6](https://github.com/heygen-com/hyperframes/commit/23c9d15b6998fd118112cb1c5eb9fb7bdc87037a))
- **Skills:** Pipeline fixes from prompt-guide validation (BGM, caption accent, voice, PR version) ([c992a136b](https://github.com/heygen-com/hyperframes/commit/c992a136bf74cd9e87ba23fc824448f1a9e5c94c))
- **Skills:** Force figma.com sources through /figma, not raw MCP tools ([d13c96d47](https://github.com/heygen-com/hyperframes/commit/d13c96d4704dc125d577c9612549f1e290b928f9))
- **Core,cli:** Figma IMAGE fills dropped, rasterize double-paint, tokens false-success ([c8eff1a4b](https://github.com/heygen-com/hyperframes/commit/c8eff1a4ba5b25b2c821354cae51bbf12d180244))
- Clear fallow and windows artifact checks ([70ac80b08](https://github.com/heygen-com/hyperframes/commit/70ac80b08b0e120cf8f8092904f6d2732c19c419))
- **Core:** Make generated artifact formatting deterministic ([960c31f66](https://github.com/heygen-com/hyperframes/commit/960c31f66805c17ca06a24104d8976638854609a))
- **Core:** Narrow wrapped seek function type ([d2f32c831](https://github.com/heygen-com/hyperframes/commit/d2f32c831cd158d1d5d2507d601d73b46dc940c2))
- **Core:** Use execFileSync for generated-file format step ([67a4fb6b7](https://github.com/heygen-com/hyperframes/commit/67a4fb6b7097c97ed81268d10830ca6f56c06776))
- **Core,producer:** Harden render reapply wiring ([68ae4e516](https://github.com/heygen-com/hyperframes/commit/68ae4e51601006d1c8b465884767f4aa7ddda869))
- **Core:** Preserve position edit fold detection during seeks ([4e3d639e1](https://github.com/heygen-com/hyperframes/commit/4e3d639e1a082b27a1a5d80a4cffcc2b575c6d0d))
- **Core,producer:** Render SDK position edits in producer pipeline ([85bab88af](https://github.com/heygen-com/hyperframes/commit/85bab88afbbc5350028fd9bd149e6796d9bdd203))
- **Core,cli:** Address PR review — consistent 403 error shape, cap Retry-After, URL-safe ref split ([87e2a70f9](https://github.com/heygen-com/hyperframes/commit/87e2a70f9a9fe4bba2b3bee8cd8a27b4c303f00a))
- **Core,cli:** Parse figma 403 body, batch asset fetch, fix NO_TOKEN box ([4fc699fee](https://github.com/heygen-com/hyperframes/commit/4fc699fee6aa124717d899b7675a591f01325d4e))
- **Core:** Name missing figma scope in 403, retry 429 with backoff ([1bb768834](https://github.com/heygen-com/hyperframes/commit/1bb7688347126fe9e0213d93b36f50dade252b8a))

## Docs & Examples

- **Figma:** Lead setup with "which credential do I need", not a token wall ([ffac2ecbf](https://github.com/heygen-com/hyperframes/commit/ffac2ecbfe542054648338098f1a2f9df5c4f8fb))
- **Figma:** Remove stale duplicate RATE_LIMITED troubleshooting row ([49a78a30e](https://github.com/heygen-com/hyperframes/commit/49a78a30e49e83504dba6e11e2f9d15c50bb8e84))
- **Skills:** Remove unused animation example assets ([ac8ac34bd](https://github.com/heygen-com/hyperframes/commit/ac8ac34bd86c55a7f61b0ce4ea1264ed06657bfa))
- **Figma:** Sync guide scopes + error table; gate batch line, regen index in finally ([43af58253](https://github.com/heygen-com/hyperframes/commit/43af5825342a43653ad39c5fadaf51914c0323d6))

## Internal

- **Core:** Refresh position edits render artifact ([0971f3b2a](https://github.com/heygen-com/hyperframes/commit/0971f3b2a703eb829c86990f7fd4b33dd8f60ed9))
- **CLI:** Add renderNodes to tokens.test figma client mock ([1d18b3062](https://github.com/heygen-com/hyperframes/commit/1d18b30625ffd9ee4a0fbd5875ebb21fa2878a4f))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.48...v0.7.49).
</Update>

<Update
  label="HyperFrames v0.7.48"
  description="Released - 2026-07-10"
  tags={["Release", "CLI"]}
>
Prevents slow Chrome downloads from losing their install lock and colliding with another HyperFrames process. Also restores `hyperframes tts --text-file` compatibility for existing skills and scripts.

## Fixes

- **CLI:** Restore `tts --text-file` compatibility for file-based narration workflows ([ef38321d5](https://github.com/heygen-com/hyperframes/commit/ef38321d5d1b549777b846d1156de40a0f475b4e), [#2117](https://github.com/heygen-com/hyperframes/pull/2117))
- **CLI:** Keep slow browser installs serialized with an active lock heartbeat and visible wait progress ([7bd8c0942](https://github.com/heygen-com/hyperframes/commit/7bd8c0942e2d0863b7c82fe5a3dd1c026f1e5db1), [#2116](https://github.com/heygen-com/hyperframes/pull/2116))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.47...v0.7.48).
</Update>

<Update
  label="HyperFrames v0.7.47"
  description="Released - 2026-07-10"
  tags={["Release", "Media Use", "CLI", "Studio"]}
>
Ships a lane-model Studio timeline (multi-select, marquee, group move/resize, magnetic snapping, NLE-style z-index stacking) and a declarative variables stack spanning core, SDK, and Studio (bindings, promote-to-variable, live preview injection). Also adds shared telemetry and free-usage onboarding to `media-use`.

## Features

- **Media Use:** Usage visibility — shared telemetry identity, miss log, resolve --stats ([16eb11367](https://github.com/heygen-com/hyperframes/commit/16eb11367a5f0b4213874b626b305e80edcf1d24), [#2113](https://github.com/heygen-com/hyperframes/pull/2113))
- **Media Use:** Fast heygen CLI onboarding — actionable diagnostics, --doctor, free-usage framing ([cdb8d736f](https://github.com/heygen-com/hyperframes/commit/cdb8d736f19c9d39b3fec51e6363c68895b28fe4), [#2065](https://github.com/heygen-com/hyperframes/pull/2065))
- **Media Use:** Use CLI free HeyGen usage ([3b93f516b](https://github.com/heygen-com/hyperframes/commit/3b93f516b40bc96f6dba3941d827529f04709642), [#2027](https://github.com/heygen-com/hyperframes/pull/2027))
- **Studio:** Resize selected timeline clips together ([36413da7f](https://github.com/heygen-com/hyperframes/commit/36413da7f69231ea2c9e39019508ed3307741dbe))
- **Studio:** Move selected timeline clips together ([5d27af30b](https://github.com/heygen-com/hyperframes/commit/5d27af30b23e35d8fa2346909eb502bea05cd76f))
- **Studio:** Add timeline marquee selection ([45d09047b](https://github.com/heygen-com/hyperframes/commit/45d09047b7ef65ad4a30347dba4d91002e1c5d38))
- **Studio:** Batch timeline timing commits ([1cf601202](https://github.com/heygen-com/hyperframes/commit/1cf601202d6c7bd032cf56adef2a9b7d357fb3ed))
- **Studio:** Highlight timeline selection sets ([1d858f004](https://github.com/heygen-com/hyperframes/commit/1d858f004d6c6171d6c4df090448f11429bc15a4))
- **Studio:** Activate selected element set state ([cca31feff](https://github.com/heygen-com/hyperframes/commit/cca31feffeda60ab98e1cea7f01438ac299b0e42))
- **Core:** Sub-composition variable render path ([a9901cb66](https://github.com/heygen-com/hyperframes/commit/a9901cb661bf057fd7f0d1341645614bbf55b2b8))
- **Sdk,studio:** Editable template sub-compositions + promote sub-comp element properties ([8de80bf36](https://github.com/heygen-com/hyperframes/commit/8de80bf3695400f7d22a37dd669cb87be80f653e))
- **Studio:** Promote to variable from the design panel ([7c144ecc3](https://github.com/heygen-com/hyperframes/commit/7c144ecc302d5ea8c4136912b03860bb708daf73))
- **Studio:** Bind selected element properties to variables ([267b289bb](https://github.com/heygen-com/hyperframes/commit/267b289bb831c26f5ea823e9c501276b828ad975))
- **Core:** Declarative variable bindings — data-var-src, data-var-text, css custom props ([f7ee0768a](https://github.com/heygen-com/hyperframes/commit/f7ee0768aeb03fb53e6468526591c665387bb6b2))
- **Studio:** Render with preview variables + template handoff + docs ([010d49327](https://github.com/heygen-com/hyperframes/commit/010d49327e75bd05dbe9e3db1b29a9d755a60160))
- **Studio:** Variables inspector panel with live preview values ([b34ad8516](https://github.com/heygen-com/hyperframes/commit/b34ad851652fb2698a4578c6c02d1194f0bdaa8c))
- **Studio Server:** Preview variable injection + render variables forwarding ([2e0b88452](https://github.com/heygen-com/hyperframes/commit/2e0b8845211535778bdd67c6d603282ffdd993a6))
- **Sdk:** Variable usage scan + preview-values adapter seam ([91831f3f8](https://github.com/heygen-com/hyperframes/commit/91831f3f8e197a5de510f1036e86b61b0b72c54c))
- **Sdk:** Variable declaration edit ops (declare/update/remove) ([839881a98](https://github.com/heygen-com/hyperframes/commit/839881a98e21d83a567dc670a2b21fe400e0c558), [#2047](https://github.com/heygen-com/hyperframes/pull/2047))
- **Sdk:** Variable declaration read apis + browser-safe variables entry ([fcbd4cb0f](https://github.com/heygen-com/hyperframes/commit/fcbd4cb0f61f063b252fe583f6643252bcf2118d), [#2046](https://github.com/heygen-com/hyperframes/pull/2046))
- **Studio:** Fill the ruler with ticks across the full timeline width ([6f0bf75b6](https://github.com/heygen-com/hyperframes/commit/6f0bf75b69216b029c6a5410daecbe5166315575))
- **Studio:** Lanes and ruler span the full timeline width at any zoom ([eb31e86d4](https://github.com/heygen-com/hyperframes/commit/eb31e86d4f407845c498c92ad6aef5dadde38dcd))
- **Studio:** Magnetic snapping to clip edges, playhead, and bounds ([d7e7fca8e](https://github.com/heygen-com/hyperframes/commit/d7e7fca8ec93a894ec76404ecc8026a5168d7b60))
- **Studio:** Drag a clip past the video end to extend its duration ([5e3ca6ae6](https://github.com/heygen-com/hyperframes/commit/5e3ca6ae63d3c6484a4e5cde0eea4e3987f8236a))
- **Studio:** Lane-model timeline (non-overlapping clips share a row) ([ed8bf475d](https://github.com/heygen-com/hyperframes/commit/ed8bf475d327951a63c61880e31e1d1f9121ea6e))
- **Studio:** Timeline layer UI — context headers, audio lanes, drop affordances ([bc5fc410e](https://github.com/heygen-com/hyperframes/commit/bc5fc410ee9a57f377f3f6421b4142706cf11a46))
- **Studio:** Timeline track = stacking layer (NLE-style layering) ([e5ed51252](https://github.com/heygen-com/hyperframes/commit/e5ed5125293c0d85aae5db5482563f8dfe44ffa4))
- **Studio:** Unify timeline vertical reorder with z-index stacking ([dd980697a](https://github.com/heygen-com/hyperframes/commit/dd980697a20bacf04ec3d4d5a6171c040a78dbca))
- **Studio:** Expose resolved z-index and stacking context on timeline clips ([070ee9169](https://github.com/heygen-com/hyperframes/commit/070ee91694d341310d8541a3370fcf05827b6e7e))

## Fixes

- **CLI:** Sample real pixels behind hidden text for contrast-audit ([1614dd3e5](https://github.com/heygen-com/hyperframes/commit/1614dd3e5ad287305d0d9d39402cb8bd66849250))
- **Studio:** Drop stale timeline-select results to stop selection flicker ([1265702ed](https://github.com/heygen-com/hyperframes/commit/1265702edc2ac102abb687b6eb026a506f610f20))
- **Studio:** Fold GSAP timing rewrites into the recorded history entry ([076c656d6](https://github.com/heygen-com/hyperframes/commit/076c656d6e99c954604e7679293ec33a97e21ad8))
- **Studio:** Make the player store the single source of truth for selection ([9cf575c6f](https://github.com/heygen-com/hyperframes/commit/9cf575c6f928e45cd88e6f4fd5809af43b5c2e77))
- **Studio:** Keep timeline selection authoritative in the preview sync ([6673c3286](https://github.com/heygen-com/hyperframes/commit/6673c328686c39b153d2487289573396794cc620))
- **Studio:** Harden group timeline edits (capabilities, rollback, snapping, marquee) ([04ddd411e](https://github.com/heygen-com/hyperframes/commit/04ddd411ecf14123c13e4d766454c9385fa4b9f0))
- **Studio:** Draw the timeline marquee in the theme accent color ([95ded6c02](https://github.com/heygen-com/hyperframes/commit/95ded6c0268cb41d0667552f43d2d22897731454))
- **Studio:** Keep the timeline multi-selection through a group edit ([fa3848a33](https://github.com/heygen-com/hyperframes/commit/fa3848a33d868f1b9796212bdc4efba4487ac14b))
- **Studio:** Propagate z-index reorder save failures and drop dead targetTrack ([6080f5ad3](https://github.com/heygen-com/hyperframes/commit/6080f5ad3e57af63578606838692f6da9027b267))
- **Studio:** Code-review and live-test fixes for the variables stack ([bc0e0b314](https://github.com/heygen-com/hyperframes/commit/bc0e0b314b96b83ddc01d42bd7780a9ee347b130))
- **Studio:** Order the timing write after the z-index commit on a diagonal drag ([51dd8a075](https://github.com/heygen-com/hyperframes/commit/51dd8a0753ca42b144966d7a821d5d9490749dcb))
- **Studio:** Keep a remounted clip marked active when it stays at the playhead ([ffd513130](https://github.com/heygen-com/hyperframes/commit/ffd513130b712129b2a0359616070410a98199a8))
- **Studio:** Make a timeline lane a z-band so a vertical restack moves the row ([eb6a311d8](https://github.com/heygen-com/hyperframes/commit/eb6a311d82484e5c3d8061d360302e8699ac55fb))
- **Studio:** Stop horizontal drag from cancelling a vertical restack ([db6ccb808](https://github.com/heygen-com/hyperframes/commit/db6ccb80820f8aca219761ee16fd08cb14f07ebf))
- **Studio:** Keep Timeline under the 600-line cap and un-export postRootDurationToPreview ([ce0ddbccf](https://github.com/heygen-com/hyperframes/commit/ce0ddbccf827b8581025ea451ab13f405b61e439))
- **Studio:** Freeze timeline zoom during extend-drag so clips don't jump ([580676bbf](https://github.com/heygen-com/hyperframes/commit/580676bbf46d2d6c5a39df0ccb6860407521adda))
- **Studio:** Dropping an overlapping clip on a lane restacks it, not a no-op ([6b4870246](https://github.com/heygen-com/hyperframes/commit/6b4870246ce7d9c4f259c1f714c1467c97c0df29))
- **Studio:** Sub-composition child clips restack via self-contained intent ([82fe779bd](https://github.com/heygen-com/hyperframes/commit/82fe779bd86f8a7d2b517e6e10c0f1d1111b6195))
- **Studio:** Realm-safe isHTMLElement so timeline z-index commits land ([eef500c89](https://github.com/heygen-com/hyperframes/commit/eef500c8902de9573d6941234693f06a8d018991))
- **Studio:** Capture effective (computed) z-index for timeline ordering ([03f8089e5](https://github.com/heygen-com/hyperframes/commit/03f8089e523980105f22b31161628b75c521ed82))

## Performance

- **Studio:** Grow composition duration live on extend, no preview remount ([9f6c20e48](https://github.com/heygen-com/hyperframes/commit/9f6c20e4826e1304114dcdf8f963da6d75ef0cc2))

## Internal

- **Studio:** Single-source timeline selection id-resolution ([0fe38e8cc](https://github.com/heygen-com/hyperframes/commit/0fe38e8cc87dfa125d65023147d1f838ef1bfd57))
- **Studio:** Single-source timeline id-resolution and resize-clamp math ([3c6c1d3f2](https://github.com/heygen-com/hyperframes/commit/3c6c1d3f2778a2be912e05b42f094b2c3e4a3b3d))
- **Studio:** Single-source the timeline stacking key + guard audio reorder ([5ce362299](https://github.com/heygen-com/hyperframes/commit/5ce362299c72f7d188adca608ff907b2f9e5eb73))
- **Studio:** Extract shared layerOrdering module from LayersPanel ([dae26e72b](https://github.com/heygen-com/hyperframes/commit/dae26e72b23a5907d173177a72e1f96bd5483934))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.46...v0.7.47).
</Update>

<Update
  label="HyperFrames v0.7.46"
  description="Released - 2026-07-09"
  tags={["Release", "Sdk", "Sdk Playground", "Studio Server"]}
>
Adds live-DOM sync and variable CRUD to `@hyperframes/sdk`, plus mechanical Figma motion translation with an objective fidelity gate. Also ships several render-pipeline and parser fixes (cross-realm position edits, static-frame dedup call-detection, GSAP position holds).

## Features

- **Sdk:** AttachSync mirrors composition edits onto a live document ([91ddf9e19](https://github.com/heygen-com/hyperframes/commit/91ddf9e19605102e209e22dd7e6eba658f1bfd43))
- **Sdk:** Variable CRUD (declare/remove/get/list) + export gaps ([19756faa5](https://github.com/heygen-com/hyperframes/commit/19756faa5d056536a3b5bfa1d133a489a90f1970))
- **Core,figma Skill:** Mechanical motion translation + objective fidelity gate ([a2243f758](https://github.com/heygen-com/hyperframes/commit/a2243f7586e90e07eddcb99a477e467a30667526))
- **Producer:** Default-off router for verified parallel drawElement ([0393ba5be](https://github.com/heygen-com/hyperframes/commit/0393ba5be223db4f2c11b48776b275699b8f11f4))

## Fixes

- **Sdk:** Address PR #2100 review feedback on attachSync ([c94de6034](https://github.com/heygen-com/hyperframes/commit/c94de6034e3438090892e21eebf4c09be1ea3780))
- **Sdk Playground:** Implement PreviewAdapter.attachSync no-op stub ([393eced90](https://github.com/heygen-com/hyperframes/commit/393eced906459d9d9fc81493a0a7b7569d078d84))
- **Sdk:** Address PR #2098 review feedback on variable CRUD ([bcda11aa7](https://github.com/heygen-com/hyperframes/commit/bcda11aa7cc819052fe3ba65f67c6b15d1c0c711))
- **Studio Server:** Address PR #2097 review feedback on relative-timing resolver ([e4c4d2e15](https://github.com/heygen-com/hyperframes/commit/e4c4d2e15d76f912699df8551e4d1639754154a2))
- **Studio Server:** PreviewAdapter getElementTimings ignores relative data-start refs ([fbd21d570](https://github.com/heygen-com/hyperframes/commit/fbd21d5709d0428933c44aa09655eb8b6e3cff50))
- **Core:** Reproduce figma's vertical text trim via text-box-trim ([d6d0fccbf](https://github.com/heygen-com/hyperframes/commit/d6d0fccbf2787291f54c89f0ce5d72bc3c0b5b6d))
- **CLI:** Bump @puppeteer/browsers to ^3.0.6 to fix render hang on Node \>=24.16 (#2103) ([ccab6207c](https://github.com/heygen-com/hyperframes/commit/ccab6207c4309147dc83a7f75ae50b402ce4f350), [#2104](https://github.com/heygen-com/hyperframes/pull/2104))
- **Parsers:** Emit global gsap.set position holds before the timeline declaration ([e0b5d01c6](https://github.com/heygen-com/hyperframes/commit/e0b5d01c6d2e4e71e70c1cf46babe4a952a5e69c))
- **Producer:** Stop router from mutating process.env for cross-render state ([0045e8b3c](https://github.com/heygen-com/hyperframes/commit/0045e8b3c5a44eeb95beb05dbf550ebaed501a43))
- **Core,figma Skill:** Address PR feedback — regex key escaping, no-shell psnr probe ([3d59dcc69](https://github.com/heygen-com/hyperframes/commit/3d59dcc694bd4fe6ea49e5f8c429df6bf9f85d45))
- **Core:** Figma mapper prefixes digit-leading element ids ([63ff046c3](https://github.com/heygen-com/hyperframes/commit/63ff046c30ad77c8c01db3b10d0e7c7d6317af6e))
- **Core,cli:** Parent-relative figma child geometry; groups stop rejecting subcommand flags ([dfe63af3a](https://github.com/heygen-com/hyperframes/commit/dfe63af3ae45a68ccc5de4d9648507f1ab9cf708))
- **Core:** ApplyPositionEdits fails silently across iframe realms ([5a4832172](https://github.com/heygen-com/hyperframes/commit/5a48321726a739ec3ae73e7fc6d472f1520734ff))
- **Producer:** Restore HF_DE_PARALLEL_STREAM on every render exit path ([a23e63326](https://github.com/heygen-com/hyperframes/commit/a23e63326d923d256e6e523f5b985de0ba3f6300))
- **Engine:** Descend into repeating nested timelines for call() detection ([b9321b748](https://github.com/heygen-com/hyperframes/commit/b9321b74893ca7235768cc090217badb1b62f8d0))
- **Engine:** Disqualify static-frame dedup on any tl.call() ([50c4a1023](https://github.com/heygen-com/hyperframes/commit/50c4a10234ab3a776223ca2d968ee6b11f1b4215))

## Docs & Examples

- **Sdk:** Document CompositionVariable, id/variable utilities, and attachSync in canvas guide ([f169d5fad](https://github.com/heygen-com/hyperframes/commit/f169d5fad6e2372f6238824d79ea64769dc90476))
- **Sdk:** Document attachSync, variable CRUD, and getRootElements/getAllAnimationIds ([91cc67a00](https://github.com/heygen-com/hyperframes/commit/91cc67a007ed90ef5c198b93cbe011e80fad2b99))
- **Figma Skill:** Verbatim motion translation, wrap-marker decoding, export_video validation ([44653e186](https://github.com/heygen-com/hyperframes/commit/44653e186abf36b95c635826245bb3468bfec04b))

## Internal

- **Sdk:** Cover attachSync mirroring for setVariableValue and setTiming ([fbb6a33c9](https://github.com/heygen-com/hyperframes/commit/fbb6a33c91db9f160fb3b8e6bab04d08e4a09bc2))
- **Sdk:** Cover attachSync re-attach teardown and manual detach ([9c691d243](https://github.com/heygen-com/hyperframes/commit/9c691d24384dfe973a21fefddf43e0c9772bc962))
- **Sdk:** Cover attachSync against a detached iframe ([0e0854356](https://github.com/heygen-com/hyperframes/commit/0e085435615ac3e39538e1f76cf7d45ad450a9a6))
- **Sdk:** Cover script-patch skip and stylesheet-patch mirroring in attachSync ([ed9df3f57](https://github.com/heygen-com/hyperframes/commit/ed9df3f57d890ddaf7a25fa6c86b2fb2f743a157))

## Other Changes

- **Figma Skill:** Format verify-motion.mjs ([666b84d7b](https://github.com/heygen-com/hyperframes/commit/666b84d7bb8cd12da71b3166c03f81a1380fbf21))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.45...v0.7.46).
</Update>

<Update
  label="HyperFrames v0.7.45"
  description="Released - 2026-07-09"
  tags={["Release", "Sdk", "CLI", "Studio"]}
>
SDK gains three exports (`getRootElements`, `isNewHostBoundary`, `bareId`) and a `serialize({ stripRuntime })` option, plus a fix for `data-start` relative-timing references that used to silently resolve to 0. Studio's storyboard, crop tool, and color grading also land this release.

## Features

- **Sdk:** Export getRootElements/isNewHostBoundary/bareId, fix relative data-start ([c1b8815cb](https://github.com/heygen-com/hyperframes/commit/c1b8815cb2d9f7299a12255bf74604f9f872c9b3))
- **Studio:** Storyboard empty state with agent copy-prompt and skeleton preview ([0ac000181](https://github.com/heygen-com/hyperframes/commit/0ac000181e5809a27ea0e6b40cdfaffb6f4f8699), [#2091](https://github.com/heygen-com/hyperframes/pull/2091))
- **Studio:** Always-on crop with reposition handle, drop crop mode ([623f91d6a](https://github.com/heygen-com/hyperframes/commit/623f91d6a1ccacc7f7834b5efa251c44b79f35a2), [#2090](https://github.com/heygen-com/hyperframes/pull/2090))
- **Media Use:** Color grading — grade/lut resolve, smart-grade, grade-compare + compare ([57b3c7898](https://github.com/heygen-com/hyperframes/commit/57b3c7898783d8baec71cc55f39cee553a6f2534), [#2041](https://github.com/heygen-com/hyperframes/pull/2041))

## Fixes

- **Sdk:** Address review feedback on getRootElements/serialize/getElementTimings PR ([4fb6068fa](https://github.com/heygen-com/hyperframes/commit/4fb6068fa1512901882f87c71b6e6a0fcea476eb))
- **CLI:** Map zh to espeak-ng's cmn for Kokoro TTS synthesis ([995db68ad](https://github.com/heygen-com/hyperframes/commit/995db68ad08462f3e6f7eae5ae0d3e0b47af8dd0), [#2094](https://github.com/heygen-com/hyperframes/pull/2094))
- **Core:** Scope sub-composition html/body styles to the composition box ([6f0b57d60](https://github.com/heygen-com/hyperframes/commit/6f0b57d60875945d7ec5dd4887b50ca5bf94ef3f), [#2089](https://github.com/heygen-com/hyperframes/pull/2089))
- **CLI:** Map ggml model stem to whisper.cpp dotted DTW preset (fixes large-v3) ([8e04d0196](https://github.com/heygen-com/hyperframes/commit/8e04d0196945c5173923fb72ecc665d40d122adb), [#2086](https://github.com/heygen-com/hyperframes/pull/2086))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.44...v0.7.45).
</Update>

<Update
  label="HyperFrames v0.7.44"
  description="Released - 2026-07-08"
  tags={["Release", "Engine,producer", "Producer", "CLI"]}
>
Opt-in verified interleaved parallel drawElement streaming, plus fail-fast sub-composition timeline waits and Chrome-cache resolution fixes carried over from PR review.

## Features

- **Engine,producer:** Verified interleaved parallel drawElement streaming (opt-in) ([b3493a7b6](https://github.com/heygen-com/hyperframes/commit/b3493a7b61cd3d07e7ce5de690c3cae7859e91be))

## Fixes

- **Engine,producer:** Fix quadratic dedup rescan, correct race justification ([381887541](https://github.com/heygen-com/hyperframes/commit/381887541f9513661666877f67335cc489ab5273))
- **Engine,producer:** Close review gaps in parallel drawElement streaming ([2dbe958a4](https://github.com/heygen-com/hyperframes/commit/2dbe958a49baa08319d091d36795edd51afc3988))
- **CLI:** Check buildId when resolving the managed Chrome cache ([df1d20b76](https://github.com/heygen-com/hyperframes/commit/df1d20b7659df7858e1c8324e84cb88fa8124af0))
- **Engine:** Log composition-id attribution on script-failure bail too ([8fee20a52](https://github.com/heygen-com/hyperframes/commit/8fee20a52543dc961983d5e31d3b44125c944416))
- **Engine,producer,cli:** Close review gaps in sub-timeline fail-fast ([8ba3c3391](https://github.com/heygen-com/hyperframes/commit/8ba3c339156c9d96dd08407019b550191851e5e5))
- **Engine:** Fail-fast the sub-composition timeline wait when a script 404s ([54359f3d6](https://github.com/heygen-com/hyperframes/commit/54359f3d6ad45a99c359c8d92a59795fbdc60052))

## Docs & Examples

- **Producer:** Disambiguate compositor frame scheduling from the beginframe capture mode ([81a4f0436](https://github.com/heygen-com/hyperframes/commit/81a4f04360cf71ce67daa8eefe55d998eb375ab1))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.43...v0.7.44).
</Update>

<Update
  label="HyperFrames v0.7.43"
  description="Released - 2026-07-08"
  tags={["Release", "Cli,engine", "Engine,cli", "CLI"]}
>
Chrome/drawElement fast-capture reliability fixes, a new GSAP lint rule catching text-reflow layout thrash, and creation-skill briefs that lead with mode and value instead of generic scaffolding.

## Features

- **Skills:** Mode-first briefs, value-first storyboards, and destination defaults across creation workflows ([17b852784](https://github.com/heygen-com/hyperframes/commit/17b852784bf3922a42b3aa9801db647423073a13), [#2058](https://github.com/heygen-com/hyperframes/pull/2058))
- **Media Use:** Resolve official brand logos via a four-tier cascade ([4d3cdc3e4](https://github.com/heygen-com/hyperframes/commit/4d3cdc3e4bb952a926b466561ed9c96540e10f20), [#2061](https://github.com/heygen-com/hyperframes/pull/2061))
- **Lint:** Flag text-reflow props in gsap_non_transform_motion ([082280e8d](https://github.com/heygen-com/hyperframes/commit/082280e8de2cc68e0943b4cae755b465aa41547f))

## Fixes

- **Cli,engine:** Close review gaps in Chrome resolution fix ([5f9ee0b67](https://github.com/heygen-com/hyperframes/commit/5f9ee0b67829ac1430ae04be6011edb355ef4ac5))
- **Engine,cli:** Resolve drawElement to a Chrome build that actually has it ([8854bad8f](https://github.com/heygen-com/hyperframes/commit/8854bad8f96623584199f913a0e06c867b4b6fe1))
- **CLI:** Report unknown-flag errors + cover nested subcommands (HF#2033) [P2] ([38b27c4d8](https://github.com/heygen-com/hyperframes/commit/38b27c4d820d3e49b2a5a14ef00629fff7ea59a7), [#2072](https://github.com/heygen-com/hyperframes/pull/2072))
- **Producer:** Scope per-instance variables for repeated sub-composition mounts ([5ebc5bb10](https://github.com/heygen-com/hyperframes/commit/5ebc5bb10f4895375a5fa5e4976f80cf920a773e), [#2070](https://github.com/heygen-com/hyperframes/pull/2070))
- **CLI:** Contrast audit reads an element's own opaque background ([701ae9e9b](https://github.com/heygen-com/hyperframes/commit/701ae9e9b90d93667503f75e4107c3c96dbaf6c9), [#1975](https://github.com/heygen-com/hyperframes/pull/1975))
- **CLI:** Add --no-clipboard no longer throws "Unknown flag: --clipboard" ([e01831822](https://github.com/heygen-com/hyperframes/commit/e0183182253c34631bee2388c7df4abe28cacc7d), [#2067](https://github.com/heygen-com/hyperframes/pull/2067))
- **CLI:** Warn when a WebM render silently drops its alpha channel [P2] ([f5f94a949](https://github.com/heygen-com/hyperframes/commit/f5f94a949524c804b1961da2471689c8ce6e60c0), [#2044](https://github.com/heygen-com/hyperframes/pull/2044))
- **Engine:** Resolve relative data-start references for audio tracks ([6f8bf5f36](https://github.com/heygen-com/hyperframes/commit/6f8bf5f364e5044a383f603b451fca2e00c15c6c), [#2062](https://github.com/heygen-com/hyperframes/pull/2062))
- **Engine:** Inject sub-composition variables on the render path ([41ad5b469](https://github.com/heygen-com/hyperframes/commit/41ad5b46906689fd800132bb869306026e29517e), [#2066](https://github.com/heygen-com/hyperframes/pull/2066))
- **Cli,skills:** Install workflow skills on demand instead of re-pulling the full set ([81884a749](https://github.com/heygen-com/hyperframes/commit/81884a74956fbf7d2666795422f325d78266e1aa), [#2012](https://github.com/heygen-com/hyperframes/pull/2012))
- **Core:** Address PR feedback — ReDoS-safe slug trim, getVariables cleanups ([d9368ec05](https://github.com/heygen-com/hyperframes/commit/d9368ec051a151dc377ec2daa98d7372ab4a1e86))
- **Core,producer:** Composition CSS variables reach the render path at eval time ([e2c88ef68](https://github.com/heygen-com/hyperframes/commit/e2c88ef689a11fb293934907d36c93584c57d083))
- **Core,cli,lint:** Close the figma brand-token loop — runtime CSS variables, --name, snippet lint ([def276524](https://github.com/heygen-com/hyperframes/commit/def276524bc786625fce17f130e5b350996f1f4f))
- **Media Use:** Explain the codex alias-vs-PATH gotcha in the unavailable message ([80271863d](https://github.com/heygen-com/hyperframes/commit/80271863d34523e956e15f514ddfe85e75fa533a), [#2042](https://github.com/heygen-com/hyperframes/pull/2042))
- **CLI:** Pin arm64 render Chromium to Playwright headless-shell (#2039) ([cebce603d](https://github.com/heygen-com/hyperframes/commit/cebce603dfa5f24d65d82b98dc1698f7ea1fd48d), [#2040](https://github.com/heygen-com/hyperframes/pull/2040))
- **Producer:** Suppress GSAP call side effects during render seeks ([5b9b71df2](https://github.com/heygen-com/hyperframes/commit/5b9b71df258f239a841542c92dd799126655eb05), [#2037](https://github.com/heygen-com/hyperframes/pull/2037))
- **Ci:** Format migrated comps with oxfmt, sync skills manifest ([b95f2ca25](https://github.com/heygen-com/hyperframes/commit/b95f2ca25e46ac12468ca11efcaf51068de607ae))
- **Lint:** Catch fromTo from-object layout/reflow props in gsap_non_transform_motion ([189d8582f](https://github.com/heygen-com/hyperframes/commit/189d8582f46d74083982a0408fd0f9d973aebf56))
- **Lint,skills:** Make the reflow-prop fix faithful, not a lossy scale swap ([6e21072f4](https://github.com/heygen-com/hyperframes/commit/6e21072f442791339f9af904d34fe4bd129e4d1f))

## Docs & Examples

- **CLI:** Fix render examples that pass a file as the project dir [P2] ([ab129023d](https://github.com/heygen-com/hyperframes/commit/ab129023de03f4d98f3bb4ad01c2aeb60da21e50), [#1974](https://github.com/heygen-com/hyperframes/pull/1974))
- Add modal deployment template to deploy guide ([bb423dd21](https://github.com/heygen-com/hyperframes/commit/bb423dd217f92767962a39a25b14d42b0b612dee), [#2069](https://github.com/heygen-com/hyperframes/pull/2069))
- **Skills:** Teach transforms-over-layout-props up front ([58f7dc1c7](https://github.com/heygen-com/hyperframes/commit/58f7dc1c724b0ef432f1e92b1eab2c2ae5d3d0e1))

## Catalog

- **Lint:** Add gsap_non_transform_motion rule, migrate registry comps to transforms ([619a603ea](https://github.com/heygen-com/hyperframes/commit/619a603eabd7d0e3b7ee7b32297e6667acd7ecc5))

## Internal

- **Skills,lint:** Migrate kinetic-letter-in off letterSpacing; document rule design ([1c0eef835](https://github.com/heygen-com/hyperframes/commit/1c0eef835f3c30ccae4908b26498e2f7f462c64a))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.42...v0.7.43).
</Update>

<Update
  label="HyperFrames v0.7.42"
  description="Released - 2026-07-07"
  tags={["Release", "Producer,cli", "CLI", "Engine"]}
>
This release switches drawElement fast capture to single-worker streaming after benchmarks showed multi-page parallelism losing to priority inversion, and makes Windows rendering reliable by copying extracted frames when symlinks hit EPERM. It also hardens the CLI: render fps defaults to the composition's `data-fps`, corrupt browser downloads self-heal, and upgrade notices match the detected install method.

## Features

- **Producer,cli:** DrawElement priority inversion — single-worker streaming over auto-parallel ([924727a0b](https://github.com/heygen-com/hyperframes/commit/924727a0b462b63c28c68a5fdf971ba7a6b1a369), [#2026](https://github.com/heygen-com/hyperframes/pull/2026))

## Fixes

- **CLI:** Upgrade and update notice use the detected install method ([4b3c73d94](https://github.com/heygen-com/hyperframes/commit/4b3c73d941f208834d913876b94757a767218c70))
- **Engine:** Resolve relative data-start references in video-frame extraction ([4a36655b2](https://github.com/heygen-com/hyperframes/commit/4a36655b2bd966ed81afcdcd2afb3bb201810b09))
- **Media Use:** Create the output dir before ElevenLabs TTS writes ([42a209545](https://github.com/heygen-com/hyperframes/commit/42a209545b55c62d0647e7770523e1ce47c2de67))
- **Producer:** Fall back to copying extracted frames when symlink hits EPERM ([00b96d2ea](https://github.com/heygen-com/hyperframes/commit/00b96d2eaab071e65a02452b0416088866a2c451))
- **Producer:** Copy extracted frames on Windows to avoid symlink EPERM ([1aa39d465](https://github.com/heygen-com/hyperframes/commit/1aa39d46538544c71ca98dfa3bff059a48ceaec9))
- **CLI:** Default render fps to the composition's data-fps ([de27b4668](https://github.com/heygen-com/hyperframes/commit/de27b466808d1e1f020d06701c8ed1196a4d3029))
- **CLI:** Re-download the browser when the cached archive is corrupt ([92f3116de](https://github.com/heygen-com/hyperframes/commit/92f3116dee8d10090d1e6d18647b9445ee965a01))
- **CLI:** Lint sets process.exitCode instead of process.exit() to flush stdout ([4834de37f](https://github.com/heygen-com/hyperframes/commit/4834de37f4c94f05fc8ab3098d5f12e6486b18de))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.41...v0.7.42).
</Update>

<Update
  label="HyperFrames v0.7.41"
  description="Released - 2026-07-07"
  tags={["Release", "Media Use", "Engine"]}
>
This release makes media-use smarter about reusing existing assets instead of regenerating work, with more forgiving prompt matching and a more precise assets scan. It also fixes a render-engine edge case by pre-creating `__render_frame__` sibling directories during session initialization.

## Features

- **Media Use:** Agent-driven asset reuse (candidates + reuse) ([35e54cae1](https://github.com/heygen-com/hyperframes/commit/35e54cae1978e04d09ab4cc7c8627cdecdcf6421))

## Fixes

- **Engine:** Pre-create __render_frame__ siblings in initializeSession ([76204ec63](https://github.com/heygen-com/hyperframes/commit/76204ec6308a235eb0b77557d0a52657952572f4), [#2006](https://github.com/heygen-com/hyperframes/pull/2006))
- **Media Use:** Forgiving prompt matching + precise assets/ scan ([b5383ded4](https://github.com/heygen-com/hyperframes/commit/b5383ded4249aca8f7d2fba2e2ab11e7beb2e751))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.40...v0.7.41).
</Update>

<Update
  label="HyperFrames v0.7.40"
  description="Released - 2026-07-07"
  tags={["Release", "CLI", "Engine,producer", "Studio"]}
>
The headline this release is a Studio timeline revamp: clips visible at the playhead are highlighted, tracks and individual elements can be hidden with a non-destructive `data-hidden` toggle that carries through to renders, and ruler zoom and gutter behavior are cleaner. It also fixes static-position dragging beside an animated rotation and keeps off-canvas indicators in sync with live layout.

## Features

- **Studio:** Timeline revamp with active-clip highlighting and hide controls ([037266e7](https://github.com/heygen-com/hyperframes/commit/037266e72bd808491a82008ca2520299fecef381), [#2017](https://github.com/heygen-com/hyperframes/pull/2017))
- **CLI:** Associate signed-in HeyGen account with telemetry ([3d8372f8](https://github.com/heygen-com/hyperframes/commit/3d8372f880a6739ee3e0beea484905d76e5ad3a9), [#2020](https://github.com/heygen-com/hyperframes/pull/2020))

## Fixes

- **CLI:** Figma component import survives unrenderable nodes ([4c8064d4](https://github.com/heygen-com/hyperframes/commit/4c8064d4d3d1ffe51a10b1c7eee79a49b2fc468f), [#2022](https://github.com/heygen-com/hyperframes/pull/2022))
- **Studio:** Off-canvas indicators track live layout instead of going stale ([574da2b2](https://github.com/heygen-com/hyperframes/commit/574da2b215b29cc3e8288551ce37e7a06cdaa194), [#2018](https://github.com/heygen-com/hyperframes/pull/2018))
- **Studio:** Static-position drag no longer freezes an element beside an animated rotation ([5d598354](https://github.com/heygen-com/hyperframes/commit/5d59835446bb426def56a791d19a99a6ebe283d3), [#2016](https://github.com/heygen-com/hyperframes/pull/2016))
- **Skills:** Audit descriptions — trim routing prose, fix stale facts, add missing triggers ([306a291d](https://github.com/heygen-com/hyperframes/commit/306a291deaf8796cd2e9e34c406d707a7bdf3f7f), [#1990](https://github.com/heygen-com/hyperframes/pull/1990))

## Internal

- **Engine,producer:** Adopt requestPaint contract, retire autoAlpha rewrite ([337d0b51](https://github.com/heygen-com/hyperframes/commit/337d0b51bcd81184520b23259799d42aaa366ed2), [#2021](https://github.com/heygen-com/hyperframes/pull/2021))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.39...v0.7.40).
</Update>

<Update
  label="HyperFrames v0.7.39"
  description="Released - 2026-07-07"
  tags={["Release", "Engine,producer,cli", "Skills", "Studio"]}
>
Fast-capture self-verification now covers video compositions — drawElement init defers until the frame injector is attached, so probe-initialized video renders get the same ground-truth safety net as graphics comps. Also new: a warmup-robust `capture_p50_ms` render metric, a Parakeet ASR engine for `transcribe`, and the v2 media OS core with transcription-driven editing tools.

## Features

- **Engine,producer,cli:** Verify video comps via deferred DE init + capture p50 ([b26c27576](https://github.com/heygen-com/hyperframes/commit/b26c27576b71d9a86c57828f7e1712b14479edeb), [#2015](https://github.com/heygen-com/hyperframes/pull/2015))
- **Skills:** Align easing docs with motion doctrine, add baked springEase ([47276edcc](https://github.com/heygen-com/hyperframes/commit/47276edcc601d3bc8f50f52773a4193415340a6d), [#1989](https://github.com/heygen-com/hyperframes/pull/1989))
- **Media Use:** Transcription (parakeet), transcript-cut, audio-duck editing tools ([ac0153cb3](https://github.com/heygen-com/hyperframes/commit/ac0153cb30143e17264f20123d1c2a7074c87509))
- **Media Use:** V2 media OS core (resolve cascade, providers, local generation, telemetry) + retire hyperframes-media ([5fe957363](https://github.com/heygen-com/hyperframes/commit/5fe957363d2be6d04f4a002fea965dbcc2bd633b))
- **Studio:** Non-destructive crop + cross-project asset view ([676f461f6](https://github.com/heygen-com/hyperframes/commit/676f461f6a16f29fffe4633dcab1bec9366bddab))
- **CLI:** Parakeet ASR engine for transcribe (--engine) + HYPERFRAMES_PYTHON override ([8c3590a90](https://github.com/heygen-com/hyperframes/commit/8c3590a90e4be76593ef7554a805004af789b373))
- **CLI:** Forward feedback submissions to the backend feedback endpoint ([9fe06f30d](https://github.com/heygen-com/hyperframes/commit/9fe06f30da6fbe6085c616ee22c3627fb9e99f57), [#2003](https://github.com/heygen-com/hyperframes/pull/2003))

## Fixes

- Align README skills table padding so oxfmt --check passes ([68a8547f4](https://github.com/heygen-com/hyperframes/commit/68a8547f47dedb4e033f2bcc29449ca8b08b5afa), [#2014](https://github.com/heygen-com/hyperframes/pull/2014))
- **Studio:** Remove selection overlay fill ([8f022d06e](https://github.com/heygen-com/hyperframes/commit/8f022d06ecfc170f36c5efbc078f57d7e6c0bcaa))
- **Producer:** Mix muted browser media as silent for preview-render parity ([a2a80d5a5](https://github.com/heygen-com/hyperframes/commit/a2a80d5a5c8649a0ef79b89047ebf3debe42dfd1), [#1969](https://github.com/heygen-com/hyperframes/pull/1969))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.38...v0.7.39).
</Update>

<Update
  label="HyperFrames v0.7.38"
  description="Released - 2026-07-07"
  tags={["Release", "Engine,producer,cli", "CLI", "Studio"]}
>
drawElement fast capture is now **on by default** for macOS hardware-GPU renders — roughly 2× faster capture, wrapped in a per-render self-verification net that automatically falls back to the classic screenshot path if a frame can't be proven correct (kill switch: `PRODUCER_EXPERIMENTAL_FAST_CAPTURE=false`). Also new: media color grading (Studio inspector + runtime shaders), end-to-end render cancel, and richer render telemetry.

## Features

- **Engine,producer,cli:** DrawElement release telemetry on render_complete ([100570344](https://github.com/heygen-com/hyperframes/commit/1005703441c122e5462f34e0212e52e5490407a0), [#2002](https://github.com/heygen-com/hyperframes/pull/2002))
- **Studio,studio Server,cli:** Render cancel end-to-end + renders/nle/storyboard UX ([241f9d683](https://github.com/heygen-com/hyperframes/commit/241f9d683ec7f34c9c398cc2a6c2d272a6e38268), [#1963](https://github.com/heygen-com/hyperframes/pull/1963))
- **Engine,producer:** DrawElement fast-capture default-on with runtime self-verification safety net ([ec06f4bf8](https://github.com/heygen-com/hyperframes/commit/ec06f4bf895d811b3b1cf140e53e79244bbd1f9a), [#1998](https://github.com/heygen-com/hyperframes/pull/1998))
- **Lint,player:** Fast-capture lint rule + player media sync ([992a9b660](https://github.com/heygen-com/hyperframes/commit/992a9b660708e3c4ca17620fb01265db95aaca59), [#1921](https://github.com/heygen-com/hyperframes/pull/1921))
- **Producer:** Fast-capture render stages + remote bg-image localizer ([1d0dbcd3b](https://github.com/heygen-com/hyperframes/commit/1d0dbcd3b2a81ce00ca2deef5d6cc44f3b22ef96), [#1920](https://github.com/heygen-com/hyperframes/pull/1920))
- **Engine:** Frame-capture core — fast-capture routing, worker-encode, dedup extension ([0e58344dc](https://github.com/heygen-com/hyperframes/commit/0e58344dca3052ca1e83337d22c54b977852f5b3), [#1919](https://github.com/heygen-com/hyperframes/pull/1919))
- **Engine:** 3D projection + compositor-effect risk gate ([4749fe571](https://github.com/heygen-com/hyperframes/commit/4749fe5716357b4c1521d6a1644ab0be013976c1), [#1918](https://github.com/heygen-com/hyperframes/pull/1918))
- **Engine:** DrawElementImage capture service ([795934adb](https://github.com/heygen-com/hyperframes/commit/795934adbac849cba6ec0b0ea83dc69b509a4f4c), [#1917](https://github.com/heygen-com/hyperframes/pull/1917))
- **Studio:** Harden ui primitives — focus rings, keyboard tooltips, dialog hook ([cd1adcb58](https://github.com/heygen-com/hyperframes/commit/cd1adcb581d4638433b4f8c4d43986b419256762), [#1962](https://github.com/heygen-com/hyperframes/pull/1962))
- **Engine,cli:** DrawElement fast-capture config + CLI flag ([e04f6dda3](https://github.com/heygen-com/hyperframes/commit/e04f6dda37bf7dd2fe5bf564ecac55713869d2d5), [#1916](https://github.com/heygen-com/hyperframes/pull/1916))
- **Lint:** Warn when \<html dir\> can blank render output ([afa7f292f](https://github.com/heygen-com/hyperframes/commit/afa7f292fb267bb6498bf58afba18369574eee92), [#1893](https://github.com/heygen-com/hyperframes/pull/1893))
- **CLI:** Emit sign-in lifecycle telemetry ([769dc702c](https://github.com/heygen-com/hyperframes/commit/769dc702c1d62b86f1f5b2a05d76af39fc1be6b2), [#2000](https://github.com/heygen-com/hyperframes/pull/2000))
- **Studio:** Add color grading inspector ([139cf568b](https://github.com/heygen-com/hyperframes/commit/139cf568b481cd50a7d9d80ac2c00b6ec1a6410b))
- **Studio Server:** Add media processing routes ([a3bf7eb99](https://github.com/heygen-com/hyperframes/commit/a3bf7eb995ae1b6cc6f6c95a999d19e6df3526b6))
- **Runtime:** Render media color grading shaders ([870964b0c](https://github.com/heygen-com/hyperframes/commit/870964b0cf190702c76066aaef7c81ea4424f7ab))
- **Core:** Add media color grading contract ([7c1443849](https://github.com/heygen-com/hyperframes/commit/7c144384962e6f4ce55046884055f6f462d044cf))
- **CLI:** Figma import telemetry — subcommand labels, typed error codes, figma_import event ([e9076324e](https://github.com/heygen-com/hyperframes/commit/e9076324e703fdd91142b7f138b2f2c96cba1376), [#1979](https://github.com/heygen-com/hyperframes/pull/1979))
- **Cli/telemetry:** Surface unrecognized agents in the agent_runtime=null bucket ([232d59147](https://github.com/heygen-com/hyperframes/commit/232d591479448233a9a54097da0963fc1034e450), [#1978](https://github.com/heygen-com/hyperframes/pull/1978))

## Fixes

- **CLI:** Localize remote assets before validate so it matches render ([906c8d04f](https://github.com/heygen-com/hyperframes/commit/906c8d04f85b909252753b24102cdbad1780378d), [#2001](https://github.com/heygen-com/hyperframes/pull/2001))
- **Studio:** Shell UX — data-loss guards, error surfacing, dialog contracts, toasts ([89e36da13](https://github.com/heygen-com/hyperframes/commit/89e36da13dcd5cda4455fa48e9cbb4d9b7f7dbda), [#1964](https://github.com/heygen-com/hyperframes/pull/1964))
- **Compiler:** Don't scan media tags inside comments/scripts; DOM-check auto-start (#1938) ([1a3330a97](https://github.com/heygen-com/hyperframes/commit/1a3330a972d98de09a93e4cf6d1a61fcc1a63cb1), [#1940](https://github.com/heygen-com/hyperframes/pull/1940))
- **Studio:** Share safe media path cleanup ([04f96da16](https://github.com/heygen-com/hyperframes/commit/04f96da16967eecff82dfb16e2e0cd238469ffb5))
- **Studio:** Avoid regex in media asset path cleanup ([e0090efbf](https://github.com/heygen-com/hyperframes/commit/e0090efbf6946d8b28e54159e95dbd8b0a82484e))
- **Studio:** Split color grading inspector files ([30a944de3](https://github.com/heygen-com/hyperframes/commit/30a944de342de0ff7715946a7d80c6f96d9e9074))
- **Studio Server:** Share background removal job runner ([413ee07da](https://github.com/heygen-com/hyperframes/commit/413ee07da51c76a1430a58f40fb81021f1adb05c))
- **Runtime:** Satisfy color grading audit ([644ae384a](https://github.com/heygen-com/hyperframes/commit/644ae384a549cea6a686c07344e99b87366c0480))
- **Parsers,sdk,studio Server,studio:** Unify hf-id space across preview, disk, and SDK session ([3a717fa71](https://github.com/heygen-com/hyperframes/commit/3a717fa71997477c6f81dce7c9f2e63a4ad675ed), [#1981](https://github.com/heygen-com/hyperframes/pull/1981))

## Performance

- **Engine,producer:** Batch N drawElement frames per CDP round-trip (HF_DE_BATCH) ([d5ecb013d](https://github.com/heygen-com/hyperframes/commit/d5ecb013d71763891b8092c4bc081bb12b3d4782), [#1928](https://github.com/heygen-com/hyperframes/pull/1928))

## Docs & Examples

- **Figma:** Storyboard blurb reworded + frames-are-app-states escalation ([ccc130883](https://github.com/heygen-com/hyperframes/commit/ccc1308839a73e3a7d76fff4669a9a220b7eff11), [#2004](https://github.com/heygen-com/hyperframes/pull/2004))
- Document Studio Color Grading ([b38c054ba](https://github.com/heygen-com/hyperframes/commit/b38c054baf97b90770f64310785fb514b0051de4))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.37...v0.7.38).
</Update>

<Update
  label="HyperFrames v0.7.37"
  description="Released - 2026-07-06"
  tags={["Release", "Lambda", "Sdk,studio", "Hyperframes Media"]}
>
A maintenance release with two reliability fixes: animation ids now resolve from the parsed script in the SDK and Studio (so tweens whose selectors don't currently match a live DOM element are handled correctly), and the CLI gives a clear error when `npx` can't be resolved on Windows. Also includes 53 documentation accuracy fixes.

## Fixes

- **Sdk,studio:** Resolve animation ids from parsed script, not just DOM-matched elements ([c5d725abd](https://github.com/heygen-com/hyperframes/commit/c5d725abd0407761dc4a44de95417688ca6a4af2), [#1957](https://github.com/heygen-com/hyperframes/pull/1957))
- **Hyperframes Media:** Surface a clear error when npx can't be resolved on Windows ([dfa6fedbc](https://github.com/heygen-com/hyperframes/commit/dfa6fedbcdaf8478b4be99d907d88fd079d9bc0a), [#1961](https://github.com/heygen-com/hyperframes/pull/1961))

## Docs & Examples

- Fix 53 inaccuracies across all documentation ([52d586dd3](https://github.com/heygen-com/hyperframes/commit/52d586dd31cfcc2d436d046f71907c2655617552))
- Update README.md ([c2862eae1](https://github.com/heygen-com/hyperframes/commit/c2862eae1bc03fad7ccfb8b44be072757051c94d))

## Internal

- **Lambda:** Behavioral guard for handler CJS banner shims ([2b1109db4](https://github.com/heygen-com/hyperframes/commit/2b1109db4c05d8edfa71c398d8482e166f63b650), [#1977](https://github.com/heygen-com/hyperframes/pull/1977))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.36...v0.7.37).
</Update>

<Update
  label="HyperFrames v0.7.36"
  description="Released - 2026-07-05"
  tags={["Release", "CLI"]}
>
This release closes the remaining Windows FFmpeg path gap by making CLI preflight
choose real `ffmpeg.exe`/`ffprobe.exe` binaries over shell shims. `hyperframes
render` now avoids exporting `ffmpeg.cmd` as `HYPERFRAMES_FFMPEG_PATH`, keeping
the engine on the hardened executable-resolution path.

## Fixes

- **CLI:** Prefer real ffmpeg exe over cmd shim ([98b539df](https://github.com/heygen-com/hyperframes/commit/98b539df728f221de677e7ede3e9e3eb4cad2bca), [#1958](https://github.com/heygen-com/hyperframes/pull/1958))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.35...v0.7.36).
</Update>

<Update
  label="HyperFrames v0.7.35"
  description="Released - 2026-07-05"
  tags={["Release", "Lambda", "Engine", "Hyperframes Media"]}
>
This release fixes three feedback-driven reliability issues: Lambda render bundles now provide CommonJS path globals for inlined dependencies, Windows FFmpeg lookup prefers real executables over command shims, and offline SFX resolution no longer records missing bundled files as usable audio.

## Fixes

- **Lambda:** Define `__dirname` and `__filename` in handler bundles ([f999b40d](https://github.com/heygen-com/hyperframes/commit/f999b40d73aa8e0cbe082c199a566f544fbf6f96))
- **Engine:** Prefer real FFmpeg executables over Windows command shims ([b7dcb9e2](https://github.com/heygen-com/hyperframes/commit/b7dcb9e2a3bd220c889be0ac8ff31b0ea5c62a36))
- **Hyperframes Media:** Skip and report offline SFX entries whose bundled file is missing ([b34e623b](https://github.com/heygen-com/hyperframes/commit/b34e623bf8c5fb2ae9608edf1908c466584d627e))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.34...v0.7.35).
</Update>

<Update
  label="HyperFrames v0.7.34"
  description="Released - 2026-07-05"
  tags={["Release", "Engine"]}
>
This release hardens DOM layer masking in the engine so temporary screenshot
visibility changes restore the exact prior inline state. It adds another guard
around layered HDR captures, reducing the chance that masking one frame affects
later captures.

## Fixes

- **Engine:** Preserve DOM mask visibility state ([56d4a7032](https://github.com/heygen-com/hyperframes/commit/56d4a7032b64ecc3f46eeb7ed17e62a11af1c07b), [#1953](https://github.com/heygen-com/hyperframes/pull/1953))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.33...v0.7.34).
</Update>

<Update
  label="HyperFrames v0.7.33"
  description="Released - 2026-07-04"
  tags={["Release", "Producer"]}
>
This release fixes an HDR compositing regression where hidden or future timed DOM
descendants could be revived during per-layer screenshots and bleed into HDR
frames. DOM-layer masking now preserves those hidden descendants while capturing
the active layer, keeping HDR output aligned with preview timing.

## Fixes

- **Producer:** Avoid reviving hidden DOM in HDR layers ([bb066077b](https://github.com/heygen-com/hyperframes/commit/bb066077b4ecbf4efc021779e37da6475c6f80dd), [#1935](https://github.com/heygen-com/hyperframes/pull/1935))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.32...v0.7.33).
</Update>

<Update
  label="HyperFrames v0.7.32"
  description="Released - 2026-07-04"
  tags={["Release", "Hyperframes Media", "CLI", "Video Workflows"]}
>
This release hardens the CLI validation and browser-install paths: validate now seeks through the runtime player, honors the configured timeout more consistently, and browser installs recover from stale or partial downloads without racing concurrent forced reinstalls. It also closes Windows media setup gaps, scopes `window.__hyperframes` correctly inside sub-compositions, pads transition-tail frame durations, and moves large audio filter graphs out of the command line.

## Fixes

- **Hyperframes Media:** Install MusicGen deps via python3 -m pip, not bare pip ([942080fa8](https://github.com/heygen-com/hyperframes/commit/942080fa8e8e77de93ef6546690b5b5421d80e88), [#1894](https://github.com/heygen-com/hyperframes/pull/1894))
- **Hyperframes Media:** Resolve python3 -\> python/py on Windows ([3388635f1](https://github.com/heygen-com/hyperframes/commit/3388635f1d1431de0b2a2e7d132f834f7614557c), [#1922](https://github.com/heygen-com/hyperframes/pull/1922))
- **CLI:** Validate seeks the runtime player directly, not raw timelines ([3f49f107e](https://github.com/heygen-com/hyperframes/commit/3f49f107eb8fb64b34f621bfcd076391ff06e167), [#1895](https://github.com/heygen-com/hyperframes/pull/1895))
- **CLI:** Validate navigation timeout honors --timeout, hints on CDN scripts ([0338be97f](https://github.com/heygen-com/hyperframes/commit/0338be97fdc548fd4a179561810c0c9320b61388), [#1929](https://github.com/heygen-com/hyperframes/pull/1929))
- **Video Workflows:** Pad the frame's own duration to match the transition tail ([8bc1e5d60](https://github.com/heygen-com/hyperframes/commit/8bc1e5d603bd828511bdc6dddaa96a64ea7a43d3), [#1889](https://github.com/heygen-com/hyperframes/pull/1889))
- **Engine:** Write the audio mix filter graph to a file, not the command line ([8a3227f54](https://github.com/heygen-com/hyperframes/commit/8a3227f5482320907edcb47972c3d7f6e25c6d62), [#1890](https://github.com/heygen-com/hyperframes/pull/1890))
- **CLI:** Purge stale/partial browser installs instead of wedging retries ([78069da14](https://github.com/heygen-com/hyperframes/commit/78069da1403669cb3f68a475da128d0b0ce14a97), [#1913](https://github.com/heygen-com/hyperframes/pull/1913))
- **Core:** Route window.__hyperframes to the scoped variant in sub-comps ([f7c9c35d8](https://github.com/heygen-com/hyperframes/commit/f7c9c35d8b1095037402cc55539084d514691b28), [#1931](https://github.com/heygen-com/hyperframes/pull/1931))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.31...v0.7.32).
</Update>

<Update
  label="HyperFrames v0.7.31"
  description="Released - 2026-07-04"
  tags={["Release", "Core,cli"]}
>
This release makes Figma imports first-class citizens of the shared media inventory: every `hyperframes figma asset` import now regenerates `.media/index.md` (byte-identical with media-use's format), carries `--description`/`--entity` metadata into the manifest, index, and alt text, and the reuse path correctly upserts metadata and dedupes against any prior format/scale/version tuple. media-use's entity lookups now match figma-imported brand marks across the icon/image boundary.

## Features

- **Core,cli:** Media-use interop — shared index.md regen + description/entity on figma imports ([3900caaaa](https://github.com/heygen-com/hyperframes/commit/3900caaaa94443efb01597dac26df1533f8add35), [#1927](https://github.com/heygen-com/hyperframes/pull/1927))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.30...v0.7.31).
</Update>

<Update
  label="HyperFrames v0.7.30"
  description="Released - 2026-07-04"
  tags={["Release", "Studio", "Sdk"]}
>
This release adds a low-volume attempt counter to the resolver-shadow tripwire, giving the SDK-cutover soak gate a real `divergences / attempts` denominator instead of a bare divergence count. It also fixes `moveElement` losing its offset when the target element is under a running GSAP animation.

## Features

- **Studio:** Add resolver-shadow attempt counter for soak-gate denominator ([fe821ff8b](https://github.com/heygen-com/hyperframes/commit/fe821ff8bc9acbb840b4a42153db66790b9419a1), [#1926](https://github.com/heygen-com/hyperframes/pull/1926))

## Fixes

- **Sdk:** MoveElement survives GSAP animation per-axis via runtime delta translate ([74faa4b2a](https://github.com/heygen-com/hyperframes/commit/74faa4b2a42c60c77d1550e7288bf3333c15e25d), [#1875](https://github.com/heygen-com/hyperframes/pull/1875))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.29...v0.7.30).
</Update>

<Update
  label="HyperFrames v0.7.29"
  description="Released - 2026-07-04"
  tags={["Release", "Skills", "Studio", "Core,cli"]}
>
This release ships the Figma integration: import Figma frames as frozen assets, pull brand variables and styles as composition tokens, convert frames to editable brand-linked HTML components, and translate Figma Motion timelines into seekable GSAP — all routed through the new /figma skill and `hyperframes figma` CLI. It also lands a wave of engine extraction-performance work (caching, dedup, one-pass VFR/HDR) and studio persist-failure hardening.

## Features

- **Skills:** Reroute /figma by capability - REST/CLI for phases 1-3, MCP for 4-5 (M4) ([566d49382](https://github.com/heygen-com/hyperframes/commit/566d49382c9cb5c0f690e29f3cd1014b8e69e39a), [#1873](https://github.com/heygen-com/hyperframes/pull/1873))
- **Core,cli:** Figma component import with binding-aware node-to-html mapper (M3) ([ee7a96147](https://github.com/heygen-com/hyperframes/commit/ee7a96147a5d71797ef041e48395ed1918a375a9), [#1872](https://github.com/heygen-com/hyperframes/pull/1872))
- **Core,cli:** Figma tokens import with alias-aware binding records (M2) ([4d60792ad](https://github.com/heygen-com/hyperframes/commit/4d60792adc0cc9c807f5734b492052a8598d6d4e), [#1871](https://github.com/heygen-com/hyperframes/pull/1871))
- **Core,cli:** Figma REST client, asset import command, binding index (M0+M1) ([fb13797d2](https://github.com/heygen-com/hyperframes/commit/fb13797d2f2715dc38649add1aea577d214d42f8), [#1870](https://github.com/heygen-com/hyperframes/pull/1870))
- **Core:** Figma motion → GSAP translator + /figma skill v1 ([e92700acd](https://github.com/heygen-com/hyperframes/commit/e92700acded50469d3fb35da3a8b198d2cdc36d8), [#1869](https://github.com/heygen-com/hyperframes/pull/1869))
- **Core:** Figma module foundations — types, parseFigmaRef, freeze, manifest, asset snippet ([397c3ba7a](https://github.com/heygen-com/hyperframes/commit/397c3ba7a84211bfa52a93a410f34368f7ab5110), [#1868](https://github.com/heygen-com/hyperframes/pull/1868))

## Fixes

- **Studio:** Surface persist failures with toast and guarded revert ([e6e0d97cc](https://github.com/heygen-com/hyperframes/commit/e6e0d97cc560ebca57a28f5c0872e706679f568d), [#1910](https://github.com/heygen-com/hyperframes/pull/1910))
- **Studio:** Per-child patch op builders and persist-seam harness ([22942280b](https://github.com/heygen-com/hyperframes/commit/22942280b61c3b6d40dae6ca00a401969684e234), [#1909](https://github.com/heygen-com/hyperframes/pull/1909))
- **Studio Server:** Child-scoped patch operations with batch abort ([23f67da5e](https://github.com/heygen-com/hyperframes/commit/23f67da5e236fa9b5c5838786b48378e7704b67d), [#1908](https://github.com/heygen-com/hyperframes/pull/1908))
- **Studio:** Make canvas selection hit intended elements ([02e9d6142](https://github.com/heygen-com/hyperframes/commit/02e9d6142d8e3d812c1d8525753355793a3b9988), [#1907](https://github.com/heygen-com/hyperframes/pull/1907))

## Performance

- **Engine:** Superset extraction for overlapping trims of one source ([1a7002f20](https://github.com/heygen-com/hyperframes/commit/1a7002f208353239f0e10596fa1decc897fed34f), [#1885](https://github.com/heygen-com/hyperframes/pull/1885))
- **Engine:** One-pass SDR-to-HDR extraction with cache-key transform ([48f158a0c](https://github.com/heygen-com/hyperframes/commit/48f158a0c2cd27bfc114903a37560cd4db872fe8), [#1902](https://github.com/heygen-com/hyperframes/pull/1902))
- **Engine:** Extraction cache on by default with atomic publish and LRU gc ([34590649a](https://github.com/heygen-com/hyperframes/commit/34590649a05594914b98d4cc6198a2e5aac953c6), [#1901](https://github.com/heygen-com/hyperframes/pull/1901))
- **Engine:** Dedupe identical extractions within one render ([8d64d48e4](https://github.com/heygen-com/hyperframes/commit/8d64d48e4a9ae620771e331d83bd74eb1716d66b), [#1900](https://github.com/heygen-com/hyperframes/pull/1900))
- **Engine:** One-pass VFR extraction with -fps_mode cfr ([786058334](https://github.com/heygen-com/hyperframes/commit/78605833415e9f80097a773b949c146f4e1a5e9d), [#1899](https://github.com/heygen-com/hyperframes/pull/1899))
- **Engine:** Write PNG frames at compression_level 1 ([557a27027](https://github.com/heygen-com/hyperframes/commit/557a270271372d458d5adb944473a485d47e3079), [#1898](https://github.com/heygen-com/hyperframes/pull/1898))

## Internal

- **Studio:** Agent-browser e2e smoke for the design panel ([08c0a0351](https://github.com/heygen-com/hyperframes/commit/08c0a03510aaa86f1acc848ab75d0b24557dbf7e), [#1912](https://github.com/heygen-com/hyperframes/pull/1912))
- **Studio:** Cover persist-failure hook behavior ([64688ddaf](https://github.com/heygen-com/hyperframes/commit/64688ddaf2e5bb17d203b0d28f02e3142ac0035c), [#1911](https://github.com/heygen-com/hyperframes/pull/1911))
- **Studio:** Add design-panel QA fixture and triage matrix ([4d199c0f3](https://github.com/heygen-com/hyperframes/commit/4d199c0f3ab8bec55e32eff197e12eca796bf172), [#1906](https://github.com/heygen-com/hyperframes/pull/1906))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.28...v0.7.29).
</Update>

<Update
  label="HyperFrames v0.7.28"
  description="Released - 2026-07-03"
  tags={["Release", "Engine", "Producer"]}
>
This release fixes a render/preview mismatch where sub-composition root styles could diverge in producer renders. It also scales static-frame dedup verification with longer runs so repeated-frame optimizations stay reliable across longer outputs.

## Fixes

- **Engine:** Scale static-dedup verification density with run length ([df221c1f](https://github.com/heygen-com/hyperframes/commit/df221c1fd685862b62e3057438203f79eedae111), [#1903](https://github.com/heygen-com/hyperframes/pull/1903))
- **Producer:** Render diverges from preview for sub-composition root styling ([7e8a1466](https://github.com/heygen-com/hyperframes/commit/7e8a1466c3b058071c5ed89241ed70e2d0878645), [#1886](https://github.com/heygen-com/hyperframes/pull/1886))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.27...v0.7.28).
</Update>

<Update
  label="HyperFrames v0.7.27"
  description="Released - 2026-07-03"
  tags={["Release", "Capture", "Hyperframes Media", "Producer"]}
>
This release adds three new capture-extraction categories (gradient washes, glass panels, nav CTAs) and migrates cloud-render uploads to the higher-capacity direct-uploads endpoint. Also includes reliability fixes across CLI (Chrome install races, media validation), producer (audio-mix failures now surface instead of shipping silently video-only), lint (several false-positive fixes), and slideshow presenter mode over screen share.

## Features

- **Capture:** Extract gradient washes, glass panels, and nav CTAs ([dd774b369](https://github.com/heygen-com/hyperframes/commit/dd774b3692e71656b038cb2d5a11f05ba52c2880), [#1879](https://github.com/heygen-com/hyperframes/pull/1879))
- **CLI:** Migrate cloud-render upload to /v3/assets/direct-uploads (200MB) ([a59ff0d91](https://github.com/heygen-com/hyperframes/commit/a59ff0d91b4074bd16b7e4d41fb9a9ffbc9eab8e), [#1844](https://github.com/heygen-com/hyperframes/pull/1844))

## Fixes

- **Hyperframes Media:** Npx spawn without shell:true fails silently on Windows ([3b6791824](https://github.com/heygen-com/hyperframes/commit/3b67918242ab0d74b37241b059fa54a792977067), [#1845](https://github.com/heygen-com/hyperframes/pull/1845))
- **Hyperframes Media:** Fall back to ffmpeg when ffprobe is missing ([e2b43583f](https://github.com/heygen-com/hyperframes/commit/e2b43583fc2480aa9511cd5e606a58841c4f211e), [#1877](https://github.com/heygen-com/hyperframes/pull/1877))
- **Hyperframes Media:** Cap TTS synthesis concurrency instead of firing every line at once ([2e9a33ca7](https://github.com/heygen-com/hyperframes/commit/2e9a33ca719a2b28bd8bb51083df32b8f74ca437), [#1862](https://github.com/heygen-com/hyperframes/pull/1862))
- **Producer:** Surface the reason when audio mixing fails instead of silently shipping video-only ([f40dbd86c](https://github.com/heygen-com/hyperframes/commit/f40dbd86cf2df77a26004578a66b4035e4d742c5), [#1854](https://github.com/heygen-com/hyperframes/pull/1854))
- **CLI:** Lock chrome-headless-shell install against concurrent extraction races ([638c33bc0](https://github.com/heygen-com/hyperframes/commit/638c33bc01965247614af67875644e2e18a8e4a3), [#1866](https://github.com/heygen-com/hyperframes/pull/1866))
- **CLI:** Validate stops misreporting slow-loading media as unreadable ([b087f1e3c](https://github.com/heygen-com/hyperframes/commit/b087f1e3c09d24e3a339ec4bf2f129af39f0a915), [#1849](https://github.com/heygen-com/hyperframes/pull/1849))
- **Engine:** Name the fix in the ffmpeg encode-timeout error message ([eef469075](https://github.com/heygen-com/hyperframes/commit/eef469075299439c0c79b38d8488639106a42dca), [#1858](https://github.com/heygen-com/hyperframes/pull/1858))
- **Lint:** Stop scene-exit hard-kill rules from contradicting gsap_animates_clip_element ([c7b34d5c6](https://github.com/heygen-com/hyperframes/commit/c7b34d5c6536129e5589377e7e4c9a0b763b4494), [#1846](https://github.com/heygen-com/hyperframes/pull/1846))
- **Lint:** Stop a leading \<svg\> defs block from being mistaken for the composition root ([8ee4b7dfd](https://github.com/heygen-com/hyperframes/commit/8ee4b7dfda8f884076f4844136611c886d8e8107), [#1867](https://github.com/heygen-com/hyperframes/pull/1867))
- **Lint:** Recognize computed-key window.__timelines registrations ([d2f1adc2a](https://github.com/heygen-com/hyperframes/commit/d2f1adc2affea69e33550d60945a237e92602eb5), [#1874](https://github.com/heygen-com/hyperframes/pull/1874))
- **Lint:** Mention src: local() for system fonts in font_family_without_font_face ([b7eb0dfb5](https://github.com/heygen-com/hyperframes/commit/b7eb0dfb5a87d53bb542f5f70723110ea60c6990), [#1859](https://github.com/heygen-com/hyperframes/pull/1859))
- **Slideshow:** Make presenter mode work over Google Meet/Zoom screen share ([a7c3cc7d6](https://github.com/heygen-com/hyperframes/commit/a7c3cc7d689b13c5bb96559f9bad713205edb194))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.26...v0.7.27).
</Update>

<Update
  label="HyperFrames v0.7.26"
  description="Released - 2026-07-02"
  tags={["Release", "Producer", "CLI", "Studio"]}
>
v0.7.26 makes imported designs more reliable by normalizing host-system primary font stacks to deterministic web fonts before distributed plan validation. It also adds render-reliability telemetry for preflight rejections, transient retries, and OOM classification, plus Studio controls and fixes around automatic keyframe recording.

## Features

- **CLI:** Emit render_preflight_rejected telemetry for P1-3 pre-flight saves ([9b41891f](https://github.com/heygen-com/hyperframes/commit/9b41891f3a39e73a0b91bd97bb00fa6767a4769e), [#1856](https://github.com/heygen-com/hyperframes/pull/1856))
- **Producer,cli:** Render-reliability telemetry counters for capture hardening ([733f88cb](https://github.com/heygen-com/hyperframes/commit/733f88cb1f10bdbe31c924c4e0f1f8359f19e7d9), [#1850](https://github.com/heygen-com/hyperframes/pull/1850))
- **Studio:** Add a global toggle to stop manual edits from auto-recording keyframes ([636d5dd6](https://github.com/heygen-com/hyperframes/commit/636d5dd6c52083a6c10a25eb00580c207b164534))

## Fixes

- **Producer:** Normalize system-primary font stacks ([e10e61ce](https://github.com/heygen-com/hyperframes/commit/e10e61ceb2cfb9664915548b4b8d42456d636aa1), [#1857](https://github.com/heygen-com/hyperframes/pull/1857))
- **Studio:** Don't crash resizing an element whose keyframes were removed ([dff3634e](https://github.com/heygen-com/hyperframes/commit/dff3634ea89d8834a41f2fd935111d9f5530a637))
- **Studio:** Re-sync soft-reloaded timelines to the studio's own scrub time ([70606f84](https://github.com/heygen-com/hyperframes/commit/70606f840df92549afdc85824fdc58d319b93819))
- **Studio:** Fix array-form keyframe writes, diamond click-deselect, and nested video sync ([1b8b2ac4](https://github.com/heygen-com/hyperframes/commit/1b8b2ac425703e4ea3600b6656f7fc67bb7cd7b2))
- **Studio:** Resolve recent timeline regressions ([9b311588](https://github.com/heygen-com/hyperframes/commit/9b311588be7e72ab7627c55a001fa63ae5c8307c))

## Internal

- **CLI:** De-flake cold-import tests under CI contention via vitest timeouts ([438474c9](https://github.com/heygen-com/hyperframes/commit/438474c968e1c094cb3a01453d6309c099502666), [#1855](https://github.com/heygen-com/hyperframes/pull/1855))

## Other Changes

- Keep Codex plugin category as Creativity ([bf8b3d97](https://github.com/heygen-com/hyperframes/commit/bf8b3d9796a740ff93015d4723b486bfcc5935a1), [#1860](https://github.com/heygen-com/hyperframes/pull/1860))
- **Studio:** Make the auto-keyframe toggle icon a diamond with a record dot ([ae50327b](https://github.com/heygen-com/hyperframes/commit/ae50327bdb4a80123ff3b099ff067310a59b85c3))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.25...v0.7.26).
</Update>

<Update
  label="HyperFrames v0.7.25"
  description="Released - 2026-07-02"
  tags={["Release", "CLI", "Engine", "Render"]}
>
v0.7.25 adds the `hyperframes keyframes` command for inspecting GSAP, CSS, Anime.js, and 3D onion-skin shots from the CLI. It also improves first-time render reliability with Linux/WSL dependency checks, actionable preset preflight failures, transient capture retries with OOM guidance, and isolated forced-screenshot workers for parallel renders.

## Features

- **CLI:** Keyframes command (surface GSAP/CSS/Anime keyframes + 3D onion-skin --shot) ([a908af11](https://github.com/heygen-com/hyperframes/commit/a908af11a814d6fd2c9d3b65d8311e5c3f3742b9), [#1603](https://github.com/heygen-com/hyperframes/pull/1603))

## Fixes

- **Engine:** Parallelize forced screenshot workers ([145c71e8](https://github.com/heygen-com/hyperframes/commit/145c71e837f208d382462f0dfe5d8840f3c33414), [#1848](https://github.com/heygen-com/hyperframes/pull/1848))
- **Render:** Pre-flight aspect-ratio / alpha preset mismatch with actionable guidance ([6be46813](https://github.com/heygen-com/hyperframes/commit/6be46813a213cdd1ef605f2efd93c76bb18deda9), [#1843](https://github.com/heygen-com/hyperframes/pull/1843))
- **Producer:** Harden capture against timeouts, transient tab deaths, and OOM ([c0c3abf0](https://github.com/heygen-com/hyperframes/commit/c0c3abf0f16ca41e5dfebcf6b70bd6845127130c), [#1842](https://github.com/heygen-com/hyperframes/pull/1842))
- **CLI:** Detect missing Chrome libs & ffmpeg on Linux/WSL in doctor ([180f368a](https://github.com/heygen-com/hyperframes/commit/180f368af1dd6b4d949d182805644077feaa81bc), [#1841](https://github.com/heygen-com/hyperframes/pull/1841))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.24...v0.7.25).
</Update>

<Update
  label="HyperFrames v0.7.24"
  description="Released - 2026-07-01"
  tags={["Release", "Studio"]}
>
Follow-up to v0.7.23's resolver-shadow filter extension: single-flights the reorder source read (one fetch per batch instead of one per unresolved target) and tags loose-match `sourceHfIdCount: 0` events so they're distinguishable on the telemetry dashboard.

## Fixes

- **Studio:** Single-flight reorder source read, tag loose-match sourceHfIdCount, brace style ([69b927a30](https://github.com/heygen-com/hyperframes/commit/69b927a300c9c9f8f74cd9cc55dff98abc0e5974))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.23...v0.7.24).
</Update>

<Update
  label="HyperFrames v0.7.23"
  description="Released - 2026-07-01"
  tags={["Release", "Studio", "Player", "Runtime"]}
>
This release unifies CLI and Studio telemetry identity, extends the resolver-shadow noise filter to cover timing/GSAP/reorder edits, and auto-infers composition duration for CSS/WAAPI/Lottie compositions so `data-duration` is no longer required. Also includes pre-flight validation for malformed sub-compositions and a batch of CLI/lint reliability fixes.

## Features

- **Telemetry:** Unify CLI and Studio PostHog identity (Layer 1) ([9c4d9e50a](https://github.com/heygen-com/hyperframes/commit/9c4d9e50a01e0e139d95a80f6c2216867036d905), [#1829](https://github.com/heygen-com/hyperframes/pull/1829))
- **Capture:** Extract chips/stat-cells/tabs, detect icon fonts, transparent grounds ([6cc87312d](https://github.com/heygen-com/hyperframes/commit/6cc87312d4dffba9df531f6f156c0d0d1462aa82))

## Fixes

- **Studio:** Extend resolver-shadow runtime-node filter to timing/GSAP/reorder chokepoints ([c215a20c8](https://github.com/heygen-com/hyperframes/commit/c215a20c8e43c1966e92b42eddb45534922a6fae), [#1839](https://github.com/heygen-com/hyperframes/pull/1839))
- **Player:** Rescale on cross-origin timeline ready, guard warn spam ([e5ec4cf53](https://github.com/heygen-com/hyperframes/commit/e5ec4cf53243a19a8a34f029c3139abaf07315c3), [#1840](https://github.com/heygen-com/hyperframes/pull/1840))
- **Runtime:** Auto-infer composition duration for CSS/WAAPI/Lottie so data-duration is optional ([24edb1509](https://github.com/heygen-com/hyperframes/commit/24edb15095d2343fcd20c0468d2591b075810507), [#1830](https://github.com/heygen-com/hyperframes/pull/1830))
- **Core,producer,cli:** Pre-flight validation for empty/malformed sub-compositions ([cf573f7f3](https://github.com/heygen-com/hyperframes/commit/cf573f7f3f8bfcc68b99c514afba4de0655436fc), [#1831](https://github.com/heygen-com/hyperframes/pull/1831))
- **Engine:** Retry probe on pollHfReady zero-duration timeout ([b33d54f54](https://github.com/heygen-com/hyperframes/commit/b33d54f54b362b754d0b32427e31ba6a8bf3f49b), [#1824](https://github.com/heygen-com/hyperframes/pull/1824))
- **Skills:** Clear two Snyk Fails and harden the network + supply-chain surface ([535297280](https://github.com/heygen-com/hyperframes/commit/535297280aabdd55005682d4774cbde2c5f1ef4b), [#1804](https://github.com/heygen-com/hyperframes/pull/1804))
- **Skills:** Make hyperframes package version resolution non-fatal and overridable ([060889f84](https://github.com/heygen-com/hyperframes/commit/060889f84c430ad8d8d90fe1b7fd74ef4485a705), [#1825](https://github.com/heygen-com/hyperframes/pull/1825))
- **CLI:** Keep doctor resilient to a corrupt browser cache ([0d202ea77](https://github.com/heygen-com/hyperframes/commit/0d202ea77921e123c3df35133d4919bcf02a94e7), [#1822](https://github.com/heygen-com/hyperframes/pull/1822))
- **CLI:** Exclude clip-path-hidden text from inspect layout and contrast audits ([a7d0ab2d6](https://github.com/heygen-com/hyperframes/commit/a7d0ab2d61a0c7b1f60a9782981d8852af046a78), [#1821](https://github.com/heygen-com/hyperframes/pull/1821))
- **Lint:** Catch visible markup comments ([d1038918b](https://github.com/heygen-com/hyperframes/commit/d1038918bb92307d62ed7edfbb6c9b3ed37e41cb), [#1819](https://github.com/heygen-com/hyperframes/pull/1819))
- **CLI:** Don't run unbounded ffprobe on remote snapshot inputs ([1a36b2abb](https://github.com/heygen-com/hyperframes/commit/1a36b2abb4298ac20e5c842ac2b06e0230ff5a5e))
- **CLI:** Extract snapshot video frames from remote http(s) srcs ([1f377f732](https://github.com/heygen-com/hyperframes/commit/1f377f732b73a376b4371e9aa4347e7315e0a774))

## Docs & Examples

- Clarify transparent WebM shows as yuv420p under ffprobe (alpha is a VP9 side-channel) ([534d6177b](https://github.com/heygen-com/hyperframes/commit/534d6177b65bfd7aadc74d1a0632410e03b1d8ac), [#1823](https://github.com/heygen-com/hyperframes/pull/1823))
- **Sdk:** Republish SDK tab pages (Mintlify incremental deploy skipped the new files) ([bd27ea31a](https://github.com/heygen-com/hyperframes/commit/bd27ea31adcee07736f6a2c244acda77a4215975))
- **Sdk:** Pin editing-affordances availability to @hyperframes/sdk@0.7.22 ([9140ee51b](https://github.com/heygen-com/hyperframes/commit/9140ee51b3109b97346cda083714e0b13b1270cf))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.22...v0.7.23).
</Update>

<Update
  label="HyperFrames v0.7.22"
  description="Released - 2026-06-30"
  tags={["Release", "Sdk", "Editing", "CLI"]}
>
This release makes `@hyperframes/sdk` a first-class editing engine: a new shared `resolveEditingAffordances` API (with a browser SDK adapter) tells custom editors what's editable on any element, backed by comprehensive SDK reference docs and guides. The storyboard view is now on by default, plus encode, lint, and CLI reliability fixes.

## Features

- **Editing:** Shared resolveEditingAffordances (core) + studio re-point + SDK adapter ([5915590b0](https://github.com/heygen-com/hyperframes/commit/5915590b069a2e3144ae1e1bfb49478b72240894), [#1814](https://github.com/heygen-com/hyperframes/pull/1814))
- **CLI:** Add --public flag to publish ([856bb0980](https://github.com/heygen-com/hyperframes/commit/856bb0980fc9f85244cd1d0c8233cb7390642b0b), [#1815](https://github.com/heygen-com/hyperframes/pull/1815))
- **CLI:** File a GitHub issue with a published repro from feedback ([010df6a0a](https://github.com/heygen-com/hyperframes/commit/010df6a0a4edbf7179d634fb12805f47ef89ec6e), [#1816](https://github.com/heygen-com/hyperframes/pull/1816))
- **Studio:** Make storyboard view default available (remove FF) ([f24a1a9ce](https://github.com/heygen-com/hyperframes/commit/f24a1a9ce7250965df8e89ece4403d373c9d01e9), [#1794](https://github.com/heygen-com/hyperframes/pull/1794))

## Fixes

- **Lint:** Recognize Three.js loaded via ESM URL/path imports ([27a7f3749](https://github.com/heygen-com/hyperframes/commit/27a7f37494f9b3e315bb8b89196d71b6f541b31f), [#1805](https://github.com/heygen-com/hyperframes/pull/1805))
- **Lint:** Stop font_family_without_font_face flagging system-ui stacks and var() ([11432ea8c](https://github.com/heygen-com/hyperframes/commit/11432ea8ce82571c8473244f56edc06a8decf531), [#1796](https://github.com/heygen-com/hyperframes/pull/1796))
- **Engine:** Pad odd output dimensions up to even for H.264/H.265 encode ([3a2f05288](https://github.com/heygen-com/hyperframes/commit/3a2f0528890c0de4ac0bb31629323ed7f00133d9), [#1802](https://github.com/heygen-com/hyperframes/pull/1802))
- **Examples:** Host the kinetic-type A-roll so the video actually renders ([c01d1ae03](https://github.com/heygen-com/hyperframes/commit/c01d1ae03d710022f7fbabd21991eba9faea1eb3), [#1799](https://github.com/heygen-com/hyperframes/pull/1799))
- **Lint:** Stop overlapping_gsap_tweens flagging distinct unresolved targets ([036e3660c](https://github.com/heygen-com/hyperframes/commit/036e3660cd1bd15ded7300ef2623f26aa1179faa), [#1798](https://github.com/heygen-com/hyperframes/pull/1798))
- **CLI:** Never print "[object Object]" from validate/inspect errors ([a5c2636e8](https://github.com/heygen-com/hyperframes/commit/a5c2636e8c35043e89d476300019e37dfe0cb24c), [#1810](https://github.com/heygen-com/hyperframes/pull/1810))
- **CLI:** Skip AI skills install when git is unavailable ([23adfdc49](https://github.com/heygen-com/hyperframes/commit/23adfdc496f2187c8eb3632d0a69e053930680f5), [#1803](https://github.com/heygen-com/hyperframes/pull/1803))
- **CLI:** Omit render duration when feedback command has none ([db61509dd](https://github.com/heygen-com/hyperframes/commit/db61509ddcdc9897768a9d242855956d21d5dd5b), [#1797](https://github.com/heygen-com/hyperframes/pull/1797))
- **CLI:** Show output video length in render summary, not render time ([e7939ccd5](https://github.com/heygen-com/hyperframes/commit/e7939ccd5309f6c31045d4ebd11f1912e2bd969c), [#1812](https://github.com/heygen-com/hyperframes/pull/1812))
- **CLI:** Serve project media with HTTP Range so validate reads WAV duration ([466ee08ff](https://github.com/heygen-com/hyperframes/commit/466ee08ffa540755a430bd54f078a3764ca4b4ef), [#1811](https://github.com/heygen-com/hyperframes/pull/1811))
- Storyboard-angle review follow-ups (M1 bg-on-clip, B3 slideshow, parser guard, CLI fixes) ([a4303137c](https://github.com/heygen-com/hyperframes/commit/a4303137cbce5164f1663996b3c3b2f5921c5485), [#1791](https://github.com/heygen-com/hyperframes/pull/1791))
- **Studio:** Filter runtime-generated nodes from resolver-shadow telemetry ([a4eacaec3](https://github.com/heygen-com/hyperframes/commit/a4eacaec37e79d8b3fcdbe514b59bf1e4035f4f8), [#1795](https://github.com/heygen-com/hyperframes/pull/1795))

## Docs & Examples

- **Sdk:** Comprehensive SDK reference + guides ([26e9283f6](https://github.com/heygen-com/hyperframes/commit/26e9283f6b7c660c0f76a3b82143a226cde70702), [#1817](https://github.com/heygen-com/hyperframes/pull/1817))
- Root composition duration is compile-time, not script/--variables parameterizable ([bdd0084c2](https://github.com/heygen-com/hyperframes/commit/bdd0084c2a778b541b89af09689fd7a997408cdc), [#1818](https://github.com/heygen-com/hyperframes/pull/1818))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.21...v0.7.22).
</Update>

<Update
  label="HyperFrames v0.7.21"
  description="Released - 2026-06-30"
  tags={["Release", "Lint", "Skills", "Core"]}
>
Adds a lint rule that errors on `crossorigin` on media (it renders fine but shows blank in preview) and fixes the root cause of id-less media rendering as a blank wash in the timing compiler.

## Features

- **Lint:** Error on crossorigin on media (breaks preview) ([1faeba4a](https://github.com/heygen-com/hyperframes/commit/1faeba4aa5e309c1ea688e37e833ffaba60429eb), [#1793](https://github.com/heygen-com/hyperframes/pull/1793))

## Fixes

- **Core:** Root-cause id-less media wash in timingCompiler getAttr, drop the band-aid ([0dfedd11](https://github.com/heygen-com/hyperframes/commit/0dfedd111c49948c531f2e2b0b290e50024176e7), [#1792](https://github.com/heygen-com/hyperframes/pull/1792))

## Docs & Examples

- **Skills:** Instruct agents to run `hyperframes feedback` after render ([04700ea9](https://github.com/heygen-com/hyperframes/commit/04700ea9c51d6b29f8512e2ae4c2655054acf20b), [#1785](https://github.com/heygen-com/hyperframes/pull/1785))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.20...v0.7.21).
</Update>

<Update
  label="HyperFrames v0.7.20"
  description="Released - 2026-06-30"
  tags={["Release", "Producer,lint", "Producer", "Core"]}
>
This release fixes a render-correctness bug where a video or audio element identified only by a `data-hf-id` (no real `id`) rendered as a blank white wash with dropped audio. It also restores Studio keyframe retiming (drag-to-retime and Move to Playhead) and ships capture and runtime reliability improvements.

## Features

- **Studio:** Restore keyframe retiming — drag-to-retime + Move to Playhead (closes #1782) ([b403c54a](https://github.com/heygen-com/hyperframes/commit/b403c54ae7b8d3f58808600f7cc69a004fbd93f5), [#1784](https://github.com/heygen-com/hyperframes/pull/1784))
- **CLI:** Expose Studio selection through preview ([9983f37c](https://github.com/heygen-com/hyperframes/commit/9983f37c13dc7d8fbd35da21e88229e3500cee9a), [#1777](https://github.com/heygen-com/hyperframes/pull/1777))

## Fixes

- **Producer,lint:** Id-less media renders blank wash instead of footage ([74f9c31b](https://github.com/heygen-com/hyperframes/commit/74f9c31b3fdeacf3a5700b17cbe718d7b00e54d2), [#1790](https://github.com/heygen-com/hyperframes/pull/1790))
- **Producer:** Keep video captures viewport-bound on software ([c9613cd8](https://github.com/heygen-com/hyperframes/commit/c9613cd8260563d92e4e87b4e68e27e836214398), [#1788](https://github.com/heygen-com/hyperframes/pull/1788))
- **Core:** Publish runtime inline artifact ([e73076e9](https://github.com/heygen-com/hyperframes/commit/e73076e93c7d4dbcec779943fb0a801e8d10e31f), [#1787](https://github.com/heygen-com/hyperframes/pull/1787))
- **Studio:** Keyframe/position editing correctness + thumbnail cache busting + local-studio preview discovery ([0a9555a0](https://github.com/heygen-com/hyperframes/commit/0a9555a0f7176583c1ac04d0f3cd4db977e0c023), [#1781](https://github.com/heygen-com/hyperframes/pull/1781))
- **Render:** Avoid empty WAAPI scans and llvmpipe auto GPU ([fc0f8c31](https://github.com/heygen-com/hyperframes/commit/fc0f8c315102812a9629bcdeec09f75e26027da2), [#1775](https://github.com/heygen-com/hyperframes/pull/1775))

## Performance

- **Engine:** Reduce init overhead in headless capture sessions ([35a01d90](https://github.com/heygen-com/hyperframes/commit/35a01d9058fca2c4f5e9a4aa13a86d2eafc77c68), [#1718](https://github.com/heygen-com/hyperframes/pull/1718))

## Docs & Examples

- Trim README motion hero ([38c6cd11](https://github.com/heygen-com/hyperframes/commit/38c6cd1113738a95f2f360dc9d70571a47629151), [#1780](https://github.com/heygen-com/hyperframes/pull/1780))

## Internal

- **Skills:** Rebuild faceless-explainer + pr-to-video on the shot-sequence architecture ([7cb83865](https://github.com/heygen-com/hyperframes/commit/7cb83865390d642e4e09bc162ad8c4a002545c6b), [#1778](https://github.com/heygen-com/hyperframes/pull/1778))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.17...v0.7.20).
</Update>

<Update
  label="HyperFrames v0.7.19"
  description="Released - 2026-06-29"
  tags={["Release", "Core", "Studio", "Skills"]}
>
This release fixes the `@hyperframes/core` package by publishing the generated
runtime inline module required by the top-level entrypoint. It also improves
Studio keyframe editing and retiming, refreshes bundled skills, and trims the
README motion preview.

## Features

- **Studio:** Restore keyframe retiming — drag-to-retime + Move to Playhead (closes #1782) ([b403c54a](https://github.com/heygen-com/hyperframes/commit/b403c54ae7b8d3f58808600f7cc69a004fbd93f5), [#1784](https://github.com/heygen-com/hyperframes/pull/1784))

## Fixes

- **Core:** Publish runtime inline artifact ([e73076e9](https://github.com/heygen-com/hyperframes/commit/e73076e93c7d4dbcec779943fb0a801e8d10e31f), [#1787](https://github.com/heygen-com/hyperframes/pull/1787))
- **Studio:** Keyframe/position editing correctness + thumbnail cache busting + local-studio preview discovery ([0a9555a0](https://github.com/heygen-com/hyperframes/commit/0a9555a0f7176583c1ac04d0f3cd4db977e0c023), [#1781](https://github.com/heygen-com/hyperframes/pull/1781))

## Docs & Examples

- Trim README motion hero ([38c6cd11](https://github.com/heygen-com/hyperframes/commit/38c6cd1113738a95f2f360dc9d70571a47629151), [#1780](https://github.com/heygen-com/hyperframes/pull/1780))

## Internal

- **Skills:** Rebuild faceless-explainer + pr-to-video on the shot-sequence architecture ([7cb83865](https://github.com/heygen-com/hyperframes/commit/7cb83865390d642e4e09bc162ad8c4a002545c6b), [#1778](https://github.com/heygen-com/hyperframes/pull/1778))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.18...v0.7.19).
</Update>

<Update
  label="HyperFrames v0.7.18"
  description="Released - 2026-06-28"
  tags={["Release", "CLI", "Render", "Engine"]}
>
This release targets the reported render regression by removing per-frame empty
animation scans, fixing software WebGL auto-detection on CPU render hosts, and
reducing headless capture setup overhead. It also exposes Studio selection state
through `hyperframes preview` so coding agents can inspect and edit the active
composition more directly.

## Features

- **CLI:** Expose Studio selection through preview ([9983f37c](https://github.com/heygen-com/hyperframes/commit/9983f37c13dc7d8fbd35da21e88229e3500cee9a), [#1777](https://github.com/heygen-com/hyperframes/pull/1777))

## Fixes

- **Render:** Avoid empty WAAPI scans and llvmpipe auto GPU ([fc0f8c31](https://github.com/heygen-com/hyperframes/commit/fc0f8c315102812a9629bcdeec09f75e26027da2), [#1775](https://github.com/heygen-com/hyperframes/pull/1775))

## Performance

- **Engine:** Reduce init overhead in headless capture sessions ([35a01d90](https://github.com/heygen-com/hyperframes/commit/35a01d9058fca2c4f5e9a4aa13a86d2eafc77c68), [#1718](https://github.com/heygen-com/hyperframes/pull/1718))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.17...v0.7.18).
</Update>

<Update
  label="HyperFrames v0.7.17"
  description="Released - 2026-06-27"
  tags={["Release"]}
>
`@hyperframes/lint` can now run **fully in the browser** — validate compositions client-side with no Node.js and no server round-trip — and it now depends only on `@hyperframes/parsers`, so installing the validator no longer pulls the studio server or other unrelated packages.

## Features

- **Lint:** New `@hyperframes/lint/browser` entry — a node-free, client-side rule engine (`lintHyperframeHtml`, `lintMediaUrls`, `shouldBlockRender`) for browser-only editors and tools ([6aaab32c](https://github.com/heygen-com/hyperframes/commit/6aaab32ccb4de355abca8310c2d4fd69ea95e47b), [#1773](https://github.com/heygen-com/hyperframes/pull/1773))

## Internal

- **Lint:** Depend only on `@hyperframes/parsers` (dropped `@hyperframes/core`); relocated the shared URL/asset-path, font-alias, and slideshow-parser utilities into `@hyperframes/parsers` with back-compat stubs in core, and hardened the CSS `url()` regex against polynomial-ReDoS ([6aaab32c](https://github.com/heygen-com/hyperframes/commit/6aaab32ccb4de355abca8310c2d4fd69ea95e47b), [#1773](https://github.com/heygen-com/hyperframes/pull/1773))

## Docs & Examples

- Add package pages for parsers, lint, and studio-server ([7e0a4cd0](https://github.com/heygen-com/hyperframes/commit/7e0a4cd02edc6a5e7229cdb914ea159618dd29cd), [#1772](https://github.com/heygen-com/hyperframes/pull/1772))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.16...v0.7.17).
</Update>

<Update
  label="HyperFrames v0.7.16"
  description="Released - 2026-06-27"
  tags={["Release", "Studio", "Gsap"]}
>
Studio gains **element groups**: select multiple elements and group them into a single editable unit — on the canvas and in the timeline — then ungroup back to their original positions. This release also reads inline-authored GSAP timelines and fixes keyframe commit routing, 3D-transform edits, and ungroup positioning.

## Features

- **Studio:** Expand sub-composition groups + children in the timeline ([6a729b7e](https://github.com/heygen-com/hyperframes/commit/6a729b7e035e79ef08d41ec55e5df5623c98cbfa), [#1761](https://github.com/heygen-com/hyperframes/pull/1761))
- **Gsap:** Read timelines authored inline (acorn read path) ([2e02bcf7](https://github.com/heygen-com/hyperframes/commit/2e02bcf77af55db4b60e4504bcd2dd0033dc337a), [#1760](https://github.com/heygen-com/hyperframes/pull/1760))
- **Studio:** Element groups — studio UI ([1eed7a9b](https://github.com/heygen-com/hyperframes/commit/1eed7a9b1f8bf7b93ad8cc22bcc7125c644c43d9), [#1759](https://github.com/heygen-com/hyperframes/pull/1759))
- **Studio:** Element groups — source mutations ([4c461b4a](https://github.com/heygen-com/hyperframes/commit/4c461b4a55dbd3a200386f3efa724cf251cf6f37), [#1758](https://github.com/heygen-com/hyperframes/pull/1758))

## Fixes

- **Studio:** Keep useGsapTweenCache under the size cap + correct non-sticky drill test ([a44ef47e](https://github.com/heygen-com/hyperframes/commit/a44ef47e1aabea7369ad98ea95ec7358111f7028), [#1770](https://github.com/heygen-com/hyperframes/pull/1770))
- **Studio:** Bake the group transform into members on ungroup ([bc5a51a6](https://github.com/heygen-com/hyperframes/commit/bc5a51a6ee3277ad1f86bc542388a87b0252348a), [#1764](https://github.com/heygen-com/hyperframes/pull/1764))
- **Studio:** Remove keyframe dragging from the timeline ([cf8f8aa5](https://github.com/heygen-com/hyperframes/commit/cf8f8aa568e751ccb18d5929bc2a9568724715a3), [#1763](https://github.com/heygen-com/hyperframes/pull/1763))
- **Studio:** Keyframe commit routing for 3D and cross-group edits ([2d3b19d2](https://github.com/heygen-com/hyperframes/commit/2d3b19d2559d93ef5623bbd155573d10f695de05), [#1762](https://github.com/heygen-com/hyperframes/pull/1762))

## Internal

- **Studio:** Remove debug logging ([de42af43](https://github.com/heygen-com/hyperframes/commit/de42af438aab6b145dfe2727d1611df567cc8bf7), [#1765](https://github.com/heygen-com/hyperframes/pull/1765))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.15...v0.7.16).
</Update>

<Update
  label="HyperFrames v0.7.15"
  description="Released - 2026-06-27"
  tags={["Release", "CLI"]}
>
This CLI release keeps `hyperframes init` on the GitHub-backed skills
freshness path while the skills.sh registry catches up, with a CI-only escape
hatch and offline-safe best-effort install behavior. It also publishes the newly
extracted parser, lint, and studio-server packages as part of the fixed-version
package set.

## Fixes

- **CLI:** Always check GitHub skills on init while skills.sh syncs ([bf630bfe](https://github.com/heygen-com/hyperframes/commit/bf630bfe1ee9998429d73f109f242903634891df), [#1768](https://github.com/heygen-com/hyperframes/pull/1768))

## Internal

- Extract @hyperframes/studio-server from core ([7a4853df](https://github.com/heygen-com/hyperframes/commit/7a4853dfe6e7e55effca57314011cec322c13a23), [#1757](https://github.com/heygen-com/hyperframes/pull/1757))
- Extract @hyperframes/lint from core ([98d0bdd7](https://github.com/heygen-com/hyperframes/commit/98d0bdd73c7551abeb6962bd82eedc1c44e3d953), [#1756](https://github.com/heygen-com/hyperframes/pull/1756))
- Extract @hyperframes/parsers from core ([cdf9c817](https://github.com/heygen-com/hyperframes/commit/cdf9c817e1c0c396a5c24c75ea08a8dba72e3528), [#1755](https://github.com/heygen-com/hyperframes/pull/1755))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.14...v0.7.15).
</Update>

<Update
  label="HyperFrames v0.7.14"
  description="Released - 2026-06-27"
  tags={["Release", "CLI"]}
>
This CLI release makes HyperFrames skills self-healing: installs now keep a
freshness manifest, install once globally, and mirror only HyperFrames-owned
skills into detected agent stores.

## Features

- **CLI:** Skills freshness — version check, manifest, global install + multi-agent mirror ([bf961d12](https://github.com/heygen-com/hyperframes/commit/bf961d1268427997a9e0a909d13198f50d1ab8c5), [#1753](https://github.com/heygen-com/hyperframes/pull/1753))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.13...v0.7.14).
</Update>

<Update
  label="HyperFrames v0.7.13"
  description="Released - 2026-06-26"
  tags={["Release", "Lint"]}
>
This lint reliability release catches malformed generated HTML that leaves CSS
or code-looking text between the document head and the composition root, where a
browser would render it as visible video text.

## Fixes

- **Lint:** Catch visible css before composition root ([c7830b54](https://github.com/heygen-com/hyperframes/commit/c7830b54c617f1435a97575b9a7eaa104594c835), [#1751](https://github.com/heygen-com/hyperframes/pull/1751))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.12...v0.7.13).
</Update>

<Update
  label="HyperFrames v0.7.12"
  description="Released - 2026-06-26"
  tags={["Release", "Lint", "CLI", "Skills"]}
>
This release unblocks Zephyr and other producer-backed generation flows that use
Google Fonts: those imports now warn instead of hard-failing lint when the
producer can resolve them. It also keeps HyperFrames skills installs targeted to
the agents a project actually uses and adds a product-launch video skill.

## Features

- **Skills:** Product-launch-video skill + consolidate motion knowledge into hyperframes-animation ([05af482f](https://github.com/heygen-com/hyperframes/commit/05af482f22a3df534c38056f7d7894b9e469d655), [#1745](https://github.com/heygen-com/hyperframes/pull/1745))

## Fixes

- **Lint:** Allow producer-resolved google fonts ([aacce27a](https://github.com/heygen-com/hyperframes/commit/aacce27a33140857a3ee2d6384cb9c5d44a556fe), [#1750](https://github.com/heygen-com/hyperframes/pull/1750))
- **CLI:** Scope skill installs to relevant agents, not all ~70 via --all ([70a03f78](https://github.com/heygen-com/hyperframes/commit/70a03f788bac97a04342a4db2310204766a0eacd), [#1748](https://github.com/heygen-com/hyperframes/pull/1748))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.11...v0.7.12).
</Update>

<Update
  label="HyperFrames v0.7.11"
  description="Released - 2026-06-26"
  tags={["Release", "CLI", "Runtime", "Producer"]}
>
This release keeps the `hyperframes skills` CLI honest about what's installed. `skills check` now flags skills that were renamed or dropped upstream, `skills update` prunes them and installs with `--copy` so a freshly installed set matches the published manifest, and login persists and shows a friendly user identity. It also lands producer and runtime reliability work: render fps is honored when seeking, `/health` is served from a worker thread so probes survive main-thread stalls, and binary file responses now stream.

## Features

- **CLI:** Persist + show friendly user identity; preserve unknown credential fields ([b9b578039](https://github.com/heygen-com/hyperframes/commit/b9b57803969c3fd02f80682e11d6190496cbb4eb), [#1741](https://github.com/heygen-com/hyperframes/pull/1741))
- **CLI:** Surface and prune skills removed upstream ([88fffb04d](https://github.com/heygen-com/hyperframes/commit/88fffb04d1f1b5e564c88ac92b8b3cddd6340b5e), [#1740](https://github.com/heygen-com/hyperframes/pull/1740))
- **CLI:** Add skills version check, update, and freshness manifest ([d70ee134c](https://github.com/heygen-com/hyperframes/commit/d70ee134cc132cae868fe68d61e0b25cf2ebcf31), [#1738](https://github.com/heygen-com/hyperframes/pull/1738))

## Fixes

- **CLI:** Install skills with --copy so check sees a faithful, correctly-placed set ([51f8231eb](https://github.com/heygen-com/hyperframes/commit/51f8231eb57f887f4647a7e859de69e314beb30b), [#1744](https://github.com/heygen-com/hyperframes/pull/1744))
- **CLI:** Close skills removed-detection power-user gaps (follow-up to #1740) ([13b115e00](https://github.com/heygen-com/hyperframes/commit/13b115e00684a8b6ed1ebed952b6fec2868d5c86), [#1743](https://github.com/heygen-com/hyperframes/pull/1743))
- **Runtime:** Honor render fps when seeking ([c9e8dd386](https://github.com/heygen-com/hyperframes/commit/c9e8dd38624a2eec6a89469e33d596dba254c8a2), [#1739](https://github.com/heygen-com/hyperframes/pull/1739))
- **Producer:** Serve /health from a worker_thread so probes survive main-thread stalls ([01a10cdc5](https://github.com/heygen-com/hyperframes/commit/01a10cdc539c10b3cda6675f38a4a481380ce2f8), [#1733](https://github.com/heygen-com/hyperframes/pull/1733))

## Performance

- **Producer:** Stream binary file responses, async-read HTML ([ca9e1316b](https://github.com/heygen-com/hyperframes/commit/ca9e1316be598b0d93343c66500af455c1ea2678), [#1735](https://github.com/heygen-com/hyperframes/pull/1735))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.10...v0.7.11).
</Update>

<Update
  label="HyperFrames v0.7.10"
  description="Released - 2026-06-26"
  tags={["Release", "Producer"]}
>
This producer reliability release blocks impossible distributed plans before they
fan out to chunk workers, preventing unbounded runtime timelines from turning
into runaway render work. It also fixes distributed frame-path indexing so
reconstructed extracted-frame assets resolve from the correct zero-based keys.

## Fixes

- **Producer:** Reject impossible distributed durations ([dca5fa90](https://github.com/heygen-com/hyperframes/commit/dca5fa90cb230adddbb2c9a02da80fa6a209c88b), [#1732](https://github.com/heygen-com/hyperframes/pull/1732))
- **Producer:** RebuildExtractedFramesFromPlanDir off-by-one in framePaths key indexing ([7db84fc0](https://github.com/heygen-com/hyperframes/commit/7db84fc0ad9e642c4890dd0d99e32b1126c065d8), [#1730](https://github.com/heygen-com/hyperframes/pull/1730))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.9...v0.7.10).
</Update>

<Update
  label="HyperFrames v0.7.9"
  description="Released - 2026-06-26"
  tags={["Release", "Studio", "Core", "Engine"]}
>
A reliability release for Studio authoring: Enable-keyframes now works (and auto-tracks endpoints) on statically-positioned elements backed by a global `gsap.set`, and manually dragging such elements no longer flings them off-canvas — the position is migrated cleanly onto GSAP. Rounded out with composition-lint and clip hold-frame fixes.

## Fixes

- **Studio:** Enable keyframes works (and auto-tracks) on elements with a global gsap.set ([226a741c](https://github.com/heygen-com/hyperframes/commit/226a741c9dd282a4a4aa88d173bc0a5cfd0f8ea9), [#1728](https://github.com/heygen-com/hyperframes/pull/1728))
- **Core:** Lint leaked head text in compositions ([bafed1fc](https://github.com/heygen-com/hyperframes/commit/bafed1fc9a913f5f9b58bb6f48b354859e810d8b), [#1727](https://github.com/heygen-com/hyperframes/pull/1727))
- **Engine:** Hold last frame when a clip's media is shorter than its slot ([92385711](https://github.com/heygen-com/hyperframes/commit/92385711dccbe89a6673357a6f39da7379d68528), [#1726](https://github.com/heygen-com/hyperframes/pull/1726))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.8...v0.7.9).
</Update>

<Update
  label="HyperFrames v0.7.8"
  description="Released - 2026-06-25"
  tags={["Release", "Studio", "Producer", "Registry"]}
>
Headlining this release is a draggable 3D-transform cube in the Studio design panel — tilt an element in X/Y/Z, dial in perspective and scale right on the canvas, and keyframe it like any other property. It ships alongside per-slide slideshow autoplay, new lower-thirds catalog blocks, and producer reliability and security fixes.

## Features

- **Studio:** Draggable 3D-transform cube in the design panel ([37ac1380](https://github.com/heygen-com/hyperframes/commit/37ac1380418961f4bee0c582cb585d2b28796d46), [#1710](https://github.com/heygen-com/hyperframes/pull/1710))
- **Slideshow:** Per-slide autoplay (manual-advance, opt-in) ([7517f6ac](https://github.com/heygen-com/hyperframes/commit/7517f6ac86496fa422e1dd918482f10b3fe4a546), [#1708](https://github.com/heygen-com/hyperframes/pull/1708))

## Fixes

- **Producer:** Stop retrying capture attempts that made zero progress ([690cf1b7](https://github.com/heygen-com/hyperframes/commit/690cf1b7a5ae0acff709e86b68fd2fce7c4bc039), [#1725](https://github.com/heygen-com/hyperframes/pull/1725))
- **Media Use:** Kill shell command injection in probe/heygen-search/eval ([041f2fa1](https://github.com/heygen-com/hyperframes/commit/041f2fa196f830bbb7215e3da6c6f991ab695a2d))

## Catalog

- **Registry:** Add lower thirds catalog blocks ([ab818a2f](https://github.com/heygen-com/hyperframes/commit/ab818a2f1d97f1fc4ca06443aab821ce77441f60), [#1134](https://github.com/heygen-com/hyperframes/pull/1134))
- Add 19-skills catalog to README, CLAUDE.md, and Mintlify docs ([f7bc0384](https://github.com/heygen-com/hyperframes/commit/f7bc0384f062fa6d9142ac06119b14729644f237), [#1722](https://github.com/heygen-com/hyperframes/pull/1722))

## Internal

- **Skills:** Run skills/**/*.test.mjs in CI ([0c05025c](https://github.com/heygen-com/hyperframes/commit/0c05025c04f9a18761ccdd4ca9f1a64ee8655556), [#1724](https://github.com/heygen-com/hyperframes/pull/1724))
- **Skills:** Rename graphic-overlays skill to talking-head-recut ([56859b61](https://github.com/heygen-com/hyperframes/commit/56859b618f45f646835c717a8a6dfaabbbda636d), [#1720](https://github.com/heygen-com/hyperframes/pull/1720))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.7...v0.7.8).
</Update>

<Update
  label="HyperFrames v0.7.7"
  description="Released - 2026-06-25"
  tags={["Release", "Plugin", "Producer", "Slideshow"]}
>
This release ships the post-0.7.6 fixes that unblock stable adoption: producer probe navigation timeouts now retry, and the Claude plugin fixture no longer trips compression guards during install. It also improves slideshow player interactivity and includes the latest Studio motion-editing and media-use provider work.

## Features

- **Slideshow:** Auto-set interactive on inner player ([64eaad7d](https://github.com/heygen-com/hyperframes/commit/64eaad7d69b3c11b9e95b912f2c0b5070994078b), [#1712](https://github.com/heygen-com/hyperframes/pull/1712))
- **Studio:** Motion editing — speed-curve editor, class-tween attribution, per-keyframe size & ease ([36499220](https://github.com/heygen-com/hyperframes/commit/364992203e39288b92d60c044c2849866ef02976), [#1705](https://github.com/heygen-com/hyperframes/pull/1705))
- **Studio:** Redesign Asset tab + fix beat analysis auto-trigger ([92befea3](https://github.com/heygen-com/hyperframes/commit/92befea305e923f081d51592abfdc0278a7e840b), [#1684](https://github.com/heygen-com/hyperframes/pull/1684))
- **Media Use:** Resolve engine + BGM/SFX/image/icon providers ([b2dc3537](https://github.com/heygen-com/hyperframes/commit/b2dc353725049a0ccecc45db4db8dc8629dc5f5c), [#1683](https://github.com/heygen-com/hyperframes/pull/1683))
- **Media Use:** Core infrastructure — manifest, cache, adopt, probe ([73f6d3e5](https://github.com/heygen-com/hyperframes/commit/73f6d3e5bed284f80e7a865e4cf2142817f1160c), [#1682](https://github.com/heygen-com/hyperframes/pull/1682))

## Fixes

- **Plugin:** Avoid high compression silence fixture ([96ab4b18](https://github.com/heygen-com/hyperframes/commit/96ab4b18a4f20ff2b7961e64a3771092f92f78fb), [#1717](https://github.com/heygen-com/hyperframes/pull/1717))
- **Producer:** Retry probe navigation timeouts ([0558b876](https://github.com/heygen-com/hyperframes/commit/0558b8761e48683887816cc1c290f46dc4c32745), [#1713](https://github.com/heygen-com/hyperframes/pull/1713))
- **Skills:** Make media-use frontmatter valid YAML so `skills add` works ([814c96ce](https://github.com/heygen-com/hyperframes/commit/814c96cefaa149d397a18184ed244178a6f1e46d), [#1709](https://github.com/heygen-com/hyperframes/pull/1709))

## Internal

- **Media Use:** Resolve tests + eval harness ([34bb4965](https://github.com/heygen-com/hyperframes/commit/34bb496566bc1fcccd06a2c9c3f099a5b41d585c), [#1685](https://github.com/heygen-com/hyperframes/pull/1685))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.6...v0.7.7).
</Update>

<Update
  label="HyperFrames v0.7.6"
  description="Released - 2026-06-25"
  tags={["Release", "Runtime", "CLI", "Engine"]}
>
This release sharpens Studio's animation editing — per-keyframe ease presets, velocity fitting, gesture smoothing, and marquee multi-selection — and adds `.srt`/`.vtt` caption export to the CLI. It also improves preview and render fidelity: document-flow layouts now preview WYSIWYG, project-root-relative assets resolve in the preview iframe, and the CLI ships its player/slideshow bundles so `present`/`play` work from npm.

## Features

- **CLI:** Export .srt/.vtt caption sidecars from a transcript ([821bf292](https://github.com/heygen-com/hyperframes/commit/821bf2921a264538b90cb323e4248f29ffaa5d19), [#1704](https://github.com/heygen-com/hyperframes/pull/1704))
- **Studio:** Per-keyframe ease presets, velocity fitting, gesture smoothing ([97db811a](https://github.com/heygen-com/hyperframes/commit/97db811a2f7e7261c555b2d9915ecf10e057d726), [#1694](https://github.com/heygen-com/hyperframes/pull/1694))
- **Studio:** Marquee multi-selection + off-canvas indicators ([8ae010bf](https://github.com/heygen-com/hyperframes/commit/8ae010bf51ff577fcbf6a723b7078f10bef268d7), [#1693](https://github.com/heygen-com/hyperframes/pull/1693))
- **CLI:** Shared TTS/BGM auth preflight + caption and skill-workflow fixes ([54cab331](https://github.com/heygen-com/hyperframes/commit/54cab331d0f4b88e9ffe73036f842d41d473cf32), [#1697](https://github.com/heygen-com/hyperframes/pull/1697))
- **Telemetry:** Attribute renders to the authoring workflow skill ([5242dde2](https://github.com/heygen-com/hyperframes/commit/5242dde2dc82607051316aea2a91e7420b13433c), [#1695](https://github.com/heygen-com/hyperframes/pull/1695))

## Fixes

- **Runtime:** Keep stamped flow children in document flow in preview ([9bf1e1c2](https://github.com/heygen-com/hyperframes/commit/9bf1e1c298cdd346c923bbda09a098d7459dcd76), [#1702](https://github.com/heygen-com/hyperframes/pull/1702))
- **CLI:** Ship player + slideshow bundles so present/play work from npm ([1c389983](https://github.com/heygen-com/hyperframes/commit/1c389983de16f73ce9f272f5d6e6ae4314ac9e17), [#1706](https://github.com/heygen-com/hyperframes/pull/1706))
- **Engine:** Defend macOS regular Chrome screenshots ([89ff299a](https://github.com/heygen-com/hyperframes/commit/89ff299a11bd65213e583068622a9677d1d39008))
- **Runtime:** ImmediateRender for set tweens + array timeline normalization ([6987447a](https://github.com/heygen-com/hyperframes/commit/6987447a75d897be493f4bd4992c4145efffa2c8), [#1692](https://github.com/heygen-com/hyperframes/pull/1692))
- **Studio:** Resolve project-root-relative asset URLs in preview iframe ([c7b9bf33](https://github.com/heygen-com/hyperframes/commit/c7b9bf338676c48766a1a88e5c887f8eec74ea92), [#1698](https://github.com/heygen-com/hyperframes/pull/1698))

## Docs & Examples

- **Skills:** Route /slideshow as a workflow, not a domain capability ([ae8b94c5](https://github.com/heygen-com/hyperframes/commit/ae8b94c51841be8c4b53fe861adae9371db5eff3), [#1701](https://github.com/heygen-com/hyperframes/pull/1701))

## Internal

- **Studio:** Remove all console.* calls from studio package ([adb40321](https://github.com/heygen-com/hyperframes/commit/adb40321d675ed6058960803a99996c53f8248f0), [#1691](https://github.com/heygen-com/hyperframes/pull/1691))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.5...v0.7.6).
</Update>

<Update
  label="HyperFrames v0.7.5"
  description="Released - 2026-06-24"
  tags={["Release", "Player", "Producer"]}
>
This stable release fixes cross-origin player readiness so hosted HyperFrames
previews can play through the runtime bridge without app-origin blob wrappers.
It also improves render robustness by retrying transient producer probe crashes
and preventing visible GSAP transition overlays from leaking into output.

## Fixes

- **Player:** Treat runtime timeline as cross-origin ready ([ea23e630](https://github.com/heygen-com/hyperframes/commit/ea23e6309f5516897cebe6b95b1157d703de8dee), [#1690](https://github.com/heygen-com/hyperframes/pull/1690))
- **Producer:** Retry probe stage on transient browser errors ([546b2d77](https://github.com/heygen-com/hyperframes/commit/546b2d770bdc7e02d5c834f786c098f7d40f2749), [#1688](https://github.com/heygen-com/hyperframes/pull/1688))
- Flag visible GSAP transition overlays ([899b8faa](https://github.com/heygen-com/hyperframes/commit/899b8faa1203c4fb95ed39a38896426311312f22), [#1686](https://github.com/heygen-com/hyperframes/pull/1686))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.4...v0.7.5).
</Update>

<Update
  label="HyperFrames v0.7.4"
  description="Released - 2026-06-24"
  tags={["Release", "Producer", "Core", "Studio"]}
>
This stable release improves render reliability and skill authoring: producer duration
now falls back to sub-composition timing, empty sub-composition files no longer abort
renders, and Studio timeline styling handles missing tags safely. It also ships
music-to-video workflow updates, per-skill telemetry, and clearer CLI install/debug
guidance.

## Features

- **CLI:** Per-skill usage telemetry ([4961e4e4](https://github.com/heygen-com/hyperframes/commit/4961e4e4770a9b38eb34fef957c0ac8764614ce8))
- **Skills:** Unify bgm-to-video flows into music-to-video ([a34d3dba](https://github.com/heygen-com/hyperframes/commit/a34d3dba4d15b3d6830bc546b7b6c423a1304477))
- **Skills:** Add bgm-to-video skill ([d596379e](https://github.com/heygen-com/hyperframes/commit/d596379e52536672366e889602004a65bc8136d9))
- **Skills:** Guide install when a matched workflow isn't installed ([08328b04](https://github.com/heygen-com/hyperframes/commit/08328b04e63e16c7bea469237552c1d9587dcfec), [#1647](https://github.com/heygen-com/hyperframes/pull/1647))

## Fixes

- **Producer:** Derive duration from sub-composition timing when root has no data-duration ([45a9440c](https://github.com/heygen-com/hyperframes/commit/45a9440c61073314dd8d3ac34813d108c1e051e7), [#1680](https://github.com/heygen-com/hyperframes/pull/1680))
- **Core:** Skip empty sub-composition files instead of aborting render ([656c1200](https://github.com/heygen-com/hyperframes/commit/656c1200ee2e42fe2affa9641af8fcf0ccbb5683), [#1678](https://github.com/heygen-com/hyperframes/pull/1678))
- **Studio:** Guard against null tag in timeline track style ([d4aa5f93](https://github.com/heygen-com/hyperframes/commit/d4aa5f93e16c564d5248da99cd22101b314d3d63), [#1679](https://github.com/heygen-com/hyperframes/pull/1679))
- **CLI:** Improve whisper-cpp install guidance and add doctor check ([344618e2](https://github.com/heygen-com/hyperframes/commit/344618e22aaf27b526d16ef219dfe193ae8920fd), [#1681](https://github.com/heygen-com/hyperframes/pull/1681))
- **Engine:** Restore fast screenshot path for viewport captures ([f622e5a7](https://github.com/heygen-com/hyperframes/commit/f622e5a7ba3f840bda2703a93784ea0105d21fef), [#1670](https://github.com/heygen-com/hyperframes/pull/1670))
- **CLI:** Install skills into project dir on non-interactive init ([bf4f34b3](https://github.com/heygen-com/hyperframes/commit/bf4f34b359c252bfac25061d19bd178b28da5588), [#1671](https://github.com/heygen-com/hyperframes/pull/1671))
- **CLI:** Expose render debug mode ([7133c396](https://github.com/heygen-com/hyperframes/commit/7133c396eb29f4d28f3d25b8dc8dcf017bc70618))
- Unblock music video ci checks ([5d1bff51](https://github.com/heygen-com/hyperframes/commit/5d1bff51b5a21145b9d84c95d21447ebb90efc13))
- **Producer:** Store css-var-fonts baseline as raw binary, not LFS pointer ([119284d3](https://github.com/heygen-com/hyperframes/commit/119284d377878e38df60469a6bbeaf6d6a8ed857))
- **Producer:** Restore css-var-fonts regression baseline ([f012b8b8](https://github.com/heygen-com/hyperframes/commit/f012b8b84691c6a5989e11c0d228c5320d8d6843))
- **Lint:** Catch CSS↔GSAP transform conflicts in scoped selectors and frame sub-compositions ([9ccae863](https://github.com/heygen-com/hyperframes/commit/9ccae8637291262b8a2e1a1779e4ee7ad186f675))

## Docs & Examples

- **Skills:** Add music-source brief to music-to-video Step 0 ([7a464689](https://github.com/heygen-com/hyperframes/commit/7a4646894f0d3d5edcc185f1e1a61dcce11345ed))
- **Skills:** Register music-to-video in the hyperframes router ([44b04324](https://github.com/heygen-com/hyperframes/commit/44b04324b1576d80a2fb5a1bdf8dda0fd049a6ff))
- **Skills:** Add beat-synced montage authoring recipe ([0dcf914e](https://github.com/heygen-com/hyperframes/commit/0dcf914e14ae74ddfe6e8c6118113929bcfb894f))

## Catalog

- Refine music-to-video planning catalogs ([a23ca348](https://github.com/heygen-com/hyperframes/commit/a23ca3487f712d9df9ed72e1d6b16683dfc4bd2f))

## Internal

- **Lint:** Keep the fallow audit gate green ([4a8e2f1c](https://github.com/heygen-com/hyperframes/commit/4a8e2f1cd0a1d156ac485fd084230da8c407b152))

## Other Changes

- Merge pull request #1672 from heygen-com/fix/skill-authoring-fixes ([26810856](https://github.com/heygen-com/hyperframes/commit/2681085624056aeac851b03fd46efe512017c2a7))
- **Skills:** Apply oxfmt to music-to-video and router docs ([265b0273](https://github.com/heygen-com/hyperframes/commit/265b02738e35d21b5455a640323551f0e3cf3c6e))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.3...v0.7.4).
</Update>

<Update
  label="HyperFrames v0.7.3"
  description="Released - 2026-06-23"
  tags={["Release", "Producer"]}
>
This stable release fixes a production render visibility leak where timed descendants could remain visible after their parent clip ended. It also includes producer render performance cleanup and documentation coverage for package entrypoints.

## Fixes

- Hide descendants of inactive render clips ([11d6227d0](https://github.com/heygen-com/hyperframes/commit/11d6227d06fff50145d26a8382585ad95f44e54c), [#1662](https://github.com/heygen-com/hyperframes/pull/1662))

## Performance

- **Producer:** Skip wasted Chrome media work + injector page.evaluates during render ([b651a9d21](https://github.com/heygen-com/hyperframes/commit/b651a9d218b6a1d2649bfb7d8595ea83a04e69a5), [#1651](https://github.com/heygen-com/hyperframes/pull/1651))

## Docs & Examples

- Add missing package pages ([e4058e8bb](https://github.com/heygen-com/hyperframes/commit/e4058e8bbf4630a58cfa5587224f4452b82cb828), [#1660](https://github.com/heygen-com/hyperframes/pull/1660))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.2...v0.7.3).
</Update>

<Update
  label="HyperFrames v0.7.2"
  description="Released - 2026-06-22"
  tags={["Release", "Compiler", "Producer", "Engine"]}
>
Fixes several production-rendering edge cases: shader transitions now survive the producer capture path, audio muxing preserves full stream duration, and CSS variable font declarations no longer trip deterministic font resolution.

## Fixes

- **Compiler:** Skip CSS var() in font resolver ([468f7ec3](https://github.com/heygen-com/hyperframes/commit/468f7ec35b823e281590fc6967ea1a6ee86a5789), [#1655](https://github.com/heygen-com/hyperframes/pull/1655))
- **Producer:** Capture page-side shader composites via screenshot ([8c13a726](https://github.com/heygen-com/hyperframes/commit/8c13a72696c47d1435d1f4ec80d58cc78a59779a), [#1656](https://github.com/heygen-com/hyperframes/pull/1656))
- **Producer:** Split capture average timing ([4976b5e0](https://github.com/heygen-com/hyperframes/commit/4976b5e0362e7bf6d49eea8b7b5a7b8addf8ed43), [#1657](https://github.com/heygen-com/hyperframes/pull/1657))
- **Engine:** Remove -shortest from muxVideoWithAudio (#1648) ([e9957eca](https://github.com/heygen-com/hyperframes/commit/e9957ecaf46902eaadc1a8139e4961c85307e5b6), [#1650](https://github.com/heygen-com/hyperframes/pull/1650))

## Internal

- **Producer:** Add stream duration parity check to regression harness ([60d3eeb1](https://github.com/heygen-com/hyperframes/commit/60d3eeb1f7f59787b77bbce08df987ed59bfd87d), [#1652](https://github.com/heygen-com/hyperframes/pull/1652))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.1...v0.7.2).
</Update>

<Update
  label="HyperFrames v0.7.1"
  description="Released - 2026-06-22"
  tags={["Release", "Studio", "Producer"]}
>
Fixes gesture recording selection sync and video-heavy render base64 frame injection.

## Fixes

- **Studio:** `selectedGsapAnimations` empty after gesture recording — motion path nodes non-interactive, timeline diamonds missing. Root cause: animation fetch dedup key didn't include the selection target, and the preview sync didn't re-run after soft reloads ([82a5298](https://github.com/heygen-com/hyperframes/commit/82a529805), [#1646](https://github.com/heygen-com/hyperframes/pull/1646))
- **Producer:** Inline base64 frames in injector to unblock video-heavy renders ([4be81b4](https://github.com/heygen-com/hyperframes/commit/4be81b4fb), [#1630](https://github.com/heygen-com/hyperframes/pull/1630))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.0...v0.7.1).
</Update>

<Update
  label="HyperFrames v0.7.0"
  description="Released - 2026-06-22"
  tags={["Release", "Studio", "Core", "Skills"]}
>
Studio GSAP keyframe and motion-path editing, instant flicker-free manual editing, sub-composition rendering fixes, and frame-preset foundation for skills.

## Features

- **Studio:** GSAP keyframe + motion-path editing — drag to add keyframes, Alt+drag to move entire animation path, click-to-add waypoints on motion paths, canvas shortcuts panel ([091137e](https://github.com/heygen-com/hyperframes/commit/091137e3c), [#1605](https://github.com/heygen-com/hyperframes/pull/1605))
- **Studio:** Instant, flicker-free manual editing — soft-reload preserves inline styles, stale-ID guard prevents duplicate tweens, resize delete+add pattern ([091137e](https://github.com/heygen-com/hyperframes/commit/091137e3c), [#1605](https://github.com/heygen-com/hyperframes/pull/1605))
- **Skills:** Frame-preset library + shared audio engine foundation ([d0f0ec2](https://github.com/heygen-com/hyperframes/commit/d0f0ec29e), [#1632](https://github.com/heygen-com/hyperframes/pull/1632))
- **Skills:** Product-launch, pr-to-video, faceless-explainer moved to script-driven architecture ([1967901](https://github.com/heygen-com/hyperframes/commit/1967901b5), [#1635](https://github.com/heygen-com/hyperframes/pull/1635))

## Fixes

- **Studio:** Preview freeze after ~10s — clock duration no longer shrinks during playback ([1f5dbdb](https://github.com/heygen-com/hyperframes/commit/1f5dbdbc4), [#1636](https://github.com/heygen-com/hyperframes/pull/1643))
- **Studio:** `crypto.randomUUID` fallback for plain HTTP preview ([1f5dbdb](https://github.com/heygen-com/hyperframes/commit/1f5dbdbc4), [#1637](https://github.com/heygen-com/hyperframes/pull/1643))
- **Producer:** ENOTEMPTY race on worker directory cleanup ([1f5dbdb](https://github.com/heygen-com/hyperframes/commit/1f5dbdbc4), [#1644](https://github.com/heygen-com/hyperframes/pull/1643))
- **Core:** Register sub-composition timelines after async build ([4db708e](https://github.com/heygen-com/hyperframes/commit/4db708eb4), [#1638](https://github.com/heygen-com/hyperframes/pull/1638))
- **Core:** Render standalone sub-composition previews + surface captured video assets ([0e75eb2](https://github.com/heygen-com/hyperframes/commit/0e75eb251), [#1631](https://github.com/heygen-com/hyperframes/pull/1631))
- **CLI:** Classify missing whisper-cpp as a setup gap, not a command error ([f12754f](https://github.com/heygen-com/hyperframes/commit/f12754f5a), [#1628](https://github.com/heygen-com/hyperframes/pull/1628))
- **Skills:** Reject empty/partial scene files at assembly, not at render ([a843b2a](https://github.com/heygen-com/hyperframes/commit/a843b2acb), [#1629](https://github.com/heygen-com/hyperframes/pull/1629))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.121...v0.7.0).
</Update>

<Update
  label="HyperFrames v0.6.121"
  description="Released - 2026-06-21"
  tags={["Release", "CLI"]}
>
This hotfix restores `hyperframes skills` on Windows by invoking npm's `npx.cmd`
shim through `cmd.exe`, while preserving direct `npx` execution on Linux and macOS.
The same resolver also covers the local Studio preview's `npx vite` path and is
verified by CI on all three operating systems.

## Fixes

- **CLI:** Resolve npx shims on Windows ([25b717dd](https://github.com/heygen-com/hyperframes/commit/25b717dd9c0e1777adafa23dcfb4ad87c4989d91), [#1626](https://github.com/heygen-com/hyperframes/pull/1626))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.120...v0.6.121).
</Update>

<Update
  label="HyperFrames v0.6.120"
  description="Released - 2026-06-21"
  tags={["Release", "Shader Transitions"]}
>
This hotfix restores Node-compatible package entrypoints for published HyperFrames
packages, so npm consumers load built JavaScript and declaration files instead of
source TypeScript. It also improves page-side rendering so shader transitions paint
correctly and final-scene content remains visible through the end of the render.

## Fixes

- Publish Node-compatible package entrypoints ([2612b9bd](https://github.com/heygen-com/hyperframes/commit/2612b9bdfe6d2a224e93406efc831658cb2f6caf), [#1622](https://github.com/heygen-com/hyperframes/pull/1622))
- **Shader Transitions:** Page-side render dropped shader transitions and final-scene content ([a85a507c](https://github.com/heygen-com/hyperframes/commit/a85a507cdcce4deb2a55472208176753abec152b))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.119...v0.6.120).
</Update>

<Update
  label="HyperFrames v0.6.119"
  description="Released - 2026-06-21"
  tags={["Release", "Slideshow"]}
>
This hotfix makes slideshow presenter decks more reliable when they contain interactive
media. Presenter and audience views now keep media controls, muted autoplay fallback,
global mute, editable speaker notes, and first-load navigation chrome in sync.

## Fixes

- **Slideshow:** Harden media controls in present decks ([341e65aea](https://github.com/heygen-com/hyperframes/commit/341e65aea2773235d2cd3482846bcd6ed7d24638), [#1619](https://github.com/heygen-com/hyperframes/pull/1619))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.118...v0.6.119).
</Update>

<Update
  label="HyperFrames v0.6.117"
  description="Released - 2026-06-20"
  tags={["Release", "Core"]}
>
This hotfix restores the published `@hyperframes/core` subpath contract used by Studio,
SDK, and CLI consumers. Installed packages can now resolve the `beats`, `storyboard`,
HTML attribute safety, package metadata, and clip tree entry points that already existed
in source.

## Fixes

- **Core:** Publish missing subpath exports ([960690e8e](https://github.com/heygen-com/hyperframes/commit/960690e8e5b64d9cd10c815819e1bf7b010970cd), [#1616](https://github.com/heygen-com/hyperframes/pull/1616))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.116...v0.6.117).
</Update>

<Update
  label="HyperFrames v0.6.116"
  description="Released - 2026-06-20"
  tags={["Release", "Engine"]}
>
This hotfix improves render reliability across WebM and MP4 outputs: VP9 encodes now use a shared, tunable speed default across render paths, and MP4 muxing preserves AAC start offsets so audio stays aligned.

## Fixes

- **Engine:** Preserve AAC start time during MP4 mux ([0473254b](https://github.com/heygen-com/hyperframes/commit/0473254bdd8a545991a52d0e547d7d62e2b1f5a6), [#1615](https://github.com/heygen-com/hyperframes/pull/1615))
- **Engine:** Tune VP9 cpu-used across render paths ([8408a447](https://github.com/heygen-com/hyperframes/commit/8408a4474553307f8b82e65d8847922f482bd9c7), [#1614](https://github.com/heygen-com/hyperframes/pull/1614))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.115...v0.6.116).
</Update>

<Update
  label="HyperFrames v0.6.115"
  description="Released - 2026-06-20"
  tags={["Release", "Slideshow", "Core", "Core,studio"]}
>
Full slideshow stack: schema, parser, controller, `<hyperframes-slideshow>` web component, presenter mode, branching editor panel, and `hyperframes present` CLI command. SDK gains element add/remove ops, elastic timing, keyframe writers, variables/brand model, and image-alpha hit-testing. Fixes cross-realm iframe media handling, per-element audio muting, querySelector injection, and DOM edit parity.

## Features

- **Studio:** Slideshow branching editor panel UI ([04a775b5](https://github.com/heygen-com/hyperframes/commit/04a775b58a2e0272d294b4e6f2c7b1f4aed794cb), [#1592](https://github.com/heygen-com/hyperframes/pull/1592))
- **Studio:** Slideshow manifest persistence + panel helpers ([b74020fa](https://github.com/heygen-com/hyperframes/commit/b74020fa56ba4382d18f3ca23de349cf8c63e130), [#1591](https://github.com/heygen-com/hyperframes/pull/1591))
- **Player:** \<hyperframes-slideshow\> web component + presenter ([075302cd](https://github.com/heygen-com/hyperframes/commit/075302cd0312e0c14f049d50f011c958140af540), [#1590](https://github.com/heygen-com/hyperframes/pull/1590))
- **Player:** Slideshow controller state machine ([6938d6ac](https://github.com/heygen-com/hyperframes/commit/6938d6acf2d8ee9a4b01fe541f38a9a8b00dc0c6), [#1589](https://github.com/heygen-com/hyperframes/pull/1589))
- **Studio:** Slideshow branching editor panel ([3861e8e9](https://github.com/heygen-com/hyperframes/commit/3861e8e9fc0f0b6660c31b3668bd71172aced38f), [#1582](https://github.com/heygen-com/hyperframes/pull/1582))
- **Player:** Slideshow controller + \<hyperframes-slideshow\> component ([7af3eb8f](https://github.com/heygen-com/hyperframes/commit/7af3eb8f80945e880138570d49aee585a5346e19), [#1581](https://github.com/heygen-com/hyperframes/pull/1581))
- **Core:** Slideshow schema, parser, and lint rule ([83764579](https://github.com/heygen-com/hyperframes/commit/83764579898b9df4a7880761870faa983fc927bf), [#1580](https://github.com/heygen-com/hyperframes/pull/1580))
- **Sdk:** Image-alpha hit-test phase 1 (WS-G) ([37efbcb9](https://github.com/heygen-com/hyperframes/commit/37efbcb9553eacba3797a2de32ee7c7100ca4cb6), [#1574](https://github.com/heygen-com/hyperframes/pull/1574))
- **Sdk:** Ws-3c — addWithKeyframes + replaceWithKeyframes SDK ops (acorn writer) ([418f198b](https://github.com/heygen-com/hyperframes/commit/418f198b3391a44728433a788c7c34f9b280ca6c), [#1572](https://github.com/heygen-com/hyperframes/pull/1572))
- **Sdk:** AddElement forward op — mint hf-id, inverse = removeElement (WS-D) ([0ca01c88](https://github.com/heygen-com/hyperframes/commit/0ca01c88cfbaedad3a5493a8185e37eb7559fdb7), [#1571](https://github.com/heygen-com/hyperframes/pull/1571))
- **Sdk:** Ws-c elastic timing + word-alignment resolver (WS-C) ([f65e2296](https://github.com/heygen-com/hyperframes/commit/f65e229663c40376456ad32f37e1b29e5a877f9c), [#1570](https://github.com/heygen-com/hyperframes/pull/1570))
- **Sdk:** Ws-b variables/brand — object-valued font/image + B1 JSON model ([d0e520db](https://github.com/heygen-com/hyperframes/commit/d0e520dbd950aa56c56b752c25db8b751a9bf1ea), [#1569](https://github.com/heygen-com/hyperframes/pull/1569))

## Fixes

- **Slideshow:** Present media controls ([f0c4dee7](https://github.com/heygen-com/hyperframes/commit/f0c4dee70584f02a546c0cdb6d02d8b5542a4a4b), [#1601](https://github.com/heygen-com/hyperframes/pull/1601))
- **Core:** Mute preview audio per-element so a slow-decoding track isn't silenced ([cd832f01](https://github.com/heygen-com/hyperframes/commit/cd832f01ac953cad793da4e379302d2f1c60dc6a), [#1602](https://github.com/heygen-com/hyperframes/pull/1602))
- **Core:** Import cssSelector test from vitest, not bun:test ([82b6ccde](https://github.com/heygen-com/hyperframes/commit/82b6ccde7934836c100c47206bacca5455c8b3d8), [#1599](https://github.com/heygen-com/hyperframes/pull/1599))
- **Core,studio:** Escape user values in querySelector attribute selectors ([c0ffdc0f](https://github.com/heygen-com/hyperframes/commit/c0ffdc0fb0d5adc4bf9df0afe07f4f5a23d2fb51))
- **Sdk,studio:** Restore DOM edit cutover parity ([758eda99](https://github.com/heygen-com/hyperframes/commit/758eda995c9c2dedb4d7939769f149209663f841), [#1565](https://github.com/heygen-com/hyperframes/pull/1565))
- **Slideshow:** Finish remaining split-PR review findings ([f05b3f9c](https://github.com/heygen-com/hyperframes/commit/f05b3f9c7c07a08cbe917f1293fe31e3b0e9f9d6), [#1594](https://github.com/heygen-com/hyperframes/pull/1594))
- **Slideshow:** Address code-review findings #1580-1584 ([cc2220e5](https://github.com/heygen-com/hyperframes/commit/cc2220e59ec7e0b48c0991445ca0857d3ac752d3), [#1585](https://github.com/heygen-com/hyperframes/pull/1585))
- **Release:** Scope tag-monotonicity guard to tags reachable from HEAD ([3a28d3f6](https://github.com/heygen-com/hyperframes/commit/3a28d3f6b8395112950d58f940b2670d870e91b7))
- **Sdk:** Code-review follow-ups (WS-B/C/3.C, #1569/#1570/#1572) ([dd6fad6b](https://github.com/heygen-com/hyperframes/commit/dd6fad6bb2c77828f841430afd777dbb9e199798), [#1588](https://github.com/heygen-com/hyperframes/pull/1588))
- **Engine:** Hold the last video frame at the inclusive clip end ([fdb8f33f](https://github.com/heygen-com/hyperframes/commit/fdb8f33fc099f0c7ba5ef3dfb033def561234e92), [#1564](https://github.com/heygen-com/hyperframes/pull/1564))

## Docs & Examples

- **Skill:** Slideshow authoring guidance + standalone harness reference ([b7a11637](https://github.com/heygen-com/hyperframes/commit/b7a1163753adc7efff0f15ba79ef0caaf0f06aa4), [#1583](https://github.com/heygen-com/hyperframes/pull/1583))

## Internal

- **Examples:** Slideshow demos — airbnb deck, startup pitch, fixture ([ae404984](https://github.com/heygen-com/hyperframes/commit/ae40498433de266999031d8230a232f89f4a9cad), [#1584](https://github.com/heygen-com/hyperframes/pull/1584))
- **Core:** Gate acorn GSAP writer behind cutover flag; keep recast default (WS-3F) ([967bf9f9](https://github.com/heygen-com/hyperframes/commit/967bf9f9ed0303154c755e3ee8f9b829f6f41174), [#1573](https://github.com/heygen-com/hyperframes/pull/1573))
- **Publish:** Publish @hyperframes/sdk to npm ([7607a714](https://github.com/heygen-com/hyperframes/commit/7607a714a6c46407bb42cff1ed754ea8997035df), [#1587](https://github.com/heygen-com/hyperframes/pull/1587))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.112...v0.6.115).
</Update>

<Update
  label="HyperFrames v0.6.114"
  description="Released - 2026-06-19"
  tags={["Release", "Slideshow", "Examples", "Skill"]}
>
Adds slideshow support end-to-end: a player-side controller state machine and `<hyperframes-slideshow>` web component, a Studio branching-editor panel with manifest persistence, plus authoring-skill guidance and example decks.

## Features

- **Studio:** Slideshow branching editor panel UI ([04a775b5](https://github.com/heygen-com/hyperframes/commit/04a775b58a2e0272d294b4e6f2c7b1f4aed794cb), [#1592](https://github.com/heygen-com/hyperframes/pull/1592))
- **Studio:** Slideshow manifest persistence + panel helpers ([b74020fa](https://github.com/heygen-com/hyperframes/commit/b74020fa56ba4382d18f3ca23de349cf8c63e130), [#1591](https://github.com/heygen-com/hyperframes/pull/1591))
- **Player:** \<hyperframes-slideshow\> web component + presenter ([075302cd](https://github.com/heygen-com/hyperframes/commit/075302cd0312e0c14f049d50f011c958140af540), [#1590](https://github.com/heygen-com/hyperframes/pull/1590))
- **Player:** Slideshow controller state machine ([6938d6ac](https://github.com/heygen-com/hyperframes/commit/6938d6acf2d8ee9a4b01fe541f38a9a8b00dc0c6), [#1589](https://github.com/heygen-com/hyperframes/pull/1589))
- **Studio:** Slideshow branching editor panel ([3861e8e9](https://github.com/heygen-com/hyperframes/commit/3861e8e9fc0f0b6660c31b3668bd71172aced38f), [#1582](https://github.com/heygen-com/hyperframes/pull/1582))
- **Player:** Slideshow controller + \<hyperframes-slideshow\> component ([7af3eb8f](https://github.com/heygen-com/hyperframes/commit/7af3eb8f80945e880138570d49aee585a5346e19), [#1581](https://github.com/heygen-com/hyperframes/pull/1581))

## Fixes

- **Slideshow:** Finish remaining split-PR review findings ([f05b3f9c](https://github.com/heygen-com/hyperframes/commit/f05b3f9c7c07a08cbe917f1293fe31e3b0e9f9d6), [#1594](https://github.com/heygen-com/hyperframes/pull/1594))
- **Slideshow:** Address code-review findings #1580-1584 ([cc2220e5](https://github.com/heygen-com/hyperframes/commit/cc2220e59ec7e0b48c0991445ca0857d3ac752d3), [#1585](https://github.com/heygen-com/hyperframes/pull/1585))

## Docs & Examples

- **Skill:** Slideshow authoring guidance + standalone harness reference ([b7a11637](https://github.com/heygen-com/hyperframes/commit/b7a1163753adc7efff0f15ba79ef0caaf0f06aa4), [#1583](https://github.com/heygen-com/hyperframes/pull/1583))

## Internal

- **Examples:** Slideshow demos — airbnb deck, startup pitch, fixture ([ae404984](https://github.com/heygen-com/hyperframes/commit/ae40498433de266999031d8230a232f89f4a9cad), [#1584](https://github.com/heygen-com/hyperframes/pull/1584))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.113...v0.6.114).
</Update>

<Update
  label="HyperFrames v0.6.113"
  description="Released - 2026-06-19"
  tags={["Release", "Release", "Core", "Sdk"]}
>
Brings the AI Studio (Pacific) SDK integration surface online — object-valued font/image variables, elastic timing with word-alignment, element insertion, and keyframe animation ops — all on the acorn GSAP writer, now gated behind the cutover flag with recast kept as the default. Also adds a slideshow schema/parser/lint rule and phase-1 image-alpha hit-testing, so clicks on transparent image pixels fall through to the layer behind.

## Features

- **Core:** Slideshow schema, parser, and lint rule ([83764579](https://github.com/heygen-com/hyperframes/commit/83764579898b9df4a7880761870faa983fc927bf), [#1580](https://github.com/heygen-com/hyperframes/pull/1580))
- **Sdk:** Image-alpha hit-test phase 1 (WS-G) ([37efbcb9](https://github.com/heygen-com/hyperframes/commit/37efbcb9553eacba3797a2de32ee7c7100ca4cb6), [#1574](https://github.com/heygen-com/hyperframes/pull/1574))
- **Sdk:** Ws-3c — addWithKeyframes + replaceWithKeyframes SDK ops (acorn writer) ([418f198b](https://github.com/heygen-com/hyperframes/commit/418f198b3391a44728433a788c7c34f9b280ca6c), [#1572](https://github.com/heygen-com/hyperframes/pull/1572))
- **Sdk:** AddElement forward op — mint hf-id, inverse = removeElement (WS-D) ([0ca01c88](https://github.com/heygen-com/hyperframes/commit/0ca01c88cfbaedad3a5493a8185e37eb7559fdb7), [#1571](https://github.com/heygen-com/hyperframes/pull/1571))
- **Sdk:** Ws-c elastic timing + word-alignment resolver (WS-C) ([f65e2296](https://github.com/heygen-com/hyperframes/commit/f65e229663c40376456ad32f37e1b29e5a877f9c), [#1570](https://github.com/heygen-com/hyperframes/pull/1570))
- **Sdk:** Ws-b variables/brand — object-valued font/image + B1 JSON model ([d0e520db](https://github.com/heygen-com/hyperframes/commit/d0e520dbd950aa56c56b752c25db8b751a9bf1ea), [#1569](https://github.com/heygen-com/hyperframes/pull/1569))

## Fixes

- **Release:** Scope tag-monotonicity guard to tags reachable from HEAD ([3a28d3f6](https://github.com/heygen-com/hyperframes/commit/3a28d3f6b8395112950d58f940b2670d870e91b7))
- **Sdk:** Code-review follow-ups (WS-B/C/3.C, #1569/#1570/#1572) ([dd6fad6b](https://github.com/heygen-com/hyperframes/commit/dd6fad6bb2c77828f841430afd777dbb9e199798), [#1588](https://github.com/heygen-com/hyperframes/pull/1588))
- **Engine:** Hold the last video frame at the inclusive clip end ([fdb8f33f](https://github.com/heygen-com/hyperframes/commit/fdb8f33fc099f0c7ba5ef3dfb033def561234e92), [#1564](https://github.com/heygen-com/hyperframes/pull/1564))

## Internal

- **Core:** Gate acorn GSAP writer behind cutover flag; keep recast default (WS-3F) ([967bf9f9](https://github.com/heygen-com/hyperframes/commit/967bf9f9ed0303154c755e3ee8f9b829f6f41174), [#1573](https://github.com/heygen-com/hyperframes/pull/1573))
- **Publish:** Publish @hyperframes/sdk to npm ([7607a714](https://github.com/heygen-com/hyperframes/commit/7607a714a6c46407bb42cff1ed754ea8997035df), [#1587](https://github.com/heygen-com/hyperframes/pull/1587))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.112...v0.6.113).
</Update>

<Update
  label="HyperFrames v0.6.112"
  description="Released - 2026-06-18"
  tags={["Release", "Engine", "Studio", "Sdk"]}
>
Static-frame dedup is now on by default for screenshot capture (with render telemetry), the SDK gains a `reorderElements` op for batch z-index updates, and the resolver-parity shadow tripwire stops emitting false `element_not_found` divergences for elements inside inlined sub-compositions.

## Features

- **Engine:** Static-frame dedup default-on + render telemetry ([7310223b6](https://github.com/heygen-com/hyperframes/commit/7310223b664df3fc3d083f08375883e06ae8623a), [#1549](https://github.com/heygen-com/hyperframes/pull/1549))
- **Sdk:** Ws-3 — reorderElements op (batch z-index update) ([28bfe09f2](https://github.com/heygen-com/hyperframes/commit/28bfe09f2101447423c46c17b15a7288b6ed2556), [#1502](https://github.com/heygen-com/hyperframes/pull/1502))

## Fixes

- **Studio:** Shadow resolves bare leaf via dispatch path, not getElement ([5fb5153e4](https://github.com/heygen-com/hyperframes/commit/5fb5153e4e9f0e02820cee9a204e65c53ae0422c), [#1552](https://github.com/heygen-com/hyperframes/pull/1552))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.111...v0.6.112).
</Update>

<Update
  label="HyperFrames v0.6.111"
  description="Released - 2026-06-18"
  tags={["Release", "Studio", "Core", "Sdk,studio"]}
>
This release lands the bulk of the Studio→SDK editing cutover — style, text, timing, delete, and GSAP ops now route through the SDK behind a default-off dark-launch flag — alongside a resolver-parity shadow tripwire that reports any SDK/server resolution divergence as telemetry. It also ships the storyboard editor (view modes, markdown source, frame focus) and asset-readiness adapters for three.js, map, and visualization libraries.

## Features

- **Studio:** Resolver-parity shadow tripwire (decoupled telemetry) ([933b88ec3](https://github.com/heygen-com/hyperframes/commit/933b88ec334f5ad474c465ea730219f24e50421e), [#1547](https://github.com/heygen-com/hyperframes/pull/1547))
- **Core:** Add readiness adapters for map and visualization libraries ([75d92b55e](https://github.com/heygen-com/hyperframes/commit/75d92b55e0f41d0503a03bd47f5ce0b5d2e08d11), [#1548](https://github.com/heygen-com/hyperframes/pull/1548))
- **Sdk,core:** Ws-3 — unrollDynamicAnimations acorn port + SDK op ([09cefc1bb](https://github.com/heygen-com/hyperframes/commit/09cefc1bb7ca2c38d27cbf1ea291e58c08f89fb9), [#1501](https://github.com/heygen-com/hyperframes/pull/1501))
- **Sdk:** Stage 6 — arc path ops (setArcPath, updateArcSegment, removeArcPath) ([1612d18fd](https://github.com/heygen-com/hyperframes/commit/1612d18fdfb7aacef7ac61632a4b8f2d8bb69e48), [#1500](https://github.com/heygen-com/hyperframes/pull/1500))
- **Sdk,core:** Ws-3 prerequisites — acorn keyframe-collapse foundation + removeAllKeyframes ([a746db601](https://github.com/heygen-com/hyperframes/commit/a746db6017c1d2f098b39ee3b4dde3d90bd4fd32), [#1499](https://github.com/heygen-com/hyperframes/pull/1499))
- **Sdk,studio:** Ws-1.2 — percentage-based removeGsapKeyframe ([ceb815c31](https://github.com/heygen-com/hyperframes/commit/ceb815c3180ebebf06bbf7872086fbe0ad367ce1), [#1498](https://github.com/heygen-com/hyperframes/pull/1498))
- **Sdk,studio:** Ws-1.1 — add set method to GsapTweenSpec; route addGsapAnimation(set) through sdk ([a5016ed41](https://github.com/heygen-com/hyperframes/commit/a5016ed4168d0af8287bed151d53492dfa89f71f), [#1497](https://github.com/heygen-com/hyperframes/pull/1497))
- **Sdk,studio:** Ws-4 — add history:false option; disable unused sdk undo in studio ([e35846176](https://github.com/heygen-com/hyperframes/commit/e35846176e0bc336c82d37e77d077022c48ca139), [#1496](https://github.com/heygen-com/hyperframes/pull/1496))
- **Sdk:** Ws-a2 — applyDraft/commitPreview/cancelPreview → moveElement op ([53717a77f](https://github.com/heygen-com/hyperframes/commit/53717a77f4bd49ea506dfe92a4dc5b216183dd79), [#1490](https://github.com/heygen-com/hyperframes/pull/1490))
- **Sdk:** Ws-a1 — iframe preview adapter (hit-test + selection) ([b96e8a307](https://github.com/heygen-com/hyperframes/commit/b96e8a3072f05530a6ff08c16abbc5879daf22e5), [#1489](https://github.com/heygen-com/hyperframes/pull/1489))
- **Studio:** Route GSAP keyframe add through SDK (§3.5 PR2) ([7ca449032](https://github.com/heygen-com/hyperframes/commit/7ca4490328c149b6a87d16cb92a6412cc815c54e), [#1470](https://github.com/heygen-com/hyperframes/pull/1470))
- **Studio:** Route GSAP tween add/update/delete through SDK (§3.5 PR1) ([592f7c775](https://github.com/heygen-com/hyperframes/commit/592f7c775d435c324473fc9a861dc22618705a9b), [#1469](https://github.com/heygen-com/hyperframes/pull/1469))
- **Studio:** Route timeline trim/move through SDK setTiming (§3.2) ([39f37e8aa](https://github.com/heygen-com/hyperframes/commit/39f37e8aa807add1b31ce32178c775d3c8fc0b25), [#1466](https://github.com/heygen-com/hyperframes/pull/1466))
- **Studio:** Route element delete through SDK removeElement (§3.1) ([bce571c2a](https://github.com/heygen-com/hyperframes/commit/bce571c2a14358c30fd2d151542e4bc96cbba57c), [#1465](https://github.com/heygen-com/hyperframes/pull/1465))
- **Studio:** S7.5 — delete shadow scaffolding; keep cutover flag (dark launch) ([ca1a8a687](https://github.com/heygen-com/hyperframes/commit/ca1a8a6879dd0cf341ac690ce735bb6cb70bcb33), [#1462](https://github.com/heygen-com/hyperframes/pull/1462))
- **Studio:** Stage 7 step 3c — sdk cutover for inline-style ops ([ab7145ad9](https://github.com/heygen-com/hyperframes/commit/ab7145ad9ea1504fb8f1dc6fbf3aef7354f99f1b), [#1522](https://github.com/heygen-com/hyperframes/pull/1522))
- **Studio:** Storyboard frame focus + voiceover iteration ([c8fd16f2d](https://github.com/heygen-com/hyperframes/commit/c8fd16f2d3f83eaffb3212d8d7b23d443b428a58), [#1532](https://github.com/heygen-com/hyperframes/pull/1532))
- **Studio:** Storyboard markdown source editor (raw + live preview) ([29809069c](https://github.com/heygen-com/hyperframes/commit/29809069c818b79b338fcc2e2db08e8dd7d2311c), [#1531](https://github.com/heygen-com/hyperframes/pull/1531))
- **Lint:** Warn when a sub-composition slot blanks before the host ([13af5540c](https://github.com/heygen-com/hyperframes/commit/13af5540c13df4475ef250519db856a0e1dd3d75), [#1542](https://github.com/heygen-com/hyperframes/pull/1542))
- **Studio:** Storyboard frame contact-sheet grid ([015529e66](https://github.com/heygen-com/hyperframes/commit/015529e6630c8c9330960c9810bc9f92cb36acac), [#1530](https://github.com/heygen-com/hyperframes/pull/1530))
- **Studio:** Storyboard view-mode toggle and shell ([195d7aa7b](https://github.com/heygen-com/hyperframes/commit/195d7aa7bddbf999b2409beed05ce2fbf410d215), [#1529](https://github.com/heygen-com/hyperframes/pull/1529))
- **Studio:** Add storyboard manifest contract, parser, and read API ([8a13a0707](https://github.com/heygen-com/hyperframes/commit/8a13a07074b6ae66b37390d71d5ce9e5e67fc8e8), [#1528](https://github.com/heygen-com/hyperframes/pull/1528))

## Fixes

- **Core:** Auto-detect three.js asset readiness via adapter contract ([bb5f5f8c5](https://github.com/heygen-com/hyperframes/commit/bb5f5f8c5cf9ff96c9b584c9dd105362b1e4efcd), [#1543](https://github.com/heygen-com/hyperframes/pull/1543))
- **Sdk,studio:** R5 cutover review fixes (on top of #1539) ([e57e75b9b](https://github.com/heygen-com/hyperframes/commit/e57e75b9b41a18f87c775fcb0fd71a8e0fe1907c), [#1545](https://github.com/heygen-com/hyperframes/pull/1545))
- **Studio:** Restore timeline move/resize fallback parity (review #1466) ([8c981a451](https://github.com/heygen-com/hyperframes/commit/8c981a451a79b5e0ee794f8f9ab084fc5b41e92c), [#1539](https://github.com/heygen-com/hyperframes/pull/1539))
- **Studio,core:** Resolve SDK-cutover review findings ([377b0368b](https://github.com/heygen-com/hyperframes/commit/377b0368bd3e1cdcae144fd32a8950efe6a034ff), [#1471](https://github.com/heygen-com/hyperframes/pull/1471))
- **Studio:** Wire onTrySdkPersist to sdkCutoverPersist (cutover was unwired) ([8585fffc9](https://github.com/heygen-com/hyperframes/commit/8585fffc92f2111e840484e4e26984fa4f1998ab), [#1463](https://github.com/heygen-com/hyperframes/pull/1463))
- **Studio:** Force-reload sdk session after undo/redo bypasses suppress window ([0ca1a8a9d](https://github.com/heygen-com/hyperframes/commit/0ca1a8a9d1e36bd2cf202bfda58dc5a2df283f96), [#1524](https://github.com/heygen-com/hyperframes/pull/1524))
- **Studio:** Storyboard polish — a11y, preview, and edit-race fixes ([e662fcdea](https://github.com/heygen-com/hyperframes/commit/e662fcdea2d7be19d89f7f8a54fb6a0602a175e7), [#1544](https://github.com/heygen-com/hyperframes/pull/1544))
- **Lint:** Match @font-face when a comment inside the block holds a brace ([f72ea25b3](https://github.com/heygen-com/hyperframes/commit/f72ea25b3b702d85f12679f0e70ccea06602fad5), [#1538](https://github.com/heygen-com/hyperframes/pull/1538))

## Internal

- **Studio:** Document CSS-path position cut-over; GSAP-path deferred (§3.3) ([e65c3c791](https://github.com/heygen-com/hyperframes/commit/e65c3c7918d1995e8be83270150fedd39daa8458), [#1467](https://github.com/heygen-com/hyperframes/pull/1467))
- **Core:** Recast-vs-acorn differential suite for GSAP writer ops (+ fixes) ([c040e4973](https://github.com/heygen-com/hyperframes/commit/c040e4973a27f8a327e9cae918b94be0d463fd26), [#1533](https://github.com/heygen-com/hyperframes/pull/1533))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.110...v0.6.111).
</Update>

<Update
  label="HyperFrames v0.6.110"
  description="Released - 2026-06-17"
  tags={["Release", "Studio", "CLI", "Player", "SDK"]}
>
A fixes-only release. Studio rendering no longer 503s when ffmpeg lives outside the server's PATH (the common GUI-launch case on macOS), plus correctness fixes across the CLI, player, and SDK.

## Fixes

- **Studio:** Resolve ffmpeg outside PATH so render doesn't 503 ([ff25058c5](https://github.com/heygen-com/hyperframes/commit/ff25058c5), [#1536](https://github.com/heygen-com/hyperframes/pull/1536))
- **Studio:** Apply split-bounds epsilon in razor split-all ([66dde0898](https://github.com/heygen-com/hyperframes/commit/66dde0898), [#1404](https://github.com/heygen-com/hyperframes/pull/1404))
- **Studio:** Add GSAP 3D inspector metadata ([937ba2ceb](https://github.com/heygen-com/hyperframes/commit/937ba2ceb), [#1250](https://github.com/heygen-com/hyperframes/pull/1250))
- **CLI:** Validate init flags before creating the project directory ([a4ae3c92a](https://github.com/heygen-com/hyperframes/commit/a4ae3c92a), [#1207](https://github.com/heygen-com/hyperframes/pull/1207))
- **CLI:** Default capture output to `./capture/` (auto-suffix `capture-2/`, `capture-3/` on re-run) ([969d6a334](https://github.com/heygen-com/hyperframes/commit/969d6a334))
- **Player:** Reject non-finite composition dimensions from attributes and stage-size ([513819ee8](https://github.com/heygen-com/hyperframes/commit/513819ee8), [#1205](https://github.com/heygen-com/hyperframes/pull/1205))
- **SDK:** Resolve composition-id targets and emit canonical `data-hf-id` for GSAP tweens ([6e3214233](https://github.com/heygen-com/hyperframes/commit/6e3214233), [#1526](https://github.com/heygen-com/hyperframes/pull/1526))
- **Release:** Stop advising `git push --tags` in release next-steps ([9cc3550f7](https://github.com/heygen-com/hyperframes/commit/9cc3550f7), [#1521](https://github.com/heygen-com/hyperframes/pull/1521))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.109...v0.6.110).
</Update>

<Update
  label="HyperFrames v0.6.109"
  description="Released - 2026-06-17"
  tags={["Release", "Lint"]}
>
Promotes 21 lint rules from warnings to errors, with exemptions for registry source and installed blocks. Includes false-positive fixes across fonts, GSAP, captions, and composition rules.

## Catalog

- **Lint:** Promote rules to errors with registry exemptions and false-positive fixes ([386df23a7](https://github.com/heygen-com/hyperframes/commit/386df23a742bdfd4f61c30f27bf5e224fe0ec840), [#1495](https://github.com/heygen-com/hyperframes/pull/1495))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.108...v0.6.109).
</Update>

<Update
  label="HyperFrames v0.6.108"
  description="Released - 2026-06-17"
  tags={["Release", "Core,sdk", "Cloud", "Studio"]}
>
Adds **color grading** — a LUT-based color pipeline (schema + `.cube` parsing) applied consistently in both preview and render, with Studio inspector controls. Also rebuilds the SDK's acorn GSAP keyframe writer to match the server writer (fixing a keyframe-parity bug) and ships a managed cloud-rendering guide.

## Features

- **Studio:** Add color grading inspector controls ([8b92f3763](https://github.com/heygen-com/hyperframes/commit/8b92f3763563fb6cb9dc869beb57164c60e119a8))
- **Runtime:** Apply color grading in preview and render ([1ad158d2f](https://github.com/heygen-com/hyperframes/commit/1ad158d2f052cb9432eca7aeb8b852de70638eca))
- **Core:** Add color grading schema and lut parsing ([3109acb88](https://github.com/heygen-com/hyperframes/commit/3109acb88a9396a6ac696ddade32cc7690c79f6e))

## Fixes

- **Core,sdk:** Rebuild acorn GSAP keyframe writer for recast parity ([b5ad51895](https://github.com/heygen-com/hyperframes/commit/b5ad518957508f792f670a7a40da2f8ddb0b3347), [#1520](https://github.com/heygen-com/hyperframes/pull/1520))
- **Release:** Annotate version tag + correct release push instructions ([ca3cab340](https://github.com/heygen-com/hyperframes/commit/ca3cab340baadae4a91bab4546068eb5e95aba15), [#1517](https://github.com/heygen-com/hyperframes/pull/1517))

## Docs & Examples

- **Cloud:** Add managed cloud rendering guide + fix flag reference ([0ba52fc13](https://github.com/heygen-com/hyperframes/commit/0ba52fc130b39e4afdd0a16a8b9ed180ce1212b8), [#1518](https://github.com/heygen-com/hyperframes/pull/1518))

## Internal

- **Studio:** Simplify color grading controls ([12955869e](https://github.com/heygen-com/hyperframes/commit/12955869ec22fab37d5eadc193cc18148307134b))
- **Studio:** Simplify color grading inspector ([3661d51e6](https://github.com/heygen-com/hyperframes/commit/3661d51e6d771e6b00020d003afc6b5a6a5468e6))
- **Runtime:** Trim color grading api ([d1162cd1b](https://github.com/heygen-com/hyperframes/commit/d1162cd1b1b58d2163b4c4e4de8f1dd416b4a252))
- **Runtime:** Trim color grading helpers ([48fb42e5f](https://github.com/heygen-com/hyperframes/commit/48fb42e5f0d067997aef90410e53dab7362bce71))
- **Core:** Trim color grading api surface ([8aaaaf181](https://github.com/heygen-com/hyperframes/commit/8aaaaf1812638258e4ac4a2fe2c083ddea03e8ed))
- **Core:** Trim color grading helpers ([90582d7fa](https://github.com/heygen-com/hyperframes/commit/90582d7faa1b4129a762b45cdddbaa60cd8c1385))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.107...v0.6.108).
</Update>

<Update
  label="HyperFrames v0.6.107"
  description="Released - 2026-06-16"
  tags={["Release", "Studio", "Sdk"]}
>
Hardens the Studio's SDK shadow-parity telemetry — adds GSAP keyframe-op coverage and clears false-positive mismatches from float precision, selector form, and live typing. Also fixes two SDK correctness bugs the telemetry surfaced: `setStyle` now removes hyphenated properties, and `removeElement`/`getElement` agree on which element a duplicated bare id targets.

## Features

- **Studio:** Shadow telemetry for GSAP keyframe ops (gsap_keyframe) ([4b4a3eb63](https://github.com/heygen-com/hyperframes/commit/4b4a3eb63dbffe47e2ed19358e2a3b6ce2d19d8a), [#1509](https://github.com/heygen-com/hyperframes/pull/1509))

## Fixes

- **Studio:** Serialize GSAP script commits per file (shadow request race) ([4ee57d550](https://github.com/heygen-com/hyperframes/commit/4ee57d55056af319631a860ed9752e31ce161f91), [#1512](https://github.com/heygen-com/hyperframes/pull/1512))
- **Sdk:** Agree removeElement/getElement on duplicate bare ids ([cc055f318](https://github.com/heygen-com/hyperframes/commit/cc055f318d59623741fffa96e816ed68a635c2ef), [#1511](https://github.com/heygen-com/hyperframes/pull/1511))
- **Sdk:** SetStyle removes hyphenated properties (was kebab/camel key mismatch) ([066ea798b](https://github.com/heygen-com/hyperframes/commit/066ea798b4140ec04bbfd54216c08bc2af60b5a3), [#1510](https://github.com/heygen-com/hyperframes/pull/1510))
- **Studio:** Suppress shadow-parity false positives in timing + text ([5aca3ad77](https://github.com/heygen-com/hyperframes/commit/5aca3ad770852d795cc85bc80a7a68c2a95edfeb), [#1508](https://github.com/heygen-com/hyperframes/pull/1508))
- **Studio:** Kill false-positive shadow GSAP fidelity mismatches ([c096ff3af](https://github.com/heygen-com/hyperframes/commit/c096ff3afa8a848d2b817415ad2329a2d7ab5dc8), [#1507](https://github.com/heygen-com/hyperframes/pull/1507))

## Internal

- **Studio:** Dedup shadow numeric-equal + GSAP script extraction ([0e5caa453](https://github.com/heygen-com/hyperframes/commit/0e5caa453a119faeddc20b3c5cbed8576f9a8bdc), [#1516](https://github.com/heygen-com/hyperframes/pull/1516))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.106...v0.6.107).
</Update>

<Update
  label="HyperFrames v0.6.106"
  description="Released - 2026-06-16"
  tags={["Release", "Studio", "Core"]}
>
Studio now resolves and displays keyframes for computed GSAP timelines (helper functions, bounded loops) at their true positions, with Arc Motion activation for MotionPath tweens. Drag improvements fix tween selection and outside-range keyframe creation.

## Features

- **Core:** Static evaluation pre-pass inlines helper-built and bounded-loop timelines so the read parser resolves true positions and motionPath arcs ([b9bd9ed](https://github.com/heygen-com/hyperframes/commit/b9bd9ed91), [#1506](https://github.com/heygen-com/hyperframes/pull/1506))
- **Studio:** Runtime-authoritative keyframe display with correct clip-relative conversion and arcPath extraction for dynamic timelines
- **Studio:** "Unroll to edit" action converts helper/loop tweens into literal tweens for direct editing
- **Studio:** Provenance-based editability classifier surfaces per-tween editing strategy in the Animation panel

## Fixes

- **Studio:** GSAP drag intercept picks the position tween closest to the playhead instead of the one with the most keyframes
- **Studio:** Dragging outside all tweens' ranges creates a new keyframed tween instead of destructively replacing the nearest one
- **Studio:** Convert-to-keyframes reads runtime position at tween start time for correct interpolation from preceding tweens
- **Core:** Lint rule uses the acorn parser (with inlining) so `overlapping_gsap_tweens` reflects true positions

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.105...v0.6.106).
</Update>

<Update
  label="HyperFrames v0.6.105"
  description="Released - 2026-06-16"
  tags={["Release", "CLI", "Engine"]}
>
Restores `remove-background` by moving `sharp` and `onnxruntime-node` back to regular dependencies (they were skipped as optional deps, so the command's required native modules weren't installed). Also fixes the Linux GPU render path (deprecated EGL + NVENC probe failure on data-center GPUs).

## Fixes

- **CLI:** Restore sharp + onnxruntime-node as dependencies (unbreak remove-background) ([322147aef](https://github.com/heygen-com/hyperframes/commit/322147aef9ef7d13c58bb95f0b628dba821aed28), [#1505](https://github.com/heygen-com/hyperframes/pull/1505))
- **Engine:** Linux GPU path uses deprecated EGL + NVENC probe fails on data-center GPUs ([e5346afdd](https://github.com/heygen-com/hyperframes/commit/e5346afdd84b99806dcdc828fc3318c3ef63d290), [#1504](https://github.com/heygen-com/hyperframes/pull/1504))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.104...v0.6.105).
</Update>

<Update
  label="HyperFrames v0.6.103"
  description="Released - 2026-06-16"
  tags={["Release", "Telemetry"]}
>
Fixes telemetry attribution for studio-triggered renders: render completion and error events are now logged under the browser user who started the render instead of the preview-server process, so render outcomes correlate with the session that triggered them.

## Fixes

- **Telemetry:** Attribute studio renders to the browser user (joinable funnel) ([121cdd2d9](https://github.com/heygen-com/hyperframes/commit/121cdd2d9fbc11c25cd8ea000a3946fc3494d8b7), [#1492](https://github.com/heygen-com/hyperframes/pull/1492))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.102...v0.6.103).
</Update>

<Update
  label="HyperFrames v0.6.102"
  description="Released - 2026-06-16"
  tags={["Release", "Sdk,studio", "CLI", "Skills"]}
>
Sharpens the Studio↔SDK shadow with GSAP update/delete and value-fidelity parity, adds a video-frame format render option, and lands command-failure telemetry so CLI failures (browser / info) report their cause. Plus a Studio keyframe-cache fix and new catalog/skill docs.

## Features

- **Sdk,studio:** Populate animationIds; shadow GSAP update/delete + value fidelity ([7593aac5e](https://github.com/heygen-com/hyperframes/commit/7593aac5efd9975921f6ebbe702d23279f220ea9), [#1474](https://github.com/heygen-com/hyperframes/pull/1474))
- **CLI:** Report command failure reasons to telemetry (de-blind browser/info) ([5f6ced116](https://github.com/heygen-com/hyperframes/commit/5f6ced116dee6c2da22d182b54ce9ae3941a7282), [#1484](https://github.com/heygen-com/hyperframes/pull/1484))
- Add video frame format render option ([36b24acf2](https://github.com/heygen-com/hyperframes/commit/36b24acf20bed1a88ecb90f9e5288c3c69bd6500), [#1481](https://github.com/heygen-com/hyperframes/pull/1481))

## Fixes

- **Studio:** Clear the bare keyframe-cache key when an element loses its keyframes ([e812fc889](https://github.com/heygen-com/hyperframes/commit/e812fc889516265afadc596b3c084d041cb708b1), [#1482](https://github.com/heygen-com/hyperframes/pull/1482))

## Docs & Examples

- **Skills:** Surface Code Animations blocks to agents ([d59501038](https://github.com/heygen-com/hyperframes/commit/d5950103884a37501dbab870a399a37c5e07039e), [#1485](https://github.com/heygen-com/hyperframes/pull/1485))

## Catalog

- Add Video Components catalog page ([897692be6](https://github.com/heygen-com/hyperframes/commit/897692be6504e2ed4debd6619fa28f43c7785f6e), [#1486](https://github.com/heygen-com/hyperframes/pull/1486))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.101...v0.6.102).
</Update>

<Update
  label="HyperFrames v0.6.101"
  description="Released - 2026-06-16"
  tags={["Release", "CLI", "Core", "Studio"]}
>
Hardens the CLI across diverse installs — `sharp` and `onnxruntime-node` are now optional, `transcribe` failures report their cause, and capture captioning gains an OpenRouter vision provider. Also lands Studio timeline inline expansion, an SDK shadow expansion, a render path-safety chokepoint, and a Code Animations catalog section.

## Features

- **CLI:** Support OpenRouter as an alternative vision provider for capture captioning ([646ffff92](https://github.com/heygen-com/hyperframes/commit/646ffff92798fa542dcc8c596c2e22a0143544df), [#1478](https://github.com/heygen-com/hyperframes/pull/1478))
- **Studio:** Timeline inline expansion + __clipTree runtime primitive ([8cbf4384e](https://github.com/heygen-com/hyperframes/commit/8cbf4384e1e03b098276f72c63f0dd8e3bd39b83))
- **Studio:** Extend SDK shadow to delete/timing/gsap-add + default on ([8f15e9f09](https://github.com/heygen-com/hyperframes/commit/8f15e9f09b02a3e44241ce045164fdc8f82ba0b5), [#1473](https://github.com/heygen-com/hyperframes/pull/1473))

## Fixes

- **Core:** Route renders/file serving through resolveWithinProject chokepoint ([fada39953](https://github.com/heygen-com/hyperframes/commit/fada399539cb944ee4542c935f7395301e72ed98), [#1477](https://github.com/heygen-com/hyperframes/pull/1477))
- **CLI:** Report transcribe failure reasons via cli_error (command_error) ([40b49d402](https://github.com/heygen-com/hyperframes/commit/40b49d4024be664c8980808eb72bf2a93670e8a6), [#1479](https://github.com/heygen-com/hyperframes/pull/1479))
- **Producer:** Guard fileServer.close in all render cleanup paths ([1f9c70cf1](https://github.com/heygen-com/hyperframes/commit/1f9c70cf157fd9bcc13dcff0d6695e9b3c057f0a), [#1406](https://github.com/heygen-com/hyperframes/pull/1406))
- **CLI:** Make native modules (sharp, onnxruntime) optional + soften inspect overlap ([8f7137818](https://github.com/heygen-com/hyperframes/commit/8f71378185c6f8608038f8db0fb651456a0b4fcc), [#1476](https://github.com/heygen-com/hyperframes/pull/1476))

## Docs & Examples

- Add Typeframe to adopters ([2d48369c7](https://github.com/heygen-com/hyperframes/commit/2d48369c767ee806266ecb59b89eaa5d7e2d0901), [#1059](https://github.com/heygen-com/hyperframes/pull/1059))

## Catalog

- **Registry:** Add Code Animations catalog section (9 blocks, incl. GPU) ([07030294e](https://github.com/heygen-com/hyperframes/commit/07030294e0a011c42130c43b0400598871ec209e))

## Internal

- Sync bun.lock with workspace package.json ([cf4b90115](https://github.com/heygen-com/hyperframes/commit/cf4b9011555f2be19db7f8705cea36aa3d9e4c3f), [#1480](https://github.com/heygen-com/hyperframes/pull/1480))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/f03dfaa59...v0.6.101).
</Update>

<Update
  label="HyperFrames v0.6.100"
  description="Released - 2026-06-15"
  tags={["Release", "CLI", "Studio", "Sdk,studio"]}
>
Wires the SDK session into Studio (stage 7 steps 1-3b), adding shadow dispatch parity mode, persist-path reload, selection API, and HTTP persist adapter. Also adds motion verification and text occlusion detection to `inspect`.

## Features

- **Studio:** Stage 7 step 3b — SDK shadow dispatch parity mode ([69aa595f](https://github.com/heygen-com/hyperframes/commit/69aa595f383d7124c71a0eb2f77edef76fcdef2a), [#1450](https://github.com/heygen-com/hyperframes/pull/1450))
- **Sdk,studio:** Stage 7 step 3a — persistPath + SDK session reload-on-change ([5fe87cc3](https://github.com/heygen-com/hyperframes/commit/5fe87cc39bcf154aa2d937908700d8c1a6b44013), [#1449](https://github.com/heygen-com/hyperframes/pull/1449))
- **Studio:** Stage 7 step 1 — wire SDK session into Studio ([92e2c8ce](https://github.com/heygen-com/hyperframes/commit/92e2c8ce6a0b6702f779dc3c50eb37fd3b84492e), [#1443](https://github.com/heygen-com/hyperframes/pull/1443))
- **Sdk:** Stage 7 step 2 — setSelection API ([30ce1f35](https://github.com/heygen-com/hyperframes/commit/30ce1f35a2e27351ad365467d8da8b8e2e90df24), [#1442](https://github.com/heygen-com/hyperframes/pull/1442))
- **Sdk:** Stage 7 step 1 — http persist adapter ([c19898e7](https://github.com/heygen-com/hyperframes/commit/c19898e799d5d64b1a6af8e62e59e1bcee3df4bd), [#1441](https://github.com/heygen-com/hyperframes/pull/1441))
- **CLI:** Declarative motion verification in inspect (#1437) ([9175eced](https://github.com/heygen-com/hyperframes/commit/9175eced45f22683b6fcf09807e8aae2270ff248), [#1459](https://github.com/heygen-com/hyperframes/pull/1459))
- **CLI:** Flag text occluded by opaque elements in inspect ([1e548279](https://github.com/heygen-com/hyperframes/commit/1e54827957c719ddceba9cbfe46a2a37d692cec9), [#1435](https://github.com/heygen-com/hyperframes/pull/1435))

## Fixes

- **CLI:** Restore `hyperframes capture \<url\>`; move video download to `--video` flag ([f8d9f512](https://github.com/heygen-com/hyperframes/commit/f8d9f51245908d64b74a8df96bc80e901fd1f5cf))
- **Core:** Stop transport re-seek from clobbering Studio drag drafts ([1ab7dcfe](https://github.com/heygen-com/hyperframes/commit/1ab7dcfe477d526cb153c0e73f113d4de0cbd190), [#1464](https://github.com/heygen-com/hyperframes/pull/1464))

## Docs & Examples

- Reconcile skills surface; rename read-first entry skill to /hyperframes ([3b3ece81](https://github.com/heygen-com/hyperframes/commit/3b3ece81d1a0b36038e67e58d9ca620e4a3122e9), [#1461](https://github.com/heygen-com/hyperframes/pull/1461))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.99...v0.6.100).
</Update>

<Update
  label="HyperFrames v0.6.99"
  description="Released - 2026-06-15"
  tags={["Release", "Sdk", "CLI", "Core"]}
>
Introduces the HyperFrames SDK (session API, undo/redo, adapters, sub-composition scoped IDs), per-property-group keyframes with gesture recording and beat-snapping, batch rendering with variables, and the acorn-based GSAP parser.

## Features

- **Sdk:** Stage 6 — sub-composition scoped ids (F9) ([b158870d](https://github.com/heygen-com/hyperframes/commit/b158870d8f1cd2241d00eb46fa0d2d1c2aa9dfb7), [#1434](https://github.com/heygen-com/hyperframes/pull/1434))
- **Sdk:** Stage 5 — export adapter factories from package root ([f10f3425](https://github.com/heygen-com/hyperframes/commit/f10f3425a502c6026a34eca443c466a169896a9a), [#1432](https://github.com/heygen-com/hyperframes/pull/1432))
- **Sdk:** Stage 4 — canUndo/canRedo, removeElement GSAP cascade, override-set cleanup ([9627e03f](https://github.com/heygen-com/hyperframes/commit/9627e03fa743c0bf60d0fc76d2fdcf6fe02e8ceb), [#1431](https://github.com/heygen-com/hyperframes/pull/1431))
- **Sdk:** Can() returns CanResult; T4 dispatch-boundary tests ([5ecaac1f](https://github.com/heygen-com/hyperframes/commit/5ecaac1fcb6f38d6342c8523393b72d8ed997b89), [#1426](https://github.com/heygen-com/hyperframes/pull/1426))
- **Sdk:** File-backed fs adapter + setTiming GSAP sync; sdk-playground workspace ([577a6898](https://github.com/heygen-com/hyperframes/commit/577a6898604c0da819240c12830b0f1a71db9daa), [#1458](https://github.com/heygen-com/hyperframes/pull/1458))
- **CLI:** Capture-video on-demand fetcher + capture pipeline robustness ([6a024a36](https://github.com/heygen-com/hyperframes/commit/6a024a367b007d837827e9a5d01cdb2ce76619d5))
- **Sdk,core:** Phase 3b — 8 gsap/label ops + setClassStyle ([6dcbb553](https://github.com/heygen-com/hyperframes/commit/6dcbb5530e4e9311896143fa18b145133f60c36a), [#1379](https://github.com/heygen-com/hyperframes/pull/1379))
- **Core:** Parse-parity suite for acorn parser (T6d) ([8b56e558](https://github.com/heygen-com/hyperframes/commit/8b56e558c65961002428df846c369ef095c3a822), [#1370](https://github.com/heygen-com/hyperframes/pull/1370))
- **Core:** Acorn GSAP write path — magic-string offset-splice (T6c) ([0fbda8ac](https://github.com/heygen-com/hyperframes/commit/0fbda8acffb3e55f494380731a0f02a09b038d60), [#1369](https://github.com/heygen-com/hyperframes/pull/1369))
- **Core:** Acorn GSAP read path with T6b differential corpus tests ([be4a28ae](https://github.com/heygen-com/hyperframes/commit/be4a28ae72c685c1027dd91df2cfd132ae730275), [#1368](https://github.com/heygen-com/hyperframes/pull/1368))
- **Studio:** Scale GSAP positions on clip resize + shift on drag + diamond fixes ([11b050de](https://github.com/heygen-com/hyperframes/commit/11b050de9a30eaecfca5f2512c90cbaf4e686b54), [#1448](https://github.com/heygen-com/hyperframes/pull/1448))
- **CLI:** Flag overlapping text blocks in inspect ([abaf6717](https://github.com/heygen-com/hyperframes/commit/abaf67176cbec4b1afeab5c7a97ea2a87d6ce59d), [#1436](https://github.com/heygen-com/hyperframes/pull/1436))
- **Studio:** Drag keyframes with live beat snapping ([e6da47d8](https://github.com/heygen-com/hyperframes/commit/e6da47d8f8bf604b2de2efcb03e4b6a7fb0515cb), [#1439](https://github.com/heygen-com/hyperframes/pull/1439))
- **Studio,cli:** Music beat detection with timeline guides + headless beats CLI ([d9f69f61](https://github.com/heygen-com/hyperframes/commit/d9f69f61e7bc538ae2f3b20c6a53d460b178d8d0), [#1424](https://github.com/heygen-com/hyperframes/pull/1424))
- **Skills:** Video-creation workflow suite — routable workflows ([211e0adb](https://github.com/heygen-com/hyperframes/commit/211e0adbe873fa7efe2152a0d352cc7c86ec4e08), [#1349](https://github.com/heygen-com/hyperframes/pull/1349))
- **CLI:** Batch rendering — one output per variables row with manifest ([e5a78ef6](https://github.com/heygen-com/hyperframes/commit/e5a78ef6a26035fd3c797afc4e45f7f12d45c172), [#1336](https://github.com/heygen-com/hyperframes/pull/1336))
- **CLI:** Add --at-transitions to inspect for sampling at tween boundaries ([6364281b](https://github.com/heygen-com/hyperframes/commit/6364281ba0226a97953b6be88f29efa5b6b0170d), [#1386](https://github.com/heygen-com/hyperframes/pull/1386))
- **Lint:** Add gsap_studio_edit_blocked rule for manual timeline + GSAP element targeting ([511665b9](https://github.com/heygen-com/hyperframes/commit/511665b93ace7a22fa488d81365d229cba71c8c5), [#1345](https://github.com/heygen-com/hyperframes/pull/1345))
- **Sdk:** Session API, optional history + persist-queue, adapters — Phase 3a complete ([7010edac](https://github.com/heygen-com/hyperframes/commit/7010edac85e9684b1cc115920e614515a5cb03a1), [#1325](https://github.com/heygen-com/hyperframes/pull/1325))
- **Sdk:** Scaffold @hyperframes/sdk — engine layer (model, RFC 6902 patches, mutate, apply-patches) ([22bb6737](https://github.com/heygen-com/hyperframes/commit/22bb6737c546e910bfdc0bbe6f459bfe01e6bfa6), [#1324](https://github.com/heygen-com/hyperframes/pull/1324))
- **Core:** Expose hf-ids as subpath export for @hyperframes/sdk ([2c64f996](https://github.com/heygen-com/hyperframes/commit/2c64f9969442914a2a8813cc60e5e57646742336), [#1323](https://github.com/heygen-com/hyperframes/pull/1323))

## Fixes

- **Sdk:** Fs adapter flush() tracks in-flight writes; add to T13 contract suite ([0a30011a](https://github.com/heygen-com/hyperframes/commit/0a30011abd18165f793b07b65d872843b7b8be45), [#1425](https://github.com/heygen-com/hyperframes/pull/1425))
- **Studio:** Delete only the active element's selected keyframes ([f1a50e03](https://github.com/heygen-com/hyperframes/commit/f1a50e03eada59c4e8bfbdc3b0846ab47e948b66), [#1453](https://github.com/heygen-com/hyperframes/pull/1453))
- **Core,player,studio:** Bound trimmed audio playback to the clip window ([a95e49db](https://github.com/heygen-com/hyperframes/commit/a95e49dbdabfb4cd5f697f9ee08a324a832a51ed), [#1430](https://github.com/heygen-com/hyperframes/pull/1430))
- **Studio:** Route rotation field edits through the animation like X/Y/W/H ([5c8b6373](https://github.com/heygen-com/hyperframes/commit/5c8b637369f8c1772945f8ed4d9d6608fbdfcb1f), [#1427](https://github.com/heygen-com/hyperframes/pull/1427))
- **Studio:** Break all 7 circular dependency cycles and fix rules-of-hooks violation ([a241f259](https://github.com/heygen-com/hyperframes/commit/a241f2591e7786a4586afb623c1242ccfc1a6510), [#1422](https://github.com/heygen-com/hyperframes/pull/1422))
- **Player:** Replace or clear the audio-src proxy instead of stacking ([fbc3cdf2](https://github.com/heygen-com/hyperframes/commit/fbc3cdf2fd43379838eaf858c111a119d9a997a3), [#1409](https://github.com/heygen-com/hyperframes/pull/1409))
- **Studio:** Disable the rotation field when the element can't be rotated ([3c560706](https://github.com/heygen-com/hyperframes/commit/3c5607063f90bd03b834113f3f61d7695c239484), [#1412](https://github.com/heygen-com/hyperframes/pull/1412))
- **Render:** Make WebGL video textures deterministic in headless render ([d580f2a1](https://github.com/heygen-com/hyperframes/commit/d580f2a1d8ff8b5c5185ea6037725b4a6e9bb72e), [#1403](https://github.com/heygen-com/hyperframes/pull/1403))
- **Player:** Clean up controls on destroy ([a0375051](https://github.com/heygen-com/hyperframes/commit/a0375051762726797a6d907f586d233b61f53bbb), [#1407](https://github.com/heygen-com/hyperframes/pull/1407))
- **Studio:** Surface gesture recording controls ([5b6c62e1](https://github.com/heygen-com/hyperframes/commit/5b6c62e151e0877e32b56f199719f627729a3ae2), [#1390](https://github.com/heygen-com/hyperframes/pull/1390))
- **Core:** Block symlink-based path escape in studio-api isSafePath ([953bab31](https://github.com/heygen-com/hyperframes/commit/953bab319bf9a0b7efa1c9486c7c15dfcac195e4), [#1397](https://github.com/heygen-com/hyperframes/pull/1397))
- **Studio:** Reject unsafe keyframe values ([3bcab3dc](https://github.com/heygen-com/hyperframes/commit/3bcab3dc29ff1d786d525a7aedef0b5afa5a75e9), [#1389](https://github.com/heygen-com/hyperframes/pull/1389))
- **Studio:** Save retries, mutation queue circuit breaker, save_failure diagnostics ([5f12e692](https://github.com/heygen-com/hyperframes/commit/5f12e692d5b2009022db42efc6c8c9b4630cb1df), [#1366](https://github.com/heygen-com/hyperframes/pull/1366))
- **Sdk:** Bridge preview selection into session state ([84a56986](https://github.com/heygen-com/hyperframes/commit/84a56986c6cc86316be7c987ed4d21a3467c7596), [#1362](https://github.com/heygen-com/hyperframes/pull/1362))
- **Core:** Exclude dot-directories and node_modules from studio composition discovery and lint ([b952dc9c](https://github.com/heygen-com/hyperframes/commit/b952dc9ce0fe60c6574ce013a2f3eef7937dcbc3), [#1385](https://github.com/heygen-com/hyperframes/pull/1385))
- **Studio:** Journal source writebacks ([aec3c3b5](https://github.com/heygen-com/hyperframes/commit/aec3c3b58c88de284f9efc76ca48313c2541ae88), [#1388](https://github.com/heygen-com/hyperframes/pull/1388))
- **CLI:** Validate project directory before starting preview ([2ec00629](https://github.com/heygen-com/hyperframes/commit/2ec006297f0fb99f567187d3301bd9d0662cb1da), [#1394](https://github.com/heygen-com/hyperframes/pull/1394))
- **Runtime:** Respect hidden ancestor clips in Studio preview (#1387) ([7fa36961](https://github.com/heygen-com/hyperframes/commit/7fa369610112358c4abe197ed995228c1603658b), [#1395](https://github.com/heygen-com/hyperframes/pull/1395))
- Address review feedback from #1333 and #1335 ([28e2ab9d](https://github.com/heygen-com/hyperframes/commit/28e2ab9d5bef27a2d17acbbadf35c24fa4e6bd35), [#1343](https://github.com/heygen-com/hyperframes/pull/1343))
- **Studio:** Stabilize manual drag targets ([1ea0ed55](https://github.com/heygen-com/hyperframes/commit/1ea0ed55e3768fa59cddd17cddb5155c0077b65a), [#1393](https://github.com/heygen-com/hyperframes/pull/1393))
- **Studio:** Remove motion tab from right panel ([d0a7f7d8](https://github.com/heygen-com/hyperframes/commit/d0a7f7d839dd1d93dcd2a04226d3111928e213a5), [#1391](https://github.com/heygen-com/hyperframes/pull/1391))
- **Release:** Include sdk in fixed-version bump ([ad5229af](https://github.com/heygen-com/hyperframes/commit/ad5229af8348d4d08b4498b0c669734109f9a110), [#1363](https://github.com/heygen-com/hyperframes/pull/1363))
- **Core:** Honor root data-duration when GSAP timeline ends short ([7a99ccec](https://github.com/heygen-com/hyperframes/commit/7a99ccec6db6037030aafcdf264cb8951dd88a3a), [#1378](https://github.com/heygen-com/hyperframes/pull/1378))
- **Engine:** Respect cgroup memory limits in low-memory detection ([2ce5b421](https://github.com/heygen-com/hyperframes/commit/2ce5b421f1eefee125dd97988a1cc25f7e94aaad), [#1373](https://github.com/heygen-com/hyperframes/pull/1373))
- **Engine:** Real back-pressure in StreamingEncoder.writeFrame ([c609850b](https://github.com/heygen-com/hyperframes/commit/c609850b419e56289a4a257c5bc97142091f90ba), [#1372](https://github.com/heygen-com/hyperframes/pull/1372))
- **Producer:** Pass resolved engine config through every encode path ([5917c038](https://github.com/heygen-com/hyperframes/commit/5917c0382d30d9cb901155936516db5ac355de2d), [#1371](https://github.com/heygen-com/hyperframes/pull/1371))
- **Studio:** Remove unused onSelectElementById after indicator removal ([9e5b3d64](https://github.com/heygen-com/hyperframes/commit/9e5b3d644f8788214c0b47c431e0e860bc49abd0), [#1377](https://github.com/heygen-com/hyperframes/pull/1377))
- **Studio:** Remove off-screen element indicators for UX redesign ([3ba01129](https://github.com/heygen-com/hyperframes/commit/3ba01129e7fc3a5c6d0efe308704ef2d3a0c2901), [#1376](https://github.com/heygen-com/hyperframes/pull/1376))
- **CLI:** Verify browser/ffmpeg binaries exist before render starts ([cee6fd02](https://github.com/heygen-com/hyperframes/commit/cee6fd02d6dbc6bdc0aa0466ab6cf33f3f5d1ba1), [#1365](https://github.com/heygen-com/hyperframes/pull/1365))
- **Studio:** Disable keyframes feature flag by default, release v0.6.93 ([c3554dcf](https://github.com/heygen-com/hyperframes/commit/c3554dcffe04aff8976dcd8bcc753db4d6c56cae))
- **Studio:** Update drag intercept test for true default ([6babf5be](https://github.com/heygen-com/hyperframes/commit/6babf5be7dca35ee7bbc0d8ca339e164adfda793))
- **Studio:** Trim PropertyPanel to 600-line limit ([a433d83f](https://github.com/heygen-com/hyperframes/commit/a433d83fec63a84928d8f1bf1c57cf6a39b4eb70))
- **Studio:** Gesture recording replaces existing position keyframes ([d49ee416](https://github.com/heygen-com/hyperframes/commit/d49ee416a3420258ffd9247a0793a427fb49cc89), [#1360](https://github.com/heygen-com/hyperframes/pull/1360))
- **Studio:** Gesture recording replaces existing position keyframes ([191a33dc](https://github.com/heygen-com/hyperframes/commit/191a33dc2cc4e63f4ab413d1cc68bedd981d1e8f), [#1359](https://github.com/heygen-com/hyperframes/pull/1359))
- **Studio:** Property panel group-aware keyframe routing ([c435a4ee](https://github.com/heygen-com/hyperframes/commit/c435a4ee46adf0ce8cd6c0dbae876bfc0a171010), [#1358](https://github.com/heygen-com/hyperframes/pull/1358))
- **Studio:** Keyframe cache propertyGroup tagging + timeline UI ([caf23eff](https://github.com/heygen-com/hyperframes/commit/caf23eff8a6b16dbfe3e20735ebcf913ae22526c), [#1357](https://github.com/heygen-com/hyperframes/pull/1357))
- **Studio:** Per-property-group intercept routing + drag/resize fixes ([95029e08](https://github.com/heygen-com/hyperframes/commit/95029e083e5066a62de5420861cf4a859c1ce914), [#1356](https://github.com/heygen-com/hyperframes/pull/1356))
- **Core:** Split-into-property-groups and replace-with-keyframes mutations ([b6bf1b11](https://github.com/heygen-com/hyperframes/commit/b6bf1b11909335869a79204b183ceb4cc0bd081b), [#1355](https://github.com/heygen-com/hyperframes/pull/1355))
- **Core:** Per-property-group keyframe foundations ([889e9f09](https://github.com/heygen-com/hyperframes/commit/889e9f09ade583f21a5b150d1e7b65cced6babe8), [#1354](https://github.com/heygen-com/hyperframes/pull/1354))
- **Core:** Actionable error for empty sub-composition HTML in compile ([8802c3fd](https://github.com/heygen-com/hyperframes/commit/8802c3fdf8c8385613d4662e70ae807e50be8fe9), [#1364](https://github.com/heygen-com/hyperframes/pull/1364))
- **Sdk,core:** Css tokenizer, override-set replay, setattribute safety, persist errors ([a0ee9721](https://github.com/heygen-com/hyperframes/commit/a0ee97210b4cfd4d4e8658fef607467ae88383b7), [#1350](https://github.com/heygen-com/hyperframes/pull/1350))
- **Studio:** Watch external project dirs so preview ETag invalidates ([69d67f1d](https://github.com/heygen-com/hyperframes/commit/69d67f1d69826039d22952859229580aee368492), [#1347](https://github.com/heygen-com/hyperframes/pull/1347))
- **Studio,core:** Persist manual position edits for GSAP-owned elements ([fc3ab76c](https://github.com/heygen-com/hyperframes/commit/fc3ab76ce80277e6b4832b85d875a2f14c1f28b6), [#1346](https://github.com/heygen-com/hyperframes/pull/1346))
- **Studio:** Accept razor splits at the canvas clamp boundary ([c52165d1](https://github.com/heygen-com/hyperframes/commit/c52165d1b63cf11955ceb4e2265cbe34b0718852), [#1340](https://github.com/heygen-com/hyperframes/pull/1340))

## Docs & Examples

- Add changelog entries for v0.6.92-v0.6.95 ([740f244c](https://github.com/heygen-com/hyperframes/commit/740f244c030496e09fc0290943679befbcea976a))

## Catalog

- **CLI:** Resolve and install transitive registry dependencies ([8eac7e1c](https://github.com/heygen-com/hyperframes/commit/8eac7e1cda89e45ae189405ec5ba3acb17026d13), [#1396](https://github.com/heygen-com/hyperframes/pull/1396))
- **CLI:** Respect registry compatibility metadata ([583b47b0](https://github.com/heygen-com/hyperframes/commit/583b47b0390e5368193b9de8214cf22ce0cb99f5), [#1251](https://github.com/heygen-com/hyperframes/pull/1251))

## Internal

- **Core:** Swap studio-api read path from recast to acorn parser (T6e) ([b8fa4b5d](https://github.com/heygen-com/hyperframes/commit/b8fa4b5dd271b30ec1a8d093d37a2d0ab683265a), [#1392](https://github.com/heygen-com/hyperframes/pull/1392))
- Stop tracking lefthook-local.yml ([2002aa2c](https://github.com/heygen-com/hyperframes/commit/2002aa2c07960cfcdd0d5bb7cf127ab2dc728d52), [#1454](https://github.com/heygen-com/hyperframes/pull/1454))
- **Producer:** Simplify — extract HDR compositor, delete dead code, consolidate patterns ([a0d72953](https://github.com/heygen-com/hyperframes/commit/a0d7295367362576ebea611426a591af8a2478b6), [#1414](https://github.com/heygen-com/hyperframes/pull/1414))
- **Studio:** Simplify hooks, split contexts, remove dead code ([7bff49ec](https://github.com/heygen-com/hyperframes/commit/7bff49ecf0f3c5515e8a7aa0394514e9e764f562), [#1416](https://github.com/heygen-com/hyperframes/pull/1416))
- **Core:** Simplify packages/core — dead code, dedup, type safety ([6f677292](https://github.com/heygen-com/hyperframes/commit/6f677292ae352079dca58acc91ea37ad20a66924), [#1413](https://github.com/heygen-com/hyperframes/pull/1413))
- **Core:** Route project paths through a single resolveWithinProject chokepoint ([1c47ba99](https://github.com/heygen-com/hyperframes/commit/1c47ba998177e686947bd54b84a049f11f27a8b8), [#1398](https://github.com/heygen-com/hyperframes/pull/1398))
- **Core:** Align file-tree test with backup-only hiding (#1366) ([ab7f69c1](https://github.com/heygen-com/hyperframes/commit/ab7f69c1f5e049cfc919ea8479717e31e12703f8), [#1400](https://github.com/heygen-com/hyperframes/pull/1400))
- **Core:** Fix contradictory composition-discovery file-tree test (#1385) ([e2cc134c](https://github.com/heygen-com/hyperframes/commit/e2cc134c7765d81ad0803999a4b9a0fa891a46be), [#1399](https://github.com/heygen-com/hyperframes/pull/1399))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.91...v0.6.99).
</Update>

<Update
  label="HyperFrames v0.6.98"
  description="Released - 2026-06-15"
  tags={["Release", "Studio", "CLI", "Core"]}
>
Keyframe-aware timeline editing with proportional scaling on resize, music beat detection, and diamond rendering fixes.

## Features

- **Studio:** Scale GSAP positions on clip resize + shift on drag + diamond edge fixes ([#1448](https://github.com/heygen-com/hyperframes/pull/1448))
- **Studio:** Drag keyframes with live beat snapping ([#1439](https://github.com/heygen-com/hyperframes/pull/1439))
- **Studio, CLI:** Music beat detection with timeline guides + headless beats CLI ([#1424](https://github.com/heygen-com/hyperframes/pull/1424))
- **CLI:** Flag overlapping text blocks in inspect ([#1436](https://github.com/heygen-com/hyperframes/pull/1436))
- **Skills:** Video-creation workflow suite — routable workflows ([#1349](https://github.com/heygen-com/hyperframes/pull/1349))

## Fixes

- **Studio:** Delete only the active element's selected keyframes ([#1453](https://github.com/heygen-com/hyperframes/pull/1453))
- **Studio:** Route rotation field edits through the animation like X/Y/W/H ([#1427](https://github.com/heygen-com/hyperframes/pull/1427))
- **Studio:** Break all 7 circular dependency cycles and fix rules-of-hooks violation ([#1422](https://github.com/heygen-com/hyperframes/pull/1422))
- **Core, Player, Studio:** Bound trimmed audio playback to the clip window ([#1430](https://github.com/heygen-com/hyperframes/pull/1430))
- **Player:** Replace or clear the audio-src proxy instead of stacking ([#1409](https://github.com/heygen-com/hyperframes/pull/1409))
- **Studio:** Disable the rotation field when the element can't be rotated ([#1412](https://github.com/heygen-com/hyperframes/pull/1412))

## Refactors

- **Producer:** Simplify — extract HDR compositor, delete dead code, consolidate patterns ([#1414](https://github.com/heygen-com/hyperframes/pull/1414))
- **Studio:** Simplify hooks, split contexts, remove dead code ([#1416](https://github.com/heygen-com/hyperframes/pull/1416))
- **Core:** Simplify packages/core — dead code, dedup, type safety ([#1413](https://github.com/heygen-com/hyperframes/pull/1413))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.97...v0.6.98).
</Update>

<Update
  label="HyperFrames v0.6.97"
  description="Released - 2026-06-13"
  tags={["Release", "CLI", "Studio", "Core", "Engine", "Player"]}
>
Batch rendering, WebGL determinism, studio resilience, and security hardening.

## Features

- **CLI:** Batch rendering — one output per variables row with manifest ([#1336](https://github.com/heygen-com/hyperframes/pull/1336))
- **CLI:** Add `--at-transitions` to inspect for sampling at tween boundaries ([#1386](https://github.com/heygen-com/hyperframes/pull/1386))

## Fixes

- **Render:** Make WebGL video textures deterministic in headless render ([#1403](https://github.com/heygen-com/hyperframes/pull/1403))
- **Player:** Clean up controls on destroy ([#1407](https://github.com/heygen-com/hyperframes/pull/1407))
- **Core:** Route project paths through a single `resolveWithinProject` chokepoint ([#1398](https://github.com/heygen-com/hyperframes/pull/1398))
- **Core:** Block symlink-based path escape in studio-api `isSafePath` ([#1397](https://github.com/heygen-com/hyperframes/pull/1397))
- **Core:** Exclude dot-directories and node_modules from studio composition discovery and lint ([#1385](https://github.com/heygen-com/hyperframes/pull/1385))
- **Studio:** Surface gesture recording controls ([#1390](https://github.com/heygen-com/hyperframes/pull/1390))
- **Studio:** Reject unsafe keyframe values ([#1389](https://github.com/heygen-com/hyperframes/pull/1389))
- **Studio:** Save retries, mutation queue circuit breaker, save_failure diagnostics ([#1366](https://github.com/heygen-com/hyperframes/pull/1366))
- **Studio:** Journal source writebacks ([#1388](https://github.com/heygen-com/hyperframes/pull/1388))
- **SDK:** Bridge preview selection into session state ([#1362](https://github.com/heygen-com/hyperframes/pull/1362))
- **CLI:** Validate project directory before starting preview ([#1394](https://github.com/heygen-com/hyperframes/pull/1394))
- **CLI:** Resolve and install transitive registry dependencies ([#1396](https://github.com/heygen-com/hyperframes/pull/1396))
- **CLI:** Respect registry compatibility metadata ([#1251](https://github.com/heygen-com/hyperframes/pull/1251))
- **Runtime:** Respect hidden ancestor clips in Studio preview ([#1387](https://github.com/heygen-com/hyperframes/pull/1387))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.95...v0.6.97).
</Update>

<Update
  label="HyperFrames v0.6.95"
  description="Released - 2026-06-12"
  tags={["Release", "Engine"]}
>
Engine: adaptive memory-aware encoding with system memory monitoring, chunked encoder improvements, and streaming encoder resilience.

## Features

- **Engine:** Adaptive memory-aware encoding with system memory monitoring and dynamic chunk sizing
- **Engine:** Chunked encoder improvements for parallel coordination
- **Engine:** Streaming encoder resilience with better error recovery

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.94...v0.6.95).
</Update>

<Update
  label="HyperFrames v0.6.94"
  description="Released - 2026-06-12"
  tags={["Release", "Studio"]}
>
Remove off-screen element indicators for UX redesign. The NLELayout unclipped overlay split remains for selection handle interaction near composition edges.

## Fixes

- **Studio:** Remove off-screen element indicators (UX redesign pending) ([#1376](https://github.com/heygen-com/hyperframes/pull/1376))
- **Studio:** Clean up unused `onSelectElementById` prop ([#1377](https://github.com/heygen-com/hyperframes/pull/1377))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.93...v0.6.94).
</Update>

<Update
  label="HyperFrames v0.6.93"
  description="Released - 2026-06-12"
  tags={["Release", "Studio"]}
>
Hotfix: disable keyframes feature flag by default. The flag was accidentally shipped as enabled in v0.6.92.

## Fixes

- **Studio:** Set `STUDIO_KEYFRAMES_ENABLED` default to `false`

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.92...v0.6.93).
</Update>

<Update
  label="HyperFrames v0.6.92"
  description="Released - 2026-06-12"
  tags={["Release", "Studio", "Core"]}
>
Per-property-group keyframe architecture: the keyframe system redesign ships across 7 stacked PRs. Each GSAP tween now targets a single property group (position, scale, rotation, etc.), eliminating cross-property contamination during drag, resize, and gesture recording.

## Features

- **Core:** Per-property-group type system (`PropertyGroupName`, `PROPERTY_GROUPS`, `classifyPropertyGroup`) ([#1354](https://github.com/heygen-com/hyperframes/pull/1354))
- **Core:** `split-into-property-groups` and `replace-with-keyframes` server mutations ([#1355](https://github.com/heygen-com/hyperframes/pull/1355))
- **Core:** `delete-all-for-selector` atomic mutation for bulk animation removal
- **Studio:** GSAP drag intercept enabled by default with per-property-group routing ([#1356](https://github.com/heygen-com/hyperframes/pull/1356))
- **Studio:** Gesture recording merges into existing position tweens instead of replacing ([#1359](https://github.com/heygen-com/hyperframes/pull/1359))
- **Studio:** Unclipped overlay for off-screen element interaction ([#1360](https://github.com/heygen-com/hyperframes/pull/1360))

## Fixes

- **Studio:** Keyframe cache tags with `propertyGroup` for group-aware operations ([#1357](https://github.com/heygen-com/hyperframes/pull/1357))
- **Studio:** Property panel routes keyframe diamonds to correct animation per property ([#1358](https://github.com/heygen-com/hyperframes/pull/1358))
- **Studio:** Context menus portaled to `document.body` with smart overflow positioning
- **Studio:** Delete All Keyframes uses atomic server mutation (no stale ID race)
- **Studio:** Block CSS drag on GSAP-animated elements to prevent keyframe corruption
- **Studio:** `onMoveKeyframe` percentage-space conversion (clip-relative to tween-relative)

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.91...v0.6.92).
</Update>

<Update
  label="HyperFrames v0.6.91"
  description="Released - 2026-06-11"
  tags={["Release", "Studio", "Core"]}
>
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](https://github.com/heygen-com/hyperframes/commit/ef186139758e237633af77bbf9956272b064a1a5), [#1331](https://github.com/heygen-com/hyperframes/pull/1331))
- **Core:** GSAP-aware split engine for timeline clip splitting ([45d4a71e](https://github.com/heygen-com/hyperframes/commit/45d4a71ed0761364fdb983b7a04d559e5f331327), [#1330](https://github.com/heygen-com/hyperframes/pull/1330))

## Fixes

- **Studio:** Add GSAP drag intercept feature flag, disabled by default ([a5bc52ba](https://github.com/heygen-com/hyperframes/commit/a5bc52bad19158cedeed21fbb1f8ee465bd2f57d), [#1341](https://github.com/heygen-com/hyperframes/pull/1341))

## Internal

- **Studio:** Extract shared timeline components and deduplicate code ([ab082602](https://github.com/heygen-com/hyperframes/commit/ab08260201620277eca8baafeae330ac24342acb), [#1329](https://github.com/heygen-com/hyperframes/pull/1329))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.90...v0.6.91).
</Update>

<Update
  label="HyperFrames v0.6.90"
  description="Released - 2026-06-11"
  tags={["Release", "Producer,core", "CLI", "Cli,producer"]}
>
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](https://github.com/heygen-com/hyperframes/commit/edd85473e7b9273a85f0f842f2dd54ce9b8eca78), [#1335](https://github.com/heygen-com/hyperframes/pull/1335))
- **Cli,producer:** Add gif output format with two-pass palette encode ([e6b8d66c](https://github.com/heygen-com/hyperframes/commit/e6b8d66c2da1df4f42628dbeef09de5255f20dea), [#1333](https://github.com/heygen-com/hyperframes/pull/1333))
- **CLI:** Detect Windsurf, Cline, Gemini CLI, and Crush agents ([e0ecd4d2](https://github.com/heygen-com/hyperframes/commit/e0ecd4d2d11076e6701327c23cab4f4179331e7a), [#1328](https://github.com/heygen-com/hyperframes/pull/1328))
- **Producer:** Optional targetChunkFrames to bound per-chunk frames ([9b18fadc](https://github.com/heygen-com/hyperframes/commit/9b18fadccd01929073da2856678acddfaa1a85ba), [#1332](https://github.com/heygen-com/hyperframes/pull/1332))
- **Producer:** Stage wall-clock split in chunk perf telemetry ([69eac249](https://github.com/heygen-com/hyperframes/commit/69eac249d583fb4314738b0c6f4b815544802b05), [#1327](https://github.com/heygen-com/hyperframes/pull/1327))
- **CLI:** Detect Gemini managed-agent sandbox in detectAgentRuntime ([0766eb81](https://github.com/heygen-com/hyperframes/commit/0766eb8144772cd072eb9746b2f2b35a8e0712c7), [#1294](https://github.com/heygen-com/hyperframes/pull/1294))

## Internal

- **CLI:** Restore exact-match Cursor rule (revert unsourced loosening) ([30fcede4](https://github.com/heygen-com/hyperframes/commit/30fcede44e64aea5f9e6c3a6dedeae6c7bfe5a72), [#1334](https://github.com/heygen-com/hyperframes/pull/1334))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.89...v0.6.90).
</Update>

<Update
  label="HyperFrames v0.6.89"
  description="Released - 2026-06-10"
  tags={["Release", "Runtime", "Studio", "Engine"]}
>
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](https://github.com/heygen-com/hyperframes/commit/036b991cbbe21312b7a03abf03f01c28fa046978), [#1319](https://github.com/heygen-com/hyperframes/pull/1319))
- **Studio:** Keyframe bug fixes — gate delete hooks, fix value corruption, gesture recording ([f0b499b5](https://github.com/heygen-com/hyperframes/commit/f0b499b582a552df08abf4d222acb599fe0f8285), [#1314](https://github.com/heygen-com/hyperframes/pull/1314))
- **Engine:** Add epsilon to frame index floor to prevent IEEE 754 boundary duplicates ([3a72aa52](https://github.com/heygen-com/hyperframes/commit/3a72aa528dfa742209c6565654b23c96bb81536a), [#1318](https://github.com/heygen-com/hyperframes/pull/1318))
- **Producer:** Don't mix audio from muted videos into the render ([8133d934](https://github.com/heygen-com/hyperframes/commit/8133d9346e312beedd0fdc28faf491d46d46cc87), [#1322](https://github.com/heygen-com/hyperframes/pull/1322))

## Docs & Examples

- **README:** Swap hero media to hyperframes-logo-motion ([8fcbb63a](https://github.com/heygen-com/hyperframes/commit/8fcbb63a371752932027f3495dbc6ae6b5daf0f7), [#1315](https://github.com/heygen-com/hyperframes/pull/1315))

## Internal

- Shrink repo — untrack failure frames, recompress backgrounds, harden LFS ([e845793c](https://github.com/heygen-com/hyperframes/commit/e845793ce1d480e19780d74aa2d0259c6bb9e455), [#1326](https://github.com/heygen-com/hyperframes/pull/1326))
- **Studio:** Split oversized files to pass 600-line check ([81416ab3](https://github.com/heygen-com/hyperframes/commit/81416ab3c9b04ca87d399e9b558ec7227b7d641c), [#1313](https://github.com/heygen-com/hyperframes/pull/1313))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.88...v0.6.89).
</Update>

<Update
  label="HyperFrames v0.6.88"
  description="Released - 2026-06-09"
  tags={["Release", "Core"]}
>
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](https://github.com/heygen-com/hyperframes/commit/192417b7cd7384c2001b2be926246260bd728367))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.85...v0.6.88).
</Update>

<Update
  label="HyperFrames v0.6.87"
  description="Released - 2026-06-09"
  tags={["Release"]}
>
Studio keyframe system, render queue improvements, and GSAP parser arc path mutations. Feature-gated behind `VITE_STUDIO_ENABLE_KEYFRAMES`.

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.85...v0.6.87).
</Update>

<Update
  label="HyperFrames v0.6.86"
  description="Released - 2026-06-09"
  tags={["Release", "Runtime,player"]}
>
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](https://github.com/heygen-com/hyperframes/commit/5a0966dfeb5c43f7551c8d8d20eb5c939c6655be))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.85...v0.6.86).
</Update>

<Update
  label="HyperFrames v0.6.85"
  description="Released - 2026-06-09"
  tags={["Release", "Player", "Core,studio", "Core"]}
>
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](https://github.com/heygen-com/hyperframes/commit/cc45b1fa336bec7cd2b1ce54e208d07ab019dd2c))
- **Core:** Implement createPreviewAdapter (R7, Task 3) ([1a23938b](https://github.com/heygen-com/hyperframes/commit/1a23938befbdd9d4d5a58a8a2a0b49df25bb9ef2), [#1291](https://github.com/heygen-com/hyperframes/pull/1291))
- **Core:** Hf-id write-back to disk + serve-time surfacing (R7, Tasks 1-2) ([740a83ab](https://github.com/heygen-com/hyperframes/commit/740a83abb370cb7bc6d81d19f0a8b4dd37260717), [#1289](https://github.com/heygen-com/hyperframes/pull/1289))
- **Core:** SourceMutation data-hf-id targeting (R1, T7) ([1cd4ad6a](https://github.com/heygen-com/hyperframes/commit/1cd4ad6ab8d7a0979a79ce5557cc28b8a2e5e99d), [#1272](https://github.com/heygen-com/hyperframes/pull/1272))
- **Studio:** SourcePatcher data-hf-id targeting (R1, T3) ([42c247d2](https://github.com/heygen-com/hyperframes/commit/42c247d28fc1d40feb21f739a28631008bb21280), [#1271](https://github.com/heygen-com/hyperframes/pull/1271))
- **Core:** Clip-model hf- ids minted at parse, emitted as data-hf-id (R1) ([8d6b7cf5](https://github.com/heygen-com/hyperframes/commit/8d6b7cf51574bab44226620879baac2cfeab6cfe), [#1270](https://github.com/heygen-com/hyperframes/pull/1270))
- **Core:** EnsureHfIds node-id pass + shared hf- mint helper (R1) ([c12854b4](https://github.com/heygen-com/hyperframes/commit/c12854b47c9cb9a43a5e9ae7837ca0987788eb1b), [#1269](https://github.com/heygen-com/hyperframes/pull/1269))
- Font resolution pipeline — compositions capture and embed their own fonts ([0bf15119](https://github.com/heygen-com/hyperframes/commit/0bf15119f8e2423f43a619dad314f8c029994903), [#1255](https://github.com/heygen-com/hyperframes/pull/1255))
- **Gcp Cloud Run:** Google Cloud Run + Workflows distributed render adapter ([4da567df](https://github.com/heygen-com/hyperframes/commit/4da567df22ad2857a8773bf61e425548447967e6), [#1253](https://github.com/heygen-com/hyperframes/pull/1253))

## Fixes

- **Core:** Apply playbackRate to all media duration resolution sites ([908b455e](https://github.com/heygen-com/hyperframes/commit/908b455e5eed94f6c6d1e6a27b2a6c99a8032394), [#1288](https://github.com/heygen-com/hyperframes/pull/1288))
- **Core:** Account for playbackRate in media duration resolution ([7b6c87fa](https://github.com/heygen-com/hyperframes/commit/7b6c87fa88d8faac2cf37a36cd35e617c88b549d), [#1287](https://github.com/heygen-com/hyperframes/pull/1287))
- **Producer:** Revert Proxy-based wrapTimeline to plain-object approach ([c12987e3](https://github.com/heygen-com/hyperframes/commit/c12987e30145205e505b90679321dc2cbcff10a5), [#1284](https://github.com/heygen-com/hyperframes/pull/1284))
- **Release:** Guard against non-monotonic tags ([24279c8c](https://github.com/heygen-com/hyperframes/commit/24279c8c76e6f052dc9d688b4f52ecb28de19f6d), [#1283](https://github.com/heygen-com/hyperframes/pull/1283))
- **Core:** Re-register hf-timelines-built listener in maybePublishRenderReady ([1bcd6ec3](https://github.com/heygen-com/hyperframes/commit/1bcd6ec3b3544f1e6c114f7c65b408bbba581db5), [#1279](https://github.com/heygen-com/hyperframes/pull/1279))

## Docs & Examples

- **Mcp:** Add Grok as a supported host ([b4210f65](https://github.com/heygen-com/hyperframes/commit/b4210f6567bd1c5b42aada9bd6f1fea104a52af4), [#1280](https://github.com/heygen-com/hyperframes/pull/1280))
- **Mcp:** Remove voiceover/TTS references and surface MCP guide in sidebar ([b2be289d](https://github.com/heygen-com/hyperframes/commit/b2be289d9049237f67b65034a1790c318d59ee28), [#1278](https://github.com/heygen-com/hyperframes/pull/1278))

## Catalog

- **Catalog:** Add motion-blur component ([1fd1b316](https://github.com/heygen-com/hyperframes/commit/1fd1b3164a87221fbb5c9e01557125d13e829554), [#1274](https://github.com/heygen-com/hyperframes/pull/1274))
- **Registry:** Add morph-text component and text-effects catalog section ([48fcf4ad](https://github.com/heygen-com/hyperframes/commit/48fcf4ada5ee67f8931a43dc54c3337fa615300c), [#1247](https://github.com/heygen-com/hyperframes/pull/1247))

## Internal

- **Core,studio:** Extract draft-marker constants + R7 code-review fixes (Task 4) ([3d7d7c02](https://github.com/heygen-com/hyperframes/commit/3d7d7c029133c9e22b22a38b6d796457678deb53), [#1292](https://github.com/heygen-com/hyperframes/pull/1292))
- **Core:** PreviewAdapter contract failing tests (T10 spec for R7) ([72e4f1a0](https://github.com/heygen-com/hyperframes/commit/72e4f1a0f6d25fadfdc776cfecea740c4394c572), [#1286](https://github.com/heygen-com/hyperframes/pull/1286))
- Skip ffmpeg-static CDN download on ubuntu; retry Windows FFmpeg install ([25420bf4](https://github.com/heygen-com/hyperframes/commit/25420bf4cfc37b179b4efeace9db25a7178b61bf), [#1275](https://github.com/heygen-com/hyperframes/pull/1275))
- **Core:** Address review feedback on T6a / T10 / T7 stubs ([63fd322d](https://github.com/heygen-com/hyperframes/commit/63fd322df13538ac09d70f95cdee6585048ad711), [#1268](https://github.com/heygen-com/hyperframes/pull/1268))
- **Core,studio:** Add T3+T7 hfId targeting stubs (spec for R1) ([1e705b11](https://github.com/heygen-com/hyperframes/commit/1e705b1107408d75d8e83dddd6c8fd5e8aec58fb), [#1267](https://github.com/heygen-com/hyperframes/pull/1267))
- **Core:** Add T6a GSAP parser golden baselines (Recast/Babel snapshot) ([184ef033](https://github.com/heygen-com/hyperframes/commit/184ef03317b91d8c9eb69401f0c7a769662d9357), [#1263](https://github.com/heygen-com/hyperframes/pull/1263))
- **Core:** Add T10 PreviewAdapter contract stubs (spec for R7) ([1fdce71c](https://github.com/heygen-com/hyperframes/commit/1fdce71c8b174ced98d0010bb79f31bcc6cf34b7), [#1262](https://github.com/heygen-com/hyperframes/pull/1262))
- **Core:** Extract maxEndTime+serialize to parsers/test-utils.ts (TU) ([ffc54c78](https://github.com/heygen-com/hyperframes/commit/ffc54c7867b7963e8138cdc24d8b81a323c56c1a), [#1261](https://github.com/heygen-com/hyperframes/pull/1261))
- **Studio:** Add T5c review-fix gaps in manualEditsDomPatches characterization ([5b29bea0](https://github.com/heygen-com/hyperframes/commit/5b29bea0b12537434728b20eb6556b3f512d881a), [#1259](https://github.com/heygen-com/hyperframes/pull/1259))
- **Studio:** Add T5b rotation+motion build-patches characterization ([63ff0c16](https://github.com/heygen-com/hyperframes/commit/63ff0c16c3e1f49878576e9d3fd49a6be6f1f07b), [#1258](https://github.com/heygen-com/hyperframes/pull/1258))
- **Studio:** Add T5a pathOffset+boxSize build-patches characterization ([19f46cd1](https://github.com/heygen-com/hyperframes/commit/19f46cd19a6bdc26de4a6d0f000e7f58f0bfa9e9), [#1257](https://github.com/heygen-com/hyperframes/pull/1257))
- Remove plan docs and gitignore docs/plans/ ([fc01717c](https://github.com/heygen-com/hyperframes/commit/fc01717c8219fd766e2b3fd8b6ea550457f03095), [#1265](https://github.com/heygen-com/hyperframes/pull/1265))
- **Core:** Add T9 CompositionVariable font/image parse spec (before R1) ([806b226b](https://github.com/heygen-com/hyperframes/commit/806b226b349897cb69618a2d706de6c9455c7226), [#1246](https://github.com/heygen-com/hyperframes/pull/1246))
- **Core:** Add T2 stable id spec for parse-to-hf id contract (before R1) ([a890d093](https://github.com/heygen-com/hyperframes/commit/a890d093e19ce9c51183af741b5e335d9348bc3c), [#1245](https://github.com/heygen-com/hyperframes/pull/1245))
- **Studio:** Add T4 op-contract stubs for editor dispatch boundary ([bdbd8b1d](https://github.com/heygen-com/hyperframes/commit/bdbd8b1db013dd1064c46261a690288e711bfd78), [#1243](https://github.com/heygen-com/hyperframes/pull/1243))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.80...v0.6.85).
</Update>

<Update
  label="HyperFrames v0.6.84"
  description="Released - 2026-06-09"
  tags={["Release", "Core"]}
>
Completes the playbackRate fix across all media duration resolution sites — visibility, timeline payload, and auto-calculated duration now all respect `defaultPlaybackRate`.

## Fixes

- **Core:** Apply playbackRate to all media duration resolution sites ([908b455e](https://github.com/heygen-com/hyperframes/commit/908b455e5eed94f6c6d1e6a27b2a6c99a8032394), [#1288](https://github.com/heygen-com/hyperframes/pull/1288))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.83...v0.6.84).
</Update>

<Update
  label="HyperFrames v0.6.83"
  description="Released - 2026-06-09"
  tags={["Release", "Core", "Producer", "Release"]}
>
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](https://github.com/heygen-com/hyperframes/commit/7b6c87fa88d8faac2cf37a36cd35e617c88b549d), [#1287](https://github.com/heygen-com/hyperframes/pull/1287))
- **Producer:** Revert Proxy-based wrapTimeline to plain-object approach ([c12987e3](https://github.com/heygen-com/hyperframes/commit/c12987e30145205e505b90679321dc2cbcff10a5), [#1284](https://github.com/heygen-com/hyperframes/pull/1284))
- **Release:** Guard against non-monotonic tags ([24279c8c](https://github.com/heygen-com/hyperframes/commit/24279c8c76e6f052dc9d688b4f52ecb28de19f6d), [#1283](https://github.com/heygen-com/hyperframes/pull/1283))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.82...v0.6.83).
</Update>

<Update
  label="HyperFrames v0.6.82"
  description="Released - 2026-06-08"
  tags={["Release", "Core", "Mcp", "Catalog"]}
>
Fixes a render-ready listener race and adds Grok MCP support, a motion-blur catalog component, and improved CI reliability.

## Fixes

- **Core:** Re-register hf-timelines-built listener in maybePublishRenderReady ([1bcd6ec3](https://github.com/heygen-com/hyperframes/commit/1bcd6ec3b3544f1e6c114f7c65b408bbba581db5), [#1279](https://github.com/heygen-com/hyperframes/pull/1279))

## Docs & Examples

- **Mcp:** Add Grok as a supported host ([b4210f65](https://github.com/heygen-com/hyperframes/commit/b4210f6567bd1c5b42aada9bd6f1fea104a52af4), [#1280](https://github.com/heygen-com/hyperframes/pull/1280))
- **Mcp:** Remove voiceover/TTS references and surface MCP guide in sidebar ([b2be289d](https://github.com/heygen-com/hyperframes/commit/b2be289d9049237f67b65034a1790c318d59ee28), [#1278](https://github.com/heygen-com/hyperframes/pull/1278))

## Catalog

- **Catalog:** Add motion-blur component ([1fd1b316](https://github.com/heygen-com/hyperframes/commit/1fd1b3164a87221fbb5c9e01557125d13e829554), [#1274](https://github.com/heygen-com/hyperframes/pull/1274))

## Internal

- Skip ffmpeg-static CDN download on ubuntu; retry Windows FFmpeg install ([25420bf4](https://github.com/heygen-com/hyperframes/commit/25420bf4cfc37b179b4efeace9db25a7178b61bf), [#1275](https://github.com/heygen-com/hyperframes/pull/1275))
- **Core:** Address review feedback on T6a / T10 / T7 stubs ([63fd322d](https://github.com/heygen-com/hyperframes/commit/63fd322df13538ac09d70f95cdee6585048ad711), [#1268](https://github.com/heygen-com/hyperframes/pull/1268))
- **Core,studio:** Add T3+T7 hfId targeting stubs (spec for R1) ([1e705b11](https://github.com/heygen-com/hyperframes/commit/1e705b1107408d75d8e83dddd6c8fd5e8aec58fb), [#1267](https://github.com/heygen-com/hyperframes/pull/1267))
- **Core:** Add T6a GSAP parser golden baselines (Recast/Babel snapshot) ([184ef033](https://github.com/heygen-com/hyperframes/commit/184ef03317b91d8c9eb69401f0c7a769662d9357), [#1263](https://github.com/heygen-com/hyperframes/pull/1263))
- **Core:** Add T10 PreviewAdapter contract stubs (spec for R7) ([1fdce71c](https://github.com/heygen-com/hyperframes/commit/1fdce71c8b174ced98d0010bb79f31bcc6cf34b7), [#1262](https://github.com/heygen-com/hyperframes/pull/1262))
- **Core:** Extract maxEndTime+serialize to parsers/test-utils.ts (TU) ([ffc54c78](https://github.com/heygen-com/hyperframes/commit/ffc54c7867b7963e8138cdc24d8b81a323c56c1a), [#1261](https://github.com/heygen-com/hyperframes/pull/1261))
- **Studio:** Add T5c review-fix gaps in manualEditsDomPatches characterization ([5b29bea0](https://github.com/heygen-com/hyperframes/commit/5b29bea0b12537434728b20eb6556b3f512d881a), [#1259](https://github.com/heygen-com/hyperframes/pull/1259))
- **Studio:** Add T5b rotation+motion build-patches characterization ([63ff0c16](https://github.com/heygen-com/hyperframes/commit/63ff0c16c3e1f49878576e9d3fd49a6be6f1f07b), [#1258](https://github.com/heygen-com/hyperframes/pull/1258))
- **Studio:** Add T5a pathOffset+boxSize build-patches characterization ([19f46cd1](https://github.com/heygen-com/hyperframes/commit/19f46cd19a6bdc26de4a6d0f000e7f58f0bfa9e9), [#1257](https://github.com/heygen-com/hyperframes/pull/1257))
- Remove plan docs and gitignore docs/plans/ ([fc01717c](https://github.com/heygen-com/hyperframes/commit/fc01717c8219fd766e2b3fd8b6ea550457f03095), [#1265](https://github.com/heygen-com/hyperframes/pull/1265))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.81...v0.6.82).
</Update>

<Update
  label="HyperFrames v0.6.81"
  description="Released - 2026-06-07"
  tags={["Release", "Gcp Cloud Run", "Core", "Registry"]}
>
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](https://github.com/heygen-com/hyperframes/commit/0bf15119f8e2423f43a619dad314f8c029994903), [#1255](https://github.com/heygen-com/hyperframes/pull/1255))
- **Gcp Cloud Run:** Google Cloud Run + Workflows distributed render adapter ([4da567df](https://github.com/heygen-com/hyperframes/commit/4da567df22ad2857a8773bf61e425548447967e6), [#1253](https://github.com/heygen-com/hyperframes/pull/1253))

## Catalog

- **Registry:** Add morph-text component and text-effects catalog section ([48fcf4ad](https://github.com/heygen-com/hyperframes/commit/48fcf4ada5ee67f8931a43dc54c3337fa615300c), [#1247](https://github.com/heygen-com/hyperframes/pull/1247))

## Internal

- **Core:** Add T9 CompositionVariable font/image parse spec (before R1) ([806b226b](https://github.com/heygen-com/hyperframes/commit/806b226b349897cb69618a2d706de6c9455c7226), [#1246](https://github.com/heygen-com/hyperframes/pull/1246))
- **Core:** Add T2 stable id spec for parse-to-hf id contract (before R1) ([a890d093](https://github.com/heygen-com/hyperframes/commit/a890d093e19ce9c51183af741b5e335d9348bc3c), [#1245](https://github.com/heygen-com/hyperframes/pull/1245))
- **Studio:** Add T4 op-contract stubs for editor dispatch boundary ([bdbd8b1d](https://github.com/heygen-com/hyperframes/commit/bdbd8b1db013dd1064c46261a690288e711bfd78), [#1243](https://github.com/heygen-com/hyperframes/pull/1243))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.80...v0.6.81).
</Update>

<Update
  label="HyperFrames v0.6.80"
  description="Released - 2026-06-07"
  tags={["Release", "Render", "Studio", "Core"]}
>
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

- **Gsap:** Add innerText support to GSAP inspector for counter animations ([05aac941](https://github.com/heygen-com/hyperframes/commit/05aac941fc93e569d5eefdb53440f102f046494b), [#1244](https://github.com/heygen-com/hyperframes/pull/1244))

## Fixes

- Batch GSAP timeline construction to prevent main-thread hang (#1231) ([ebd156bc](https://github.com/heygen-com/hyperframes/commit/ebd156bcc145e0d144e22f80ff0b98098ee8ad64), [#1249](https://github.com/heygen-com/hyperframes/pull/1249))
- **Render:** Add end-to-end observability ([29d6f1ea](https://github.com/heygen-com/hyperframes/commit/29d6f1eac9915f435a6dd72cf9ed96431c6afaf8), [#1248](https://github.com/heygen-com/hyperframes/pull/1248))

## Internal

- **Studio:** Add T11 history coalescing and cross-prop separation suite ([9aebc8db](https://github.com/heygen-com/hyperframes/commit/9aebc8db70cf373875b9b685a68722b78eb33c03), [#1242](https://github.com/heygen-com/hyperframes/pull/1242))
- **Core:** Add T8 override-set merge semantics suite for getVariables ([37d02f26](https://github.com/heygen-com/hyperframes/commit/37d02f26a2388fd770e124f9e9dee16174b03763), [#1241](https://github.com/heygen-com/hyperframes/pull/1241))
- **Core:** Add T1 round-trip idempotence suite for parse/serialize ([dd956744](https://github.com/heygen-com/hyperframes/commit/dd9567446bce28dff9f8a163b03a0071870eb07b), [#1240](https://github.com/heygen-com/hyperframes/pull/1240))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.79...v0.6.80).
</Update>

<Update
  label="HyperFrames v0.6.79"
  description="Released - 2026-06-06"
  tags={["Release", "Engine"]}
>
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

- **Engine:** Use domcontentloaded to avoid video preload navigation timeout ([62b7137e](https://github.com/heygen-com/hyperframes/commit/62b7137e723c3e3ef590950eed99ec5a671749cd), [#1239](https://github.com/heygen-com/hyperframes/pull/1239))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.78...v0.6.79).
</Update>

<Update
  label="HyperFrames v0.6.78"
  description="Released - 2026-06-06"
  tags={["Release", "Engine"]}
>
Adds detailed diagnostics around page navigation timeouts — captures failed requests, HTTP errors, and timing context to help debug environment-specific render failures.

## Internal

- **Engine:** Add capture navigation timeout diagnostics ([dc71f411](https://github.com/heygen-com/hyperframes/commit/dc71f411c770b5ee2a758959e84655ac10a7fcb5), [#1238](https://github.com/heygen-com/hyperframes/pull/1238))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.77...v0.6.78).
</Update>

<Update
  label="HyperFrames v0.6.77"
  description="Released - 2026-06-06"
  tags={["Release", "Producer"]}
>
Ensures the probe stage respects low-memory mode by threading the `forceScreenshot` flag, preventing BeginFrame probe failures on memory-constrained systems.

## Fixes

- **Producer:** Thread forceScreenshot to probe stage for low-memory mode ([ca3bdd14](https://github.com/heygen-com/hyperframes/commit/ca3bdd149bdf07240b26f0863cbda4024a9493ab), [#1237](https://github.com/heygen-com/hyperframes/pull/1237))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.76...v0.6.77).
</Update>

<Update
  label="HyperFrames v0.6.76"
  description="Released - 2026-06-06"
  tags={["Release", "Player", "Producer", "AWS Lambda"]}
>
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](https://github.com/heygen-com/hyperframes/commit/f39b5988cc8e810e03c3ceead662729d9156ccb2), [#1234](https://github.com/heygen-com/hyperframes/pull/1234))
- **Studio:** Draggable layer reorder with z-index persistence ([7a0cb085](https://github.com/heygen-com/hyperframes/commit/7a0cb085bbc4eb4cfd45ee798800e90a0f998717), [#1216](https://github.com/heygen-com/hyperframes/pull/1216))
- **Producer:** Auto low-memory safe render profile ([bacfb175](https://github.com/heygen-com/hyperframes/commit/bacfb17538ae2c79343e816dd03d6a62f2d0163c), [#1225](https://github.com/heygen-com/hyperframes/pull/1225))
- **Studio:** Add fit-to-children button in property panel ([4d968866](https://github.com/heygen-com/hyperframes/commit/4d968866551fe3a32b71688b7c69f3d1d9c66660), [#1224](https://github.com/heygen-com/hyperframes/pull/1224))
- **Studio:** Wire snap engine into preview drag and resize gestures ([0a965dc4](https://github.com/heygen-com/hyperframes/commit/0a965dc4ad51e03f867df481b99e39443993f8dd), [#1223](https://github.com/heygen-com/hyperframes/pull/1223))
- **Studio:** Add snap guide overlay, toolbar, grid, and target collection ([f8bf039a](https://github.com/heygen-com/hyperframes/commit/f8bf039a09dd0117ff70be4afc2260e331e26723), [#1228](https://github.com/heygen-com/hyperframes/pull/1228))
- **Studio:** Add stateless snap engine with alignment computation ([1863831a](https://github.com/heygen-com/hyperframes/commit/1863831a4dc0f4cc33cd7e73ea336233026c0a13), [#1227](https://github.com/heygen-com/hyperframes/pull/1227))
- **Studio:** Runtime-synced design panel + 3D props + split polish ([1bdb2d4e](https://github.com/heygen-com/hyperframes/commit/1bdb2d4ec0f18f1f196f912fd5d5ca118b47039e), [#1188](https://github.com/heygen-com/hyperframes/pull/1188))
- **Studio:** Runtime-first dynamic keyframe system [8/10] ([c1699ec9](https://github.com/heygen-com/hyperframes/commit/c1699ec98b6e3ff03438cfbd4109e3768427b965), [#1190](https://github.com/heygen-com/hyperframes/pull/1190))
- **Studio:** Split clip at playhead for media elements [7/10] ([d1aad77f](https://github.com/heygen-com/hyperframes/commit/d1aad77fd789968e682f4c78820b793703c5f6e3), [#1189](https://github.com/heygen-com/hyperframes/pull/1189))
- **Studio:** Design panel, timeline polish, feature flag [6/6] ([a5211954](https://github.com/heygen-com/hyperframes/commit/a5211954ea270cefc2edb260bab12b039e8ccf82), [#1172](https://github.com/heygen-com/hyperframes/pull/1172))
- **Studio:** Keyframe hooks wiring — session, cache, toolbar [5/6] ([7a088326](https://github.com/heygen-com/hyperframes/commit/7a0883264d697396d80f51352094a995ddaa378e), [#1171](https://github.com/heygen-com/hyperframes/pull/1171))
- **Studio:** Keyframe diamonds, navigation, context menu [4/6] ([5984c588](https://github.com/heygen-com/hyperframes/commit/5984c58846abd9c9068d67db1da8b119455dc6fc), [#1170](https://github.com/heygen-com/hyperframes/pull/1170))
- **Studio:** GSAP runtime bridge + optimistic updates [3/6] ([12e87e05](https://github.com/heygen-com/hyperframes/commit/12e87e05b464323e0148c7bfa7314f0a5d872e32), [#1169](https://github.com/heygen-com/hyperframes/pull/1169))
- **Core:** Spring physics solver + runtime fixes [2/6] ([aab73774](https://github.com/heygen-com/hyperframes/commit/aab737740030cf19a761689a94456bb86e2235bb), [#1168](https://github.com/heygen-com/hyperframes/pull/1168))
- **Core:** GSAP keyframe parsing, mutations, and API routes ([e639a163](https://github.com/heygen-com/hyperframes/commit/e639a1638fb157b71feb9470e87e3d972ce6894f), [#1167](https://github.com/heygen-com/hyperframes/pull/1167))

## Fixes

- **Producer:** Restore calibration timeout ceiling + add pipeline observability ([1d16216a](https://github.com/heygen-com/hyperframes/commit/1d16216a24a6163640ce5f5462cc6f4ff700f693), [#1233](https://github.com/heygen-com/hyperframes/pull/1233))
- **AWS Lambda:** Validate event S3 URIs against render bucket (F-004) ([65888840](https://github.com/heygen-com/hyperframes/commit/65888840fa748d80f56db717b11ac89ed94a2e9e), [#1213](https://github.com/heygen-com/hyperframes/pull/1213))
- **CLI:** Re-validate SSRF denylist on redirects + harden isPrivateUrl ([1f37920f](https://github.com/heygen-com/hyperframes/commit/1f37920fe15e6ab18d6a58ad7a9cec7937da7d24), [#1212](https://github.com/heygen-com/hyperframes/pull/1212))
- **Studio:** Fix PropertyPanel format and file size regression ([2c73fa9c](https://github.com/heygen-com/hyperframes/commit/2c73fa9c8fb61c3b8ea57b3a5b71c7fcd78da6c4), [#1229](https://github.com/heygen-com/hyperframes/pull/1229))
- **CLI:** Bind studio preview server to loopback by default ([1324de54](https://github.com/heygen-com/hyperframes/commit/1324de54a8ba79aa76944d79efa158f4289572ca), [#1210](https://github.com/heygen-com/hyperframes/pull/1210))
- **Runtime:** Make audio/media sync boundary inclusive to match visibility fix ([b6a14ea9](https://github.com/heygen-com/hyperframes/commit/b6a14ea9f5cc2d338cff76051c740ca8da4b37fa), [#1173](https://github.com/heygen-com/hyperframes/pull/1173))
- Add progress logging during silent render pipeline stages ([6bd1e764](https://github.com/heygen-com/hyperframes/commit/6bd1e764e55ab38a1f14d6ea19f47e019147eced), [#1220](https://github.com/heygen-com/hyperframes/pull/1220))
- Respect user timeouts on low-memory systems ([20894ab9](https://github.com/heygen-com/hyperframes/commit/20894ab9a3e293020b283b4c4f72833b729f8175), [#1221](https://github.com/heygen-com/hyperframes/pull/1221))

## Docs & Examples

- Add reap as HyperFrames adopter ([4b51cc64](https://github.com/heygen-com/hyperframes/commit/4b51cc646861cbdc00fd67856deb2993eb2eb874), [#876](https://github.com/heygen-com/hyperframes/pull/876))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.73...v0.6.76).
</Update>

<Update
  label="HyperFrames v0.6.74"
  description="Released - 2026-06-05"
  tags={["Release", "Studio", "CLI", "Runtime"]}
>
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](https://github.com/heygen-com/hyperframes/commit/4d968866551fe3a32b71688b7c69f3d1d9c66660), [#1224](https://github.com/heygen-com/hyperframes/pull/1224))
- **Studio:** Wire snap engine into preview drag and resize gestures ([0a965dc4](https://github.com/heygen-com/hyperframes/commit/0a965dc4ad51e03f867df481b99e39443993f8dd), [#1223](https://github.com/heygen-com/hyperframes/pull/1223))
- **Studio:** Add snap guide overlay, toolbar, grid, and target collection ([f8bf039a](https://github.com/heygen-com/hyperframes/commit/f8bf039a09dd0117ff70be4afc2260e331e26723), [#1228](https://github.com/heygen-com/hyperframes/pull/1228))
- **Studio:** Add stateless snap engine with alignment computation ([1863831a](https://github.com/heygen-com/hyperframes/commit/1863831a4dc0f4cc33cd7e73ea336233026c0a13), [#1227](https://github.com/heygen-com/hyperframes/pull/1227))
- **Studio:** Runtime-synced design panel + 3D props + split polish ([1bdb2d4e](https://github.com/heygen-com/hyperframes/commit/1bdb2d4ec0f18f1f196f912fd5d5ca118b47039e), [#1188](https://github.com/heygen-com/hyperframes/pull/1188))
- **Studio:** Runtime-first dynamic keyframe system [8/10] ([c1699ec9](https://github.com/heygen-com/hyperframes/commit/c1699ec98b6e3ff03438cfbd4109e3768427b965), [#1190](https://github.com/heygen-com/hyperframes/pull/1190))
- **Studio:** Split clip at playhead for media elements [7/10] ([d1aad77f](https://github.com/heygen-com/hyperframes/commit/d1aad77fd789968e682f4c78820b793703c5f6e3), [#1189](https://github.com/heygen-com/hyperframes/pull/1189))
- **Studio:** Design panel, timeline polish, feature flag [6/6] ([a5211954](https://github.com/heygen-com/hyperframes/commit/a5211954ea270cefc2edb260bab12b039e8ccf82), [#1172](https://github.com/heygen-com/hyperframes/pull/1172))
- **Studio:** Keyframe hooks wiring — session, cache, toolbar [5/6] ([7a088326](https://github.com/heygen-com/hyperframes/commit/7a0883264d697396d80f51352094a995ddaa378e), [#1171](https://github.com/heygen-com/hyperframes/pull/1171))
- **Studio:** Keyframe diamonds, navigation, context menu [4/6] ([5984c588](https://github.com/heygen-com/hyperframes/commit/5984c58846abd9c9068d67db1da8b119455dc6fc), [#1170](https://github.com/heygen-com/hyperframes/pull/1170))
- **Studio:** GSAP runtime bridge + optimistic updates [3/6] ([12e87e05](https://github.com/heygen-com/hyperframes/commit/12e87e05b464323e0148c7bfa7314f0a5d872e32), [#1169](https://github.com/heygen-com/hyperframes/pull/1169))
- **Core:** Spring physics solver + runtime fixes [2/6] ([aab73774](https://github.com/heygen-com/hyperframes/commit/aab737740030cf19a761689a94456bb86e2235bb), [#1168](https://github.com/heygen-com/hyperframes/pull/1168))
- **Core:** GSAP keyframe parsing, mutations, and API routes ([e639a163](https://github.com/heygen-com/hyperframes/commit/e639a1638fb157b71feb9470e87e3d972ce6894f), [#1167](https://github.com/heygen-com/hyperframes/pull/1167))
- **Docs:** Add weekly update drafts ([1abe69f3](https://github.com/heygen-com/hyperframes/commit/1abe69f3e479b41a804ee651e2874f31b150a4e8), [#1183](https://github.com/heygen-com/hyperframes/pull/1183))
- **Docs:** Add changelog release workflow ([248f6407](https://github.com/heygen-com/hyperframes/commit/248f64073464a74a01792cba70298508c8ea4a49), [#1164](https://github.com/heygen-com/hyperframes/pull/1164))

## Fixes

- **Studio:** Fix PropertyPanel format and file size regression ([2c73fa9c](https://github.com/heygen-com/hyperframes/commit/2c73fa9c8fb61c3b8ea57b3a5b71c7fcd78da6c4), [#1229](https://github.com/heygen-com/hyperframes/pull/1229))
- **CLI:** Bind studio preview server to loopback by default ([1324de54](https://github.com/heygen-com/hyperframes/commit/1324de54a8ba79aa76944d79efa158f4289572ca), [#1210](https://github.com/heygen-com/hyperframes/pull/1210))
- **Runtime:** Make audio/media sync boundary inclusive to match visibility fix ([b6a14ea9](https://github.com/heygen-com/hyperframes/commit/b6a14ea9f5cc2d338cff76051c740ca8da4b37fa), [#1173](https://github.com/heygen-com/hyperframes/pull/1173))
- Add progress logging during silent render pipeline stages ([6bd1e764](https://github.com/heygen-com/hyperframes/commit/6bd1e764e55ab38a1f14d6ea19f47e019147eced), [#1220](https://github.com/heygen-com/hyperframes/pull/1220))
- Respect user timeouts on low-memory systems ([20894ab9](https://github.com/heygen-com/hyperframes/commit/20894ab9a3e293020b283b4c4f72833b729f8175), [#1221](https://github.com/heygen-com/hyperframes/pull/1221))
- **Runtime:** Don't restart non-loop media that has naturally ended ([faa3f588](https://github.com/heygen-com/hyperframes/commit/faa3f588fbc37b3c1d55e3b3e96bbda39ab05ae9), [#1203](https://github.com/heygen-com/hyperframes/pull/1203))
- **CLI:** Report available memory instead of free memory in doctor ([96795031](https://github.com/heygen-com/hyperframes/commit/967950315876bfbdd792a152089c7de699acaef4), [#1204](https://github.com/heygen-com/hyperframes/pull/1204))
- **CLI:** Reject directory --composition and add --browser-timeout (#1199) ([6affe2d2](https://github.com/heygen-com/hyperframes/commit/6affe2d212296f81fc67cfd8aeaf7650a7a23ffe), [#1200](https://github.com/heygen-com/hyperframes/pull/1200))
- **Scripts:** Make release change-guard robust to git status prefix ([8228932e](https://github.com/heygen-com/hyperframes/commit/8228932e17e3371d5cf77ac5d5988f5322892dad), [#1198](https://github.com/heygen-com/hyperframes/pull/1198))
- **Producer:** Localize remote \<img\> sources + await image readiness ([72c461d8](https://github.com/heygen-com/hyperframes/commit/72c461d86a8d24a82d03267262d7cd7a9a373c1e), [#1197](https://github.com/heygen-com/hyperframes/pull/1197))
- **CLI:** Support arm64 hosts for `--docker` render ([2be41937](https://github.com/heygen-com/hyperframes/commit/2be41937a94bea6e3ebc9e253f26cfd5609b61df), [#1196](https://github.com/heygen-com/hyperframes/pull/1196))
- **Engine:** Fast-fail on zero duration instead of 45s timeout ([efb8d90f](https://github.com/heygen-com/hyperframes/commit/efb8d90f727885e141d2707e2567e539efeb334d), [#1186](https://github.com/heygen-com/hyperframes/pull/1186))
- **CLI:** Lazy-load @puppeteer/browsers to prevent debug package crash ([8c6faa45](https://github.com/heygen-com/hyperframes/commit/8c6faa45b5076d313d66962e818d26f10ba910f7), [#1185](https://github.com/heygen-com/hyperframes/pull/1185))
- **CLI:** Suppress EPIPE crashes in piped agent environments ([cabd0616](https://github.com/heygen-com/hyperframes/commit/cabd0616ea8c194988a1010ff4182a8b72cbe68e), [#1184](https://github.com/heygen-com/hyperframes/pull/1184))
- Delay ObjectURL revocation and silence TS5 baseUrl deprecations ([6de6ea53](https://github.com/heygen-com/hyperframes/commit/6de6ea53498ddebcfb4c242602dd5b8f75b5e846), [#1181](https://github.com/heygen-com/hyperframes/pull/1181))
- **Engine:** Add --autoplay-policy=no-user-gesture-required to headless Chrome args ([9e5adafd](https://github.com/heygen-com/hyperframes/commit/9e5adafd7af9fe7c1b25ca86eb8cabdf844ed2c5), [#1177](https://github.com/heygen-com/hyperframes/pull/1177))
- **Runtime:** Apply parent composition offset to WebAudio scheduling for sub-comp audio ([ac73cbbc](https://github.com/heygen-com/hyperframes/commit/ac73cbbcd0965d33b64e171272873579ae8adf9c), [#1175](https://github.com/heygen-com/hyperframes/pull/1175))
- **Runtime:** Show elements at exact end of their duration (inclusive boundary) ([b652c0a2](https://github.com/heygen-com/hyperframes/commit/b652c0a235ef32663f894b536116da0a90861b89), [#1166](https://github.com/heygen-com/hyperframes/pull/1166))
- **CLI:** Localize external assets in publish archive ([a4706da5](https://github.com/heygen-com/hyperframes/commit/a4706da513a1509d097f8179d04d995f038469b3), [#1160](https://github.com/heygen-com/hyperframes/pull/1160))

## Docs & Examples

- Add reap as HyperFrames adopter ([4b51cc64](https://github.com/heygen-com/hyperframes/commit/4b51cc646861cbdc00fd67856deb2993eb2eb874), [#876](https://github.com/heygen-com/hyperframes/pull/876))
- **README:** Add Frame.md design template gallery ([1a617d30](https://github.com/heygen-com/hyperframes/commit/1a617d30ff07d6b4e2dc7236b373ebe50874dfec), [#1182](https://github.com/heygen-com/hyperframes/pull/1182))
- **Skills:** Prefer frame.md over design.md for video specs ([fcff442a](https://github.com/heygen-com/hyperframes/commit/fcff442ab741b1176f619807c61701367836ad04), [#1180](https://github.com/heygen-com/hyperframes/pull/1180))

## Catalog

- **Registry:** Add 14 missing blocks to registry manifest ([d8ed343d](https://github.com/heygen-com/hyperframes/commit/d8ed343d71cb088b7ad6ebdbeb3f08cf0be70260), [#1163](https://github.com/heygen-com/hyperframes/pull/1163))
- **Registry:** Add Apple Terminal blocks to registry manifest ([e9949d76](https://github.com/heygen-com/hyperframes/commit/e9949d76ec8f35ffe6131a2ac2b09056abcdbf1e), [#1162](https://github.com/heygen-com/hyperframes/pull/1162))
- **Registry:** Add Apple Terminal theme code snippet blocks ([689deaf4](https://github.com/heygen-com/hyperframes/commit/689deaf4b82d40fd8c3010c014517f8627281e38), [#1161](https://github.com/heygen-com/hyperframes/pull/1161))

## Internal

- **CLI:** Cover the cloud client 401-refresh-retry decorator ([0870394d](https://github.com/heygen-com/hyperframes/commit/0870394d20cf6dcd2af7c3b7c3ab6a1f30ddebf9), [#1202](https://github.com/heygen-com/hyperframes/pull/1202))
- **Producer:** Regenerate stale style-7-prod baseline in Docker ([1aa651bd](https://github.com/heygen-com/hyperframes/commit/1aa651bd1ecc130f4e35498f41ca9cedbed55527), [#1178](https://github.com/heygen-com/hyperframes/pull/1178))
- Add release prepare command ([17b0db1d](https://github.com/heygen-com/hyperframes/commit/17b0db1d3e29428c46767c38402ca96eac406cac), [#1165](https://github.com/heygen-com/hyperframes/pull/1165))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.69...v0.6.74).
</Update>

<Update
  label="HyperFrames v0.6.73"
  description="Released - 2026-06-04"
  tags={["Release", "Runtime", "CLI", "Scripts"]}
>
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](https://github.com/heygen-com/hyperframes/commit/faa3f588fbc37b3c1d55e3b3e96bbda39ab05ae9), [#1203](https://github.com/heygen-com/hyperframes/pull/1203))
- **CLI:** Report available memory instead of free memory in doctor ([96795031](https://github.com/heygen-com/hyperframes/commit/967950315876bfbdd792a152089c7de699acaef4), [#1204](https://github.com/heygen-com/hyperframes/pull/1204))
- **CLI:** Reject directory --composition and add --browser-timeout (#1199) ([6affe2d2](https://github.com/heygen-com/hyperframes/commit/6affe2d212296f81fc67cfd8aeaf7650a7a23ffe), [#1200](https://github.com/heygen-com/hyperframes/pull/1200))
- **Scripts:** Make release change-guard robust to git status prefix ([8228932e](https://github.com/heygen-com/hyperframes/commit/8228932e17e3371d5cf77ac5d5988f5322892dad), [#1198](https://github.com/heygen-com/hyperframes/pull/1198))
- **Producer:** Localize remote \<img\> sources + await image readiness ([72c461d8](https://github.com/heygen-com/hyperframes/commit/72c461d86a8d24a82d03267262d7cd7a9a373c1e), [#1197](https://github.com/heygen-com/hyperframes/pull/1197))
- **CLI:** Support arm64 hosts for `--docker` render ([2be41937](https://github.com/heygen-com/hyperframes/commit/2be41937a94bea6e3ebc9e253f26cfd5609b61df), [#1196](https://github.com/heygen-com/hyperframes/pull/1196))

## Internal

- **CLI:** Cover the cloud client 401-refresh-retry decorator ([0870394d](https://github.com/heygen-com/hyperframes/commit/0870394d20cf6dcd2af7c3b7c3ab6a1f30ddebf9), [#1202](https://github.com/heygen-com/hyperframes/pull/1202))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.72...v0.6.73).
</Update>

<Update
  label="HyperFrames v0.6.72"
  description="Released - 2026-06-04"
  tags={["Release", "Producer", "CLI"]}
>
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](https://github.com/heygen-com/hyperframes/commit/72c461d86a8d24a82d03267262d7cd7a9a373c1e), [#1197](https://github.com/heygen-com/hyperframes/pull/1197))
- **CLI:** Support arm64 hosts for `--docker` render ([2be41937](https://github.com/heygen-com/hyperframes/commit/2be41937a94bea6e3ebc9e253f26cfd5609b61df), [#1196](https://github.com/heygen-com/hyperframes/pull/1196))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.71...v0.6.72).
</Update>

<Update
  label="HyperFrames v0.6.71"
  description="Released - 2026-06-04"
  tags={["Release", "Engine", "CLI", "Docs"]}
>
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

- **Docs:** Add weekly update drafts ([1abe69f3](https://github.com/heygen-com/hyperframes/commit/1abe69f3e479b41a804ee651e2874f31b150a4e8), [#1183](https://github.com/heygen-com/hyperframes/pull/1183))

## Fixes

- **Engine:** Fast-fail on zero duration instead of 45s timeout ([efb8d90f](https://github.com/heygen-com/hyperframes/commit/efb8d90f727885e141d2707e2567e539efeb334d), [#1186](https://github.com/heygen-com/hyperframes/pull/1186))
- **CLI:** Lazy-load @puppeteer/browsers to prevent debug package crash ([8c6faa45](https://github.com/heygen-com/hyperframes/commit/8c6faa45b5076d313d66962e818d26f10ba910f7), [#1185](https://github.com/heygen-com/hyperframes/pull/1185))
- **CLI:** Suppress EPIPE crashes in piped agent environments ([cabd0616](https://github.com/heygen-com/hyperframes/commit/cabd0616ea8c194988a1010ff4182a8b72cbe68e), [#1184](https://github.com/heygen-com/hyperframes/pull/1184))
- Delay ObjectURL revocation and silence TS5 baseUrl deprecations ([6de6ea53](https://github.com/heygen-com/hyperframes/commit/6de6ea53498ddebcfb4c242602dd5b8f75b5e846), [#1181](https://github.com/heygen-com/hyperframes/pull/1181))

## Docs & Examples

- **README:** Add Frame.md design template gallery ([1a617d30](https://github.com/heygen-com/hyperframes/commit/1a617d30ff07d6b4e2dc7236b373ebe50874dfec), [#1182](https://github.com/heygen-com/hyperframes/pull/1182))
- **Skills:** Prefer frame.md over design.md for video specs ([fcff442a](https://github.com/heygen-com/hyperframes/commit/fcff442ab741b1176f619807c61701367836ad04), [#1180](https://github.com/heygen-com/hyperframes/pull/1180))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.70...v0.6.71).
</Update>

<Update
  label="HyperFrames v0.6.70"
  description="Released - 2026-06-03"
  tags={["Release", "Producer", "Engine", "Runtime"]}
>
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](https://github.com/heygen-com/hyperframes/commit/248f64073464a74a01792cba70298508c8ea4a49), [#1164](https://github.com/heygen-com/hyperframes/pull/1164))
- **CLI:** Validate cloud render aspect/composition/format before upload ([42ad3050](https://github.com/heygen-com/hyperframes/commit/42ad305073c710d8614374f418eb713dc4cb91d6), [#1156](https://github.com/heygen-com/hyperframes/pull/1156))

## Fixes

- **Engine:** Add --autoplay-policy=no-user-gesture-required to headless Chrome args ([9e5adafd](https://github.com/heygen-com/hyperframes/commit/9e5adafd7af9fe7c1b25ca86eb8cabdf844ed2c5), [#1177](https://github.com/heygen-com/hyperframes/pull/1177))
- **Runtime:** Apply parent composition offset to WebAudio scheduling for sub-comp audio ([ac73cbbc](https://github.com/heygen-com/hyperframes/commit/ac73cbbcd0965d33b64e171272873579ae8adf9c), [#1175](https://github.com/heygen-com/hyperframes/pull/1175))
- **Runtime:** Show elements at exact end of their duration (inclusive boundary) ([b652c0a2](https://github.com/heygen-com/hyperframes/commit/b652c0a235ef32663f894b536116da0a90861b89), [#1166](https://github.com/heygen-com/hyperframes/pull/1166))
- **CLI:** Localize external assets in publish archive ([a4706da5](https://github.com/heygen-com/hyperframes/commit/a4706da513a1509d097f8179d04d995f038469b3), [#1160](https://github.com/heygen-com/hyperframes/pull/1160))
- **Producer:** Localize remote @font-face src URLs before render ([b1b03782](https://github.com/heygen-com/hyperframes/commit/b1b03782a1364f160b5504d46ad36cef277cca91), [#1155](https://github.com/heygen-com/hyperframes/pull/1155))
- **Core:** Emit mediaVolumeEnvelope in tsc lib output ([e7c874cc](https://github.com/heygen-com/hyperframes/commit/e7c874ccb3f733514afbff27dd776dae46073244), [#1159](https://github.com/heygen-com/hyperframes/pull/1159))
- **Producer:** Honor variables + outputResolution in HTTP render server ([8b6d35e2](https://github.com/heygen-com/hyperframes/commit/8b6d35e2267ddc43fc33e7478ac741ebcdfabfb4), [#1152](https://github.com/heygen-com/hyperframes/pull/1152))
- **CLI:** Mock findFFmpeg in render tests for CI without ffmpeg ([a01a266e](https://github.com/heygen-com/hyperframes/commit/a01a266efa871b687725573c3eea8857d01e5a4d), [#1154](https://github.com/heygen-com/hyperframes/pull/1154))

## Catalog

- **Registry:** Add 14 missing blocks to registry manifest ([d8ed343d](https://github.com/heygen-com/hyperframes/commit/d8ed343d71cb088b7ad6ebdbeb3f08cf0be70260), [#1163](https://github.com/heygen-com/hyperframes/pull/1163))
- **Registry:** Add Apple Terminal blocks to registry manifest ([e9949d76](https://github.com/heygen-com/hyperframes/commit/e9949d76ec8f35ffe6131a2ac2b09056abcdbf1e), [#1162](https://github.com/heygen-com/hyperframes/pull/1162))
- **Registry:** Add Apple Terminal theme code snippet blocks ([689deaf4](https://github.com/heygen-com/hyperframes/commit/689deaf4b82d40fd8c3010c014517f8627281e38), [#1161](https://github.com/heygen-com/hyperframes/pull/1161))

## Internal

- **Producer:** Regenerate stale style-7-prod baseline in Docker ([1aa651bd](https://github.com/heygen-com/hyperframes/commit/1aa651bd1ecc130f4e35498f41ca9cedbed55527), [#1178](https://github.com/heygen-com/hyperframes/pull/1178))
- Add release prepare command ([17b0db1d](https://github.com/heygen-com/hyperframes/commit/17b0db1d3e29428c46767c38402ca96eac406cac), [#1165](https://github.com/heygen-com/hyperframes/pull/1165))

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.66...v0.6.70).
</Update>

<Update
  label="HyperFrames v0.6.52"
  description="Released - 2026-05-27"
  tags={["Release", "Studio", "Producer", "Core"]}
>
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.

[View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.6.51...v0.6.52).
</Update>
