--- 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 --write`. */} Publishing now retries brief network failures during upload and tells you which step failed when it cannot recover. Long timeouts are not retried, and signed upload secrets stay out of error messages. ## Fixes - **CLI:** Harden publish retry behavior ([dd629697d](https://github.com/heygen-com/hyperframes/commit/dd629697d3356971e50132703b8a897c1a79bfdf)). - **CLI:** Recover transient publish failures ([f2d6ce324](https://github.com/heygen-com/hyperframes/commit/f2d6ce32459fc4c6be604a152e8707df03ce96e2)). [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.98...v0.7.99). Failed renders now record whether the parallel drawElement router was active. That state was on almost every successful render and almost no failed one, so a crash or hang looked the same as a render that never used the router. Nothing changes about how renders run. ## Fixes - **Producer:** Record routing state on the failure path ([a3d13e267](https://github.com/heygen-com/hyperframes/commit/a3d13e2673405dee68643003574d5b260c4d5d18)). [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.97...v0.7.98). Studio resizes now keep animated elements exactly where they were dropped. The saved GSAP scale and position match the frame shown during the gesture, preventing post-drop jumps. ## Fixes - **Studio:** Keep first, repeated, rotated, uniform, and per-axis animated resizes pinned to their drop point ([#3076](https://github.com/heygen-com/hyperframes/pull/3076)). - **Studio:** Measure stylesheet-sized and legacy elements from their real box instead of a 200px fallback ([#3076](https://github.com/heygen-com/hyperframes/pull/3076)). [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.96...v0.7.97). Canary rollouts now record why each install landed in or out of a cohort, on both the CLI and Studio. Before this, a forced override and an ordinary cohort roll looked identical, so cohort changes could not be explained. Telemetry events also say whether an install's anonymous id will survive to the next run. For everyday use the visible changes are a Studio fix for rooted timeline media in preview, cancelable thumbnail generation, and a large pass over the docs examples. ## Features - **Studio:** Emit the canary reason on Studio events too ([b3990ac78](https://github.com/heygen-com/hyperframes/commit/b3990ac789a40242b38eb740475811a03e701b2b)). - **Core,cli:** Emit the canary decision reason alongside the assignment ([076657a63](https://github.com/heygen-com/hyperframes/commit/076657a63994a911deba65cd4d54131d5997e1d1)). - **CLI:** Classify identity persistence on every telemetry event ([3b65321a2](https://github.com/heygen-com/hyperframes/commit/3b65321a204383582e3794ac19eca5d6f5eb3474), [#3065](https://github.com/heygen-com/hyperframes/pull/3065)). ## Fixes - **Studio:** Route rooted timeline media through preview ([88853f170](https://github.com/heygen-com/hyperframes/commit/88853f170f9ab6c7bfa515d59694d1f995ac0e7d), [#3061](https://github.com/heygen-com/hyperframes/pull/3061)). - **Scripts:** Import the changelog style note instead of duplicating it ([8cadefa5d](https://github.com/heygen-com/hyperframes/commit/8cadefa5d8d0f558863e35327b6059aeef76523c)). - **Scripts:** Restore the texture instruction phrase a core test pins ([ddbd547fa](https://github.com/heygen-com/hyperframes/commit/ddbd547fad33042c10172b4e3607ed0b12fd7a06)). - **Scripts:** The repo already knew which items have no poster ([74ba97b7e](https://github.com/heygen-com/hyperframes/commit/74ba97b7edcc6ed2166fe00ee280c8c05ff718fc)). - **Scripts:** Actually commit the delivery encode ([4f1ace9f4](https://github.com/heygen-com/hyperframes/commit/4f1ace9f476fe10e9b6da2a9e9bae0332f5ead1a)). - **Docs:** Stop claiming a poster image that was never generated ([a6217f5ed](https://github.com/heygen-com/hyperframes/commit/a6217f5ed145b28e80ecfb5744fd7d3537f1335e)). ## Performance - **Studio Server:** Coordinate cancelable thumbnail generation ([96861cbaf](https://github.com/heygen-com/hyperframes/commit/96861cbafc33e9e7b853b31c56610d50599cb96b), [#2720](https://github.com/heygen-com/hyperframes/pull/2720)). ## Docs & Examples - Add user interview booking links ([27d113e56](https://github.com/heygen-com/hyperframes/commit/27d113e56c8ebb52a805e73308ffbfe313f8cc32), [#3059](https://github.com/heygen-com/hyperframes/pull/3059)). - Correct composition offset rationale; pin nav fix; label-in-name ([fed2baf27](https://github.com/heygen-com/hyperframes/commit/fed2baf27882cda0e19ae0e972f7335a162c36eb)). - **Examples:** Stop the sound control from following the card's link ([83db94e75](https://github.com/heygen-com/hyperframes/commit/83db94e75e87271c86f8823e636b729c500cbac9)). - **Examples:** Reset control state on offscreen release; precise a11y labels ([f3d1d531d](https://github.com/heygen-com/hyperframes/commit/f3d1d531d138d69e7d347391e5f7a4b35fb599a3)). - Complete the media-start layer map + fix the third page ([c49fea2e0](https://github.com/heygen-com/hyperframes/commit/c49fea2e0c4caaa7c4329493cdd5112581addc06)). - **Examples:** Reduced-motion play starts both films; precise media-start layers ([630c8900f](https://github.com/heygen-com/hyperframes/commit/630c8900f5866d5cd51eb3da96293981e41fc971)). - **Studio:** Note the third arrow-key meaning after merging Timeline navigation ([b541245f1](https://github.com/heygen-com/hyperframes/commit/b541245f1a49b1c784797050c7ae81040115d946)). - **Examples:** Allow voluntary playback under reduced motion; a11y parity ([c9fd7465c](https://github.com/heygen-com/hyperframes/commit/c9fd7465c9b9d516b53241fee1f8ca78d18ba905)). - **Sdk:** Fix dispatch/can contract, second stale GSAP site, media-start layers ([8e658bd6c](https://github.com/heygen-com/hyperframes/commit/8e658bd6c932ee1b8c65f247f9767d75fbd56275)). - **Examples:** Intersection-gate the recreate pair too ([aa077e000](https://github.com/heygen-com/hyperframes/commit/aa077e000df94db2348fa6d744909a67706b09e1)). - **Examples:** Make hover-audio accessible, lazy-loaded, and guard-complete ([0467bc812](https://github.com/heygen-com/hyperframes/commit/0467bc812916259a53a3f08eb30fb8a35586ee19)). - Correct three source-contradiction findings from review ([0f6259d46](https://github.com/heygen-com/hyperframes/commit/0f6259d461cfb678d60ae7926d343fbe44aee925)). - **Theme:** Brand the Playground CTA + align the navbar logo ([b62c3fd65](https://github.com/heygen-com/hyperframes/commit/b62c3fd65617cb1d89c828e1f7460893d34a3216)). - **Nav:** Lift 30 Days above the update feeds in Explore ([c53c7efd1](https://github.com/heygen-com/hyperframes/commit/c53c7efd1ec1070251ecf1a25643f96d5b96e7a7)). - **Examples:** Fix silent recreate references (stale keys -\> new audio keys) ([4b1a526fa](https://github.com/heygen-com/hyperframes/commit/4b1a526facb128b98a33a2c8878761320bfea529)). - **Examples:** K3 promo now hover-to-hear with its audio version from X ([821189586](https://github.com/heygen-com/hyperframes/commit/821189586f19da6a67472ddfb952a63f0f1afc85)). - **Examples:** Replace two padded launch films + wire figma audio ([630c6c880](https://github.com/heygen-com/hyperframes/commit/630c6c880ddf164ca3dbad0a6979b0d943ec2691)). - **Examples:** More hover-audio + a 'Where HyperFrames plugs in' strip ([59a2ee31c](https://github.com/heygen-com/hyperframes/commit/59a2ee31c93818ce06c8575af4043948f0404a34)). - **Examples:** Hover-audio on six more grid films from the X launch archive ([e6bc8f139](https://github.com/heygen-com/hyperframes/commit/e6bc8f139c032d202d94fe2b4837b2e1b0f45ff8)). - **Examples:** Hover-to-hear on the four launch films that have audio masters ([fb6a82c50](https://github.com/heygen-com/hyperframes/commit/fb6a82c5052d5c801ecd6ec52d1ceadf4757e6a9)). - **30 Days:** Hover a card to hear the film's audio ([5361b9e10](https://github.com/heygen-com/hyperframes/commit/5361b9e10c80c787527ffa25a0db01002ddebbf0)). - **Examples:** Drop three dead source links (no such launch folder) ([8298bd439](https://github.com/heygen-com/hyperframes/commit/8298bd439092f67badef626987f385bb020a61dc)). - **Examples:** Bind reference video muted to state so unmute sticks ([407a5fd51](https://github.com/heygen-com/hyperframes/commit/407a5fd5139cda1dc10aae21aa52f6bc69c1e502)). - **Examples:** Sync the recreate pairs with a tap-to-unmute button ([bde03484a](https://github.com/heygen-com/hyperframes/commit/bde03484ae46345d4f10051a6db7155073e1eb76)). - **Examples:** Add 1:1 recreate-any-video comparison block ([98ae45e06](https://github.com/heygen-com/hyperframes/commit/98ae45e0661f120cedb8bda2d6002224db146924)). - 30 Days shows all thirty films, the real ones ([a46bc9d56](https://github.com/heygen-com/hyperframes/commit/a46bc9d565de76ad6e6dc5d35c6a9ff7d1e5cf76)). - Remove the Reference Project — nobody wants to be sent to GitHub ([b5509602f](https://github.com/heygen-com/hyperframes/commit/b5509602fa9f8ad9944c79b9f73f3a440357ecbf)). - 30 Days keeps its structure but borrows no videos ([06d2d6f24](https://github.com/heygen-com/hyperframes/commit/06d2d6f24c31b094198e4cd630d1f34c5df5dd2e)). - Examples shows 19 launch films grouped by what they prove, and 30 Days moves into Explore ([8483b51d4](https://github.com/heygen-com/hyperframes/commit/8483b51d4b7111710b8ac98befbd3c9ca07432cd)). - Light-theme videos on nine guides, plus two rewritten pages ([ad4c6a9b6](https://github.com/heygen-com/hyperframes/commit/ad4c6a9b6e0781e4253507ec4a179b83b3faee9b)). - Put the ten workflows in one place, and connect the two tracks ([f742084fa](https://github.com/heygen-com/hyperframes/commit/f742084fa85c1e2be1c0711c4467c48d4cd6f214)). - Name the two workflows the captions page covers ([c66961637](https://github.com/heygen-com/hyperframes/commit/c669616370db90f63ef4828e53db8a34e760406b)). - The examples gallery now tells you what it is ([18c0b8319](https://github.com/heygen-com/hyperframes/commit/18c0b8319d657d6b7578c6a34b8c183b5ff1865e)). - E_NO_GSAP_TIMELINE is not a missing feature ([d3331aad2](https://github.com/heygen-com/hyperframes/commit/d3331aad28ccb1f3ace49227e06d844e0c4ee58d)). - An Inspector map that matches the Inspector, and an example that can run ([9a659053d](https://github.com/heygen-com/hyperframes/commit/9a659053db3a3da95a4eece58f15e871ce9dc9d8)). - Four more the source contradicts, one of them mine ([af5ebf09c](https://github.com/heygen-com/hyperframes/commit/af5ebf09ce8bd15991da51bf83a9fe852e8dca29)). - Three things the source contradicts, found by reading the pages ([d01253771](https://github.com/heygen-com/hyperframes/commit/d01253771fa7f3eac4fa9126c7bedb9911e0be30)). - A compare example that works, and prose instead of a semicolon list ([1a22d6542](https://github.com/heygen-com/hyperframes/commit/1a22d6542a9a1492882cd11943b68e4a29522407)). - Three Studio shortcuts the page never mentioned ([f28b6d2bf](https://github.com/heygen-com/hyperframes/commit/f28b6d2bf73490cae7dd0403682064169951af5a)). - Write down the house narrator, and stop the videos sounding like two products ([bb7b0c899](https://github.com/heygen-com/hyperframes/commit/bb7b0c899f91bcfd1b4f36378bc750aa74e95976)). - Put the slideshow demo on the slideshow page ([199885b85](https://github.com/heygen-com/hyperframes/commit/199885b85edea981a3ce132fd09e3bcaac7ff316)). - Six pages get a real film instead of a six-second clip ([b4648e0e5](https://github.com/heygen-com/hyperframes/commit/b4648e0e5a45734970e3e905efcac4cf76d51057)). - Make the ten hardest-reading prompting pages readable ([8dba394d4](https://github.com/heygen-com/hyperframes/commit/8dba394d4dd52678cd49b68a3ec8fd8a921a1d6d)). - Stop serving render masters as if they were deliverables ([158d0fea1](https://github.com/heygen-com/hyperframes/commit/158d0fea1fa8e267f9e77aafc1f359ae37781beb)). - Draw the project model instead of describing it twice ([31366d724](https://github.com/heygen-com/hyperframes/commit/31366d724d83ff855c1a02edb2c37ff441a3648c)). - The last five blind guides now show the thing ([f595a7d68](https://github.com/heygen-com/hyperframes/commit/f595a7d68388c2e8842d3b8f5346273d0f9450b7)). - Move 19 anchor links onto the headings that now exist ([d16f6e69d](https://github.com/heygen-com/hyperframes/commit/d16f6e69d72c8582fac9577f57aaad158596b1e1)). - Make the two hardest-reading pages readable, and draw the two core concepts ([eb199bd15](https://github.com/heygen-com/hyperframes/commit/eb199bd1595f7774a16fb7baea12510a8d8a02d6)). - Four more guides show the thing instead of describing it ([8762887a5](https://github.com/heygen-com/hyperframes/commit/8762887a5b3773f460fa61e017d870f68f5d540a)). - Point two prompting links at headings that exist ([951c6ea45](https://github.com/heygen-com/hyperframes/commit/951c6ea45c1eddc377a40542a84acd40d1f472ef)). - Give every click-to-play video an audio track ([60f09dfcf](https://github.com/heygen-com/hyperframes/commit/60f09dfcfd3f8b18ac51e9d26f34e614969477e8)). - Keep the audio on the Huly launch film ([61cd3f1da](https://github.com/heygen-com/hyperframes/commit/61cd3f1da2afd8b59ee1a729c6653513a70e73bf)). - Show GSAP keyframes moving, and drop the weakest video on Examples ([ef9980948](https://github.com/heygen-com/hyperframes/commit/ef9980948206fa6c13f7c0c55e00f3f906c42a9f)). - Rewrite four pages that told instead of showed ([72d4016f5](https://github.com/heygen-com/hyperframes/commit/72d4016f5f25fb71c856f0d6fd9e52e91686c83a)). - Show the work on Media effects, Product launch, and Examples ([84b5160b6](https://github.com/heygen-com/hyperframes/commit/84b5160b663c8bf758c4134fdffceba4982ae374)). ## Catalog - **Catalog:** Explicit section ownership, no body-sniffing heuristic ([d373c3f4a](https://github.com/heygen-com/hyperframes/commit/d373c3f4a09f59b349586c0885be47388844a658)). - **Catalog:** Restore the required Related topics section on generated pages ([6ff6601dd](https://github.com/heygen-com/hyperframes/commit/6ff6601dd03026f55be3d974222ac5c4ff890a8e)). - Quiet fallow complexity on the catalog generator's grown functions ([b33974cf7](https://github.com/heygen-com/hyperframes/commit/b33974cf72270fded5b9caf2244f26acf6b3c7e6)). - **Scripts:** Drop the catalog poster instead of guarding it, and cut the encode pass down ([592301248](https://github.com/heygen-com/hyperframes/commit/592301248ea93336189aa723b0b24971f7173ae0)). - **Docs:** The poster guard again, for the catalog index this time ([663f3e832](https://github.com/heygen-com/hyperframes/commit/663f3e8325c192324520113fa1819b3e1fcdd07a)). - Rebuild the catalog generator, and show what background removal and HDR do ([2a7d9bd0a](https://github.com/heygen-com/hyperframes/commit/2a7d9bd0ad114a7aadf65f1f65b8556f8da6d61d)). ## Internal - Regenerate skills manifest after the media-use voice rule ([00a4f454e](https://github.com/heygen-com/hyperframes/commit/00a4f454ee75d4c434ee034f6dc62e5e924783fb)). ## Other Changes - **Scripts:** Oxfmt the nav-suppression assertion ([aa928f399](https://github.com/heygen-com/hyperframes/commit/aa928f399a571fa9b61c67a931db4a97dfb1875d)). - Format the house-narrator note in tts.md, resync manifest ([08fadcef4](https://github.com/heygen-com/hyperframes/commit/08fadcef41d1128ed2493978ea665874306f60c6)). - Format changelog-weekly.ts ([fffc56c33](https://github.com/heygen-com/hyperframes/commit/fffc56c33b96c0fa9e3db15cb0f4799d0cbd6e5b)). [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.94...v0.7.96). Studio now previews rooted timeline media through the correct asset route, preventing missing clips in nested project layouts. Thumbnail work is cancelable under rapid edits, while refreshed docs make key workflows easier to learn. ## Fixes - **Studio:** Route rooted timeline media through preview ([88853f170](https://github.com/heygen-com/hyperframes/commit/88853f170f9ab6c7bfa515d59694d1f995ac0e7d), [#3061](https://github.com/heygen-com/hyperframes/pull/3061)). ## Performance - **Studio Server:** Coordinate cancelable thumbnail generation ([96861cbaf](https://github.com/heygen-com/hyperframes/commit/96861cbafc33e9e7b853b31c56610d50599cb96b), [#2720](https://github.com/heygen-com/hyperframes/pull/2720)). ## Docs & Examples - Rebuild the docs and catalog with real films, accessible playback, clearer workflow maps, and source-checked SDK guidance ([b793e42ef](https://github.com/heygen-com/hyperframes/commit/b793e42efdf6d674f98da0a63fcc80947ba1751b), [#3010](https://github.com/heygen-com/hyperframes/pull/3010)). - Add user interview booking links ([27d113e56](https://github.com/heygen-com/hyperframes/commit/27d113e56c8ebb52a805e73308ffbfe313f8cc32), [#3059](https://github.com/heygen-com/hyperframes/pull/3059)). ## Internal - **CLI:** Classify identity persistence on every telemetry event ([3b65321a2](https://github.com/heygen-com/hyperframes/commit/3b65321a204383582e3794ac19eca5d6f5eb3474), [#3065](https://github.com/heygen-com/hyperframes/pull/3065)). [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.94...v0.7.95). The CLI now supports explicit RFC 8628 device authorization for attended SSH and remote-terminal sessions, so users can sign in without copying API keys or exposing a loopback callback. The flow is fail-closed, validates minted tokens before atomic persistence, and leaves the existing browser login unchanged. ## Features - **CLI:** Add device authorization login ([b9233525b](https://github.com/heygen-com/hyperframes/commit/b9233525b2e02ec9329445ab2602ebd557033daf), [#2836](https://github.com/heygen-com/hyperframes/pull/2836)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.93...v0.7.94). Studio now preserves and recovers external file edits instead of silently overwriting them, while logical timeline navigation makes keyboard control more predictable. The engine and producer also harden remote downloads, ffprobe invocation, telemetry path redaction, GPU verification, and cross-frame-rate BeginFrame timing. ## Features - **Studio:** Model logical timeline navigation ([0f1333c80](https://github.com/heygen-com/hyperframes/commit/0f1333c80d3c18eddf8af69110168cc910d14fec), [#2712](https://github.com/heygen-com/hyperframes/pull/2712)) - **Studio:** Add external conflict recovery UI ([8a0dccfc7](https://github.com/heygen-com/hyperframes/commit/8a0dccfc72224d993efdb0ae8d95fc0e020327d4), [#2992](https://github.com/heygen-com/hyperframes/pull/2992)) - **Studio:** Coordinate external file changes ([a99caad58](https://github.com/heygen-com/hyperframes/commit/a99caad581496f2ad8e132b750ced73be8cf3e51), [#2991](https://github.com/heygen-com/hyperframes/pull/2991)) - **Studio:** Preserve external file conflicts ([b30a23402](https://github.com/heygen-com/hyperframes/commit/b30a23402e2db19b43cb0283e1553048746fb8bb), [#2990](https://github.com/heygen-com/hyperframes/pull/2990)) ## Fixes - **Engine:** Keep BeginFrame time monotonic across frame rates ([b390b71bd](https://github.com/heygen-com/hyperframes/commit/b390b71bde982ffbf55c9ec93f1491d99011bfc3), [#3011](https://github.com/heygen-com/hyperframes/pull/3011)) - **Engine:** Validate remote download integrity ([bbdfee116](https://github.com/heygen-com/hyperframes/commit/bbdfee1166c45e348ef76d2e384a0ad2243ac847), [#2938](https://github.com/heygen-com/hyperframes/pull/2938)) - **Studio:** Reconcile external edits before reload ([ebdd1893c](https://github.com/heygen-com/hyperframes/commit/ebdd1893c4a0d86b984fb627fed0283a981d2713), [#2993](https://github.com/heygen-com/hyperframes/pull/2993)) - **Studio:** Drain pending edits before reload ([471313854](https://github.com/heygen-com/hyperframes/commit/47131385445c0f8ee4203f8d6ff4f5600d8c8b2e), [#2989](https://github.com/heygen-com/hyperframes/pull/2989)) - **Studio:** Make inspector commits transactional ([552419c52](https://github.com/heygen-com/hyperframes/commit/552419c52d16fa5a5e8d15a9263bc5f41e596360), [#2987](https://github.com/heygen-com/hyperframes/pull/2987)) - **Engine:** Distinguish probe failure from a genuinely absent GPU ([f69c4a0e3](https://github.com/heygen-com/hyperframes/commit/f69c4a0e3aa8feb1110b52d538f8ca127481c95d)) - **Studio:** Respect GSAP transform ownership ([cf45c9845](https://github.com/heygen-com/hyperframes/commit/cf45c984549bc41ed4debc99d5283d2a60108cbb), [#2986](https://github.com/heygen-com/hyperframes/pull/2986)) - **Parsers:** Preserve safe GSAP helper defaults ([532f06158](https://github.com/heygen-com/hyperframes/commit/532f06158b3a930b85a289ab0608d720311cd5a1), [#2985](https://github.com/heygen-com/hyperframes/pull/2985)) - **Engine:** Warn once per process about unverified hardware GPU ([6703ea7e0](https://github.com/heygen-com/hyperframes/commit/6703ea7e04701b490c5fb563db4f532fbc8aec89)) - **Engine:** Verify explicit browserGpuMode=hardware instead of trusting it ([131780fe9](https://github.com/heygen-com/hyperframes/commit/131780fe9627ee7fb17cb871ef6a144a6ef02735)) - **Core,producer,skills:** Unicode paths, non-Error rejections, shell callers ([1664fe6ad](https://github.com/heygen-com/hyperframes/commit/1664fe6ad773c76e0dc7314e7f2eb439cd3687d6)) - **Producer:** Drop the ReDoS-prone literal-argv regex for a linear scan ([6c5403f7c](https://github.com/heygen-com/hyperframes/commit/6c5403f7cd5e5b21f301b88d6d9f84451751ba15)) - **Skills,producer:** Terminate ffprobe options in shipped skill scripts ([255cf9291](https://github.com/heygen-com/hyperframes/commit/255cf929150977fa57dc1cadde2e9cf626f5c20c)) - **Core,producer:** Redact bare relative paths and the known input path ([e79ab3ab3](https://github.com/heygen-com/hyperframes/commit/e79ab3ab31a5f789f8c998430f2b58cb95973f07)) - **Core:** Redact any path in telemetry, not an allowlist of roots ([d04569e37](https://github.com/heygen-com/hyperframes/commit/d04569e37f1c63967ce7373557ded4e4f150e7de)) - **Producer,studio Server:** Finish the ffprobe argv sweep, pin the contract ([d0dbf11ef](https://github.com/heygen-com/hyperframes/commit/d0dbf11ef53dd7ca535ed40a10e8f2dad4f12c4d)) - **Cli,core,lint,producer:** Terminate ffprobe options at every call site ([47564ab94](https://github.com/heygen-com/hyperframes/commit/47564ab94cc4bac5de6715169939353c211af689)) ## Docs & Examples - **Studio:** Document timeline keyboard navigation ([7bf425b7a](https://github.com/heygen-com/hyperframes/commit/7bf425b7a90c5a3c8154c66025261ff9e52c8c72), [#3031](https://github.com/heygen-com/hyperframes/pull/3031)) ## Internal - **Studio:** Relax large fixture timeout ([bce2140ff](https://github.com/heygen-com/hyperframes/commit/bce2140ff208e16f83ee0854bca8baf85ad7216e), [#3040](https://github.com/heygen-com/hyperframes/pull/3040)) - **Studio:** Extract live timeline clock ([19b8a1f3c](https://github.com/heygen-com/hyperframes/commit/19b8a1f3c5a55c30b5aa367c9054ca1b31552536), [#2711](https://github.com/heygen-com/hyperframes/pull/2711)) - **Studio:** Pin text-field Backspace routing ([cde5bae4c](https://github.com/heygen-com/hyperframes/commit/cde5bae4c5a6afa167faf827ab1073e66964cd35), [#2988](https://github.com/heygen-com/hyperframes/pull/2988)) - **Producer:** Treat an all-literal probe argv as taking no input ([c81f68b59](https://github.com/heygen-com/hyperframes/commit/c81f68b59225d0acd34acbc419e408125fa51e36)) - **Producer:** Discover ffprobe callers and pin terminator position ([91a7cb1f5](https://github.com/heygen-com/hyperframes/commit/91a7cb1f5b7f9a4bb539384fb50645a8feab3f29)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.92...v0.7.93). Percentage-based canary rollouts land, so a change can ship to a stable slice of installs instead of all-or-nothing — decided locally and offline, with two inert calibration canaries validating the mechanism before anything depends on it. Also 29 new registry theme items across three families, a faster virtualized Studio timeline, and sub-composition sibling asset paths now resolving everywhere. ## Features - **Cli,studio:** Telemetry opt-out is canary opt-out ([4f464dc42](https://github.com/heygen-com/hyperframes/commit/4f464dc424c648c1210fbfd0675ff774ee0037d4)) - **CLI:** Bucket canaries on a machine-lineage seed, not the telemetry id ([8dd20ac2e](https://github.com/heygen-com/hyperframes/commit/8dd20ac2e8f8c082c69ac9a4be5f3df8b7690b2c)) - **Core:** Inert calibration canaries to validate the mechanism in the wild ([a7bb061af](https://github.com/heygen-com/hyperframes/commit/a7bb061afeaec9f39acc04314a673a2b2ded5fc2)) - **Core:** Emit canary assignments as PostHog flag properties ([a1682e122](https://github.com/heygen-com/hyperframes/commit/a1682e12282c537f7692a3d0b8541263cde7bd50)) - **Studio:** Browser canary binding + leaf subpath imports ([71ee156da](https://github.com/heygen-com/hyperframes/commit/71ee156dacd16e236590ccb5b1d936d0c414a771)) - **CLI:** Attach canary cohort to telemetry, harden canary tests, document ([df1521a0b](https://github.com/heygen-com/hyperframes/commit/df1521a0b6fd64885f1c16d5c075c005755a7dbd)) - **Core:** Percentage-based canary rollouts ([3aea78668](https://github.com/heygen-com/hyperframes/commit/3aea78668734772f9cc83bac81e2495cae2140b0)) ## Fixes - **Studio:** Scope timeline ease focus lifecycle ([0a70ba671](https://github.com/heygen-com/hyperframes/commit/0a70ba67179f00bd149aed42421ed77f56436199), [#2710](https://github.com/heygen-com/hyperframes/pull/2710)) - **Studio:** Scope timeline context targets ([423c5ffad](https://github.com/heygen-com/hyperframes/commit/423c5ffadb47d1a97a65c4ef0f7229097e14ad0e), [#2708](https://github.com/heygen-com/hyperframes/pull/2708)) - **Core:** Resolve sub-composition sibling asset paths everywhere ([4e7fcf7f2](https://github.com/heygen-com/hyperframes/commit/4e7fcf7f2a5af2922ecb6855f08ed879018b8521), [#2994](https://github.com/heygen-com/hyperframes/pull/2994)) - **Studio:** Resolve sibling asset paths in sub-composition previews ([cbd8a77d1](https://github.com/heygen-com/hyperframes/commit/cbd8a77d162be059126698f7e20680c5430dd3d5), [#2983](https://github.com/heygen-com/hyperframes/pull/2983)) - **CLI:** Stop bare --frame-check from swallowing the next flag ([70cc4f59a](https://github.com/heygen-com/hyperframes/commit/70cc4f59a1165f1a132a7bf96d2c8f98ceef2d1a), [#2966](https://github.com/heygen-com/hyperframes/pull/2966)) - **Producer:** Correct short VFR frame coverage ([127eb1937](https://github.com/heygen-com/hyperframes/commit/127eb193715a79252ac77969a95d431a89fee4fe), [#2936](https://github.com/heygen-com/hyperframes/pull/2936)) - **Producer:** Reject asset media type mismatches ([9792c3295](https://github.com/heygen-com/hyperframes/commit/9792c32950133cc7a6aa55361f682bb431db5439), [#2937](https://github.com/heygen-com/hyperframes/pull/2937)) - **CLI:** Stop dropping queued telemetry when process.exit races the final flush ([bc6dbc7e2](https://github.com/heygen-com/hyperframes/commit/bc6dbc7e216353a67700230164e81c3f6076f559), [#2970](https://github.com/heygen-com/hyperframes/pull/2970)) - **Cli,studio:** Adopt the CLI's canary decisions in a launched Studio ([98b23a885](https://github.com/heygen-com/hyperframes/commit/98b23a8850dfe01a9f12957eef25a240294cbe21)) - **CLI:** Keep the canary bucket seed inside the config dir ([9f2b892a7](https://github.com/heygen-com/hyperframes/commit/9f2b892a7137dc14b3e58a0773ba55384562d875)) ## Performance - **Studio:** Stabilize virtualized beat gestures ([677fd31e9](https://github.com/heygen-com/hyperframes/commit/677fd31e9a7bf52475236abbfb662f528862d795), [#2709](https://github.com/heygen-com/hyperframes/pull/2709)) - **Studio:** Virtualize timeline marquee selection ([91d14744a](https://github.com/heygen-com/hyperframes/commit/91d14744a09fefab92363af78065097327a092ce), [#2707](https://github.com/heygen-com/hyperframes/pull/2707)) - **Studio:** Stabilize virtualized timeline drops ([bb5c60387](https://github.com/heygen-com/hyperframes/commit/bb5c603870a0ef2b0defe485c57e4b7d084d5b90), [#2706](https://github.com/heygen-com/hyperframes/pull/2706)) - **Studio:** Stabilize virtualized keyframe retiming ([44bee4c3c](https://github.com/heygen-com/hyperframes/commit/44bee4c3cf208c1f2757beca2e2aa38e96aebc3c), [#2705](https://github.com/heygen-com/hyperframes/pull/2705)) - **Studio:** Stabilize virtualized clip gestures ([f52398cee](https://github.com/heygen-com/hyperframes/commit/f52398ceeff388bab66a8ce2fd8db96c786e8f69), [#2704](https://github.com/heygen-com/hyperframes/pull/2704)) ## Docs & Examples - Add the shared page components and the Reference Project ([edfe66a95](https://github.com/heygen-com/hyperframes/commit/edfe66a95375234f0d261a09a46a29424d040318), [#2977](https://github.com/heygen-com/hyperframes/pull/2977)) - **Changelog:** Weekly digest 2026-07-27–2026-08-03 ([1d0d4d893](https://github.com/heygen-com/hyperframes/commit/1d0d4d8939d358edb7cdb017733b7641d5eec42c), [#2969](https://github.com/heygen-com/hyperframes/pull/2969)) - **Canary:** Connect canary rollouts to the telemetry docs ([54534d53c](https://github.com/heygen-com/hyperframes/commit/54534d53c257fda8fa0f14d4d91fd58724f6b6a6)) - **Canary:** Calibration check 2 reflects the breaker rollover ([0d98de023](https://github.com/heygen-com/hyperframes/commit/0d98de023f5d38b0f7767c7f4defc6a85bff217a)) - **Canary:** Keep contributor docs vendor- and access-neutral ([18d6dd2d7](https://github.com/heygen-com/hyperframes/commit/18d6dd2d7ff44994d24d360edd0d7981967fd29d)) - **Canary:** Note override contamination as check 3's innocent explanation ([10536e847](https://github.com/heygen-com/hyperframes/commit/10536e8473b31eef5b35a2977673bcae35be83c5)) - **Canary:** Make calibration check 4 compare per-surface values ([c43b4e2d9](https://github.com/heygen-com/hyperframes/commit/c43b4e2d951c229935f65a4e224ef8a66c43dd12)) - **Canary:** Link the calibration dashboard from the checks section ([00b576297](https://github.com/heygen-com/hyperframes/commit/00b57629746d3006d8cf3d8fc760b7e0e84c4f77)) ## Catalog - **Registry:** Animate mk card offsets with transforms, not top/left ([ce7d75dba](https://github.com/heygen-com/hyperframes/commit/ce7d75dbaa29e3920216f6e848e68b4b6257602e)) - **Registry:** Add beat-freeze-cut ([d3d286a1a](https://github.com/heygen-com/hyperframes/commit/d3d286a1a53ed52d78ab3994195e83d2188ec163)) - **Registry:** Connector geometry, family accent, and demo legibility ([35231e964](https://github.com/heygen-com/hyperframes/commit/35231e964daab6d6b73d8dc3917f9f95f5944157)) - **Registry:** Mk / yt / hw theme families — 29 items ([f252ec6d9](https://github.com/heygen-com/hyperframes/commit/f252ec6d9942486b4bbdbbdae05f25e683c4ab26)) - **Registry:** Add hw-scribble-transition — scribble transition ([264f2f140](https://github.com/heygen-com/hyperframes/commit/264f2f14016f88bf4fcf6a450031e5975dabc97e)) - **Registry:** Add hw-frame — sketched frame ([4467a8d61](https://github.com/heygen-com/hyperframes/commit/4467a8d61cb591a798ad17fef0bb53cf8ebf76d6)) - **Registry:** Add hw-path-text — text along a path ([662402337](https://github.com/heygen-com/hyperframes/commit/66240233748e1e3c10958882565af656891456a5)) - **Registry:** Add hw-pipeline — hand-drawn flowchart ([b77a16384](https://github.com/heygen-com/hyperframes/commit/b77a163845c600741163b6541fcc64d07a0cb5e5)) - **Registry:** Add hw-underline — squiggle marks ([b0f6cc7b9](https://github.com/heygen-com/hyperframes/commit/b0f6cc7b9b528142890600760f508889939d828a)) - **Registry:** Add hw-box-label — hand-drawn box label ([0ba613e57](https://github.com/heygen-com/hyperframes/commit/0ba613e571f746a6fc65699f86fa8ede842f4d42)) - **Registry:** Add hw-title — handwritten title ([fae656076](https://github.com/heygen-com/hyperframes/commit/fae6560766193f8c894e39238bdbd16e10422dc1)) - **Registry:** Add hw-text-cloud — speech bubble ([3beed70e5](https://github.com/heygen-com/hyperframes/commit/3beed70e56fdbeaa4d2cd4cc96a06ac984a08b23)) - **Registry:** Add hw-callout-circle — scribble callout circle ([f1a506eb4](https://github.com/heygen-com/hyperframes/commit/f1a506eb4b8c03ceb751288d36c100654225e3ee)) - **Registry:** Add hw-arrow — hand-drawn arrow ([95a2ae0a4](https://github.com/heygen-com/hyperframes/commit/95a2ae0a498534ff48f6eac17a0b44eae2c907c6)) - **Registry:** Add hw-boil — hand-drawn boil ([d4f1ad0c3](https://github.com/heygen-com/hyperframes/commit/d4f1ad0c37e56e0aa6651b4d041598c2b438cdb7)) - **Registry:** Add yt-doc-lower-third — documentary lower third ([e9d279282](https://github.com/heygen-com/hyperframes/commit/e9d279282487e5c3a64013be3e08f590e7046ae2)) - **Registry:** Add mk-emphasis-type — background emphasis type ([cc98f5fd6](https://github.com/heygen-com/hyperframes/commit/cc98f5fd6d84101708134d58d10c25aa28c2841f)) - **Registry:** Add yt-screen-warp — on-screen display effect ([1ead7a768](https://github.com/heygen-com/hyperframes/commit/1ead7a768ae88edaa7ecacfda4f868e4e1073cbf)) - **Registry:** Add mk-logo-sting — outline logo sting ([44cd52025](https://github.com/heygen-com/hyperframes/commit/44cd5202533f176593b37404a85f51997877438f)) - **Registry:** Add yt-vertical-fill — vertical media filler ([ba774de05](https://github.com/heygen-com/hyperframes/commit/ba774de05ccb6bac895b96d6abace85a29caffcc)) - **Registry:** Add mk-line-graph — minimal line graph ([4ce35b7cb](https://github.com/heygen-com/hyperframes/commit/4ce35b7cba683d7f2ffe8ad4e3f03e853f6425c3)) - **Registry:** Add yt-circle-pointer — pointer circle + countdown ([c4425bfb4](https://github.com/heygen-com/hyperframes/commit/c4425bfb40e28caf4f4e1e42715331f0c8a50929)) - **Registry:** Add mk-progress-stat — count-up stat card ([2039bf5f4](https://github.com/heygen-com/hyperframes/commit/2039bf5f44285c26cfe4f1f46c62215dcf5d8337)) - **Registry:** Add yt-feather-highlight — feathered spotlight ([4e0a7dda8](https://github.com/heygen-com/hyperframes/commit/4e0a7dda8859aa9d89be05d364144a78dd96bbfa)) - **Registry:** Add mk-usage-arc — hairline arc gauge ([63c6cd02e](https://github.com/heygen-com/hyperframes/commit/63c6cd02ead1c8bd93cde2a354a84cd9ff3b6a1f)) - **Registry:** Add yt-logo-intro — logo intro sequence ([894861235](https://github.com/heygen-com/hyperframes/commit/8948612359947e5b721af764725ddae9cda3a020)) - **Registry:** Add mk-cta-button — pill cta button ([eed6adafb](https://github.com/heygen-com/hyperframes/commit/eed6adafb0a98705ba42a8b65802c8946d7028bc)) - **Registry:** Add yt-prism-title — chromatic fringe title ([9036e3c76](https://github.com/heygen-com/hyperframes/commit/9036e3c76caef82f582f53effe5b6888c07d8560)) - **Registry:** Add mk-clone-wall-transition — text clone wall transition ([fc40c882e](https://github.com/heygen-com/hyperframes/commit/fc40c882e1db9c8924f21b34335308bb875f76c2)) - **Registry:** Add yt-avatar-pip — circle pip window ([d924630f2](https://github.com/heygen-com/hyperframes/commit/d924630f23b0075bc69a3497426323c83c351969)) - **Registry:** Add mk-placeholder-grid — rounded media grid ([ac8d34fb9](https://github.com/heygen-com/hyperframes/commit/ac8d34fb9db1442e6d4ea1e7f0bbdf9c91df2b79)) - **Registry:** Add yt-comment-card — comment cards ([a4ef52fcb](https://github.com/heygen-com/hyperframes/commit/a4ef52fcb044b99c8547c336ccdfb7aa0d94b2bc)) - **Registry:** Add mk-callout-highlight — word-sweep highlight ([9be7a6415](https://github.com/heygen-com/hyperframes/commit/9be7a6415c7847690a3216f958ae834100ccfcbf)) - **Registry:** Add yt-lcd-background — scanline board background ([a7f83f6fc](https://github.com/heygen-com/hyperframes/commit/a7f83f6fc6f0767049b8308837c602cd179d7f7f)) - **Registry:** Add mk-specs-list — specs checklist ([3e4a4042e](https://github.com/heygen-com/hyperframes/commit/3e4a4042e550e176689233bc33c6db631c5daad5)) - **Registry:** Add yt-camera-move — camera punch-in ([ea5e5e5bb](https://github.com/heygen-com/hyperframes/commit/ea5e5e5bb5f755a3eb4bcded663d03d0cf858521)) - **Registry:** Add mk-pill-callout — capsule callout chip ([95125834e](https://github.com/heygen-com/hyperframes/commit/95125834e8b3bd810e9f16eb65f85455887384ec)) - **Registry:** Add mk-background — minimal procedural gradient background ([61c82135f](https://github.com/heygen-com/hyperframes/commit/61c82135f3677ae61a963d587b5aaec134d1656b)) ## Internal - **Release:** Fold the unpublished v0.7.91 artifacts into v0.7.92 ([e70ffad93](https://github.com/heygen-com/hyperframes/commit/e70ffad93987296ac8b351e85dd4872fdc2da285)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.90...v0.7.92). Prevents short compositions from decoding entire long video sources and exhausting producer memory through HDR raw-frame scratch and filesystem page cache. Extraction now follows the playable timeline, reserves bounded scratch capacity across concurrent renders, and cleans resources on every exit path. ## Fixes - **Producer:** Bound video extraction to the composition's playable interval instead of the source's full duration, including negative timeline starts, non-zero media offsets, loops, held tails, and distributed planning ([#2955](https://github.com/heygen-com/hyperframes/pull/2955)) - **Producer:** Limit concurrent HDR raw-frame scratch against the configured ceiling, cgroup memory, and free disk; release reservations and temporary resources after success, cancellation, and partial failure ([#2955](https://github.com/heygen-com/hyperframes/pull/2955)) - **Engine:** Resolve the true final playable frame for held-tail media, including streams with non-zero or negative timestamp bases, without sharing cancellation state across renders ([#2955](https://github.com/heygen-com/hyperframes/pull/2955)) - **Producer API:** Add `outputDynamicRange: auto | hdr | sdr` while temporarily accepting the legacy `hdrMode` field for rolling migrations ([#2955](https://github.com/heygen-com/hyperframes/pull/2955)) ## Rollout - Upgrade the HyperFrames producer fleet to v0.7.90 before deploying callers that send `outputDynamicRange`; the legacy `hdrMode` field remains accepted only to bridge the rolling deployment. ## Catalog - **Contributing:** Refresh the catalog contribution guide ([#2954](https://github.com/heygen-com/hyperframes/pull/2954)) ## Internal - **Release:** Publish stable packages only from a reviewed release PR's exact merge commit, with fail-closed checkout/tag verification and safe same-commit retries ([#2959](https://github.com/heygen-com/hyperframes/pull/2959)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.89...v0.7.90). Stops generated waveform, thumbnail, and transcode caches from retriggering Studio project reloads or appearing as project files. Real source edits still invalidate previews normally. ## Fixes - **CLI:** Ignore generated cache directories in the recursive project watcher, preventing preview refresh loops during cache generation ([#2952](https://github.com/heygen-com/hyperframes/pull/2952)) - **Studio:** Keep generated caches out of Storyboard signatures and the project file tree while retaining invalidation for real source edits ([#2952](https://github.com/heygen-com/hyperframes/pull/2952)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.88...v0.7.89). Hardens the media probe against malformed and hostile input — ffprobe invocation, AAC duration refinement, frame-rate parsing and PNG inspection — and adds a color grading chapter to the Prompt Guide. ## Fixes - **Engine:** Harden the ffprobe invocation — reject stdin input, decode stdout correctly, and bound its size ([9e275423e](https://github.com/heygen-com/hyperframes/commit/9e275423e2f44e37d73d5b7372a3ead3ba95cf75)) - **Engine:** Make the AAC duration refinement safe, cancellable and LC-only, allowlisting AAC-LC rather than denying HE-AAC ([242a42f6c](https://github.com/heygen-com/hyperframes/commit/242a42f6c94d5cc780477ed94c7938448639f67f), [361fd4992](https://github.com/heygen-com/hyperframes/commit/361fd4992636188e484e719a149f452b87c98b2b)) - **Engine:** Reject non-finite, negative and malformed frame rates, and strict-parse rationals ([19dc83bc2](https://github.com/heygen-com/hyperframes/commit/19dc83bc2beebebc136da776b2718594f41a469d), [4d563fa75](https://github.com/heygen-com/hyperframes/commit/4d563fa7523f0ef2e630d0da214b3b667bf7c982)) - **Engine:** Fix PNG probing — merge color per field, detect alpha correctly, defer the parse, stop the chunk walk at cICP, and use native crc32 ([62b96c227](https://github.com/heygen-com/hyperframes/commit/62b96c227e7934ec8be4f7a806a99d7cd8decef0), [2af3f4d0e](https://github.com/heygen-com/hyperframes/commit/2af3f4d0ed9fac2fadc1266bcadde04e6513d800)) - **Engine:** Keep the PNG CRC working on Node 22.0 and 22.1 ([96a6e8bd9](https://github.com/heygen-com/hyperframes/commit/96a6e8bd95410695340b2671b1dc167f14f49999)) ## Docs & Examples - **Prompting:** New [Color grading and film effects](https://hyperframes.heygen.com/prompting/color-grading) chapter — ten A/B renders, each with the prompt that produced it and the payload it compiled to, covering tonal work, hue keys, print and analogue looks, and why the source matters more than the payload ([#2911](https://github.com/heygen-com/hyperframes/pull/2911)) - **Guides:** Two new sections in [Color Grading](https://hyperframes.heygen.com/guides/color-grading) — *Animating a Grade* (which properties tween, and which do not) and *Limiting a Grade to Part of the Frame* (the layer technique for region-limited grades, previously listed as unsupported with no workaround) ([#2911](https://github.com/heygen-com/hyperframes/pull/2911)) ## Full changelog https://github.com/heygen-com/hyperframes/compare/v0.7.87...v0.7.88 Website capture now exits predictably: runtime stages share a live budget, blocked or degraded pages fail fast, and vision/Lottie failures retain accurate, sanitized diagnostics. This release also enables Studio timeline virtualization by default and includes dense-keyframe and preview-resource fixes. ## Features - **Studio:** Enable timeline virtualization by default ([c6925e471](https://github.com/heygen-com/hyperframes/commit/c6925e471a1ab4df911f5b4aab08740084c5412c), [#2926](https://github.com/heygen-com/hyperframes/pull/2926)) ## Fixes - **CLI:** Preserve capture failure diagnostics ([9ae000726](https://github.com/heygen-com/hyperframes/commit/9ae00072614f35785e4a1d7bad48787451462a91)) - **CLI:** Omit skipped Lottie previews ([ac9458888](https://github.com/heygen-com/hyperframes/commit/ac9458888c7a6e05aa6b4d5d74063b5859782d02)) - **CLI:** Narrow blocked page titles ([b38e90740](https://github.com/heygen-com/hyperframes/commit/b38e90740407ac50fd83e124b8211d3efc7282be)) - **CLI:** Report bounded vision failures ([dfc60797a](https://github.com/heygen-com/hyperframes/commit/dfc60797a2adeddef120f4c800f06b30cc155117)) - **CLI:** Reject blocked website captures ([22e3cca96](https://github.com/heygen-com/hyperframes/commit/22e3cca966e4f3c5dfe0f8b716dec80259206300)) - **CLI:** Validate capture budget milliseconds ([d3607606e](https://github.com/heygen-com/hyperframes/commit/d3607606eeced5c826923f536d0d33d0cd799fb9)) - **CLI:** Propagate live capture budget ([49091e614](https://github.com/heygen-com/hyperframes/commit/49091e6142c98b9fcab967c88e210df601a118d9)) - **CLI:** Bound capture runtime stages ([765a5ae83](https://github.com/heygen-com/hyperframes/commit/765a5ae83f31b01b65426f34a3c80a47330456a0)) - **Studio:** Keep dense keyframes readable ([723d3381c](https://github.com/heygen-com/hyperframes/commit/723d3381c4cabb3c238d883adf4fca487ead9df6), [#2925](https://github.com/heygen-com/hyperframes/pull/2925)) - **Studio:** Release retained preview resources ([fbfffb1aa](https://github.com/heygen-com/hyperframes/commit/fbfffb1aa785fe48aa94a3570bd04c9128a80d18), [#2924](https://github.com/heygen-com/hyperframes/pull/2924)) - Align local WebGPU capture behavior ([3a6b7f061](https://github.com/heygen-com/hyperframes/commit/3a6b7f06127102be719aa4d91f1a8b40b299a0c6), [#2907](https://github.com/heygen-com/hyperframes/pull/2907)) - **CLI:** Move install-state into the config dir so deleting it is a full reset ([dae1b63d4](https://github.com/heygen-com/hyperframes/commit/dae1b63d4a59fc6dff7fe19861d90efce9dc6948)) ## Docs & Examples - **Skills:** Gate blocked website captures ([30f383074](https://github.com/heygen-com/hyperframes/commit/30f38307411908237201ed227f5350aa18ba156e)) - Add THU-MAIC as HyperFrames adopter ([1738b5a11](https://github.com/heygen-com/hyperframes/commit/1738b5a11f7eee1c130b29b3c489f79473e7aec2), [#2761](https://github.com/heygen-com/hyperframes/pull/2761)) - Unlist the Send-to guide from the docs nav (tool-served, not web-searched) ([a3c8f897f](https://github.com/heygen-com/hyperframes/commit/a3c8f897f2cdb4231521a752d6b320c8edb77a45), [#2918](https://github.com/heygen-com/hyperframes/pull/2918)) ## Internal - **CLI:** Cover bounded capture stages ([45aead84c](https://github.com/heygen-com/hyperframes/commit/45aead84c9467398cd18bc0878d6f4943daf65fd)) - **Producer:** Share plan execution builder ([1d636f603](https://github.com/heygen-com/hyperframes/commit/1d636f603c6502e1d1421b0d04e67e47765f835f), [#2906](https://github.com/heygen-com/hyperframes/pull/2906)) - **Lint:** Consolidate asset-src placeholder skip into a shared predicate ([5a6e4b1a8](https://github.com/heygen-com/hyperframes/commit/5a6e4b1a8f4176250b5c92b63845399fcfe7f256), [#2894](https://github.com/heygen-com/hyperframes/pull/2894)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.86...v0.7.87). Ships the **Prompt Guide** — a novice-to-capstone arc across `/prompting`, where every prompt sits beside the unedited render it produced and each chapter cuts its own region out of one 62-second capstone film. The guide now opens with the intent interview the agent runs before building, and records its answers to `BRIEF.md` so a later session resumes without re-asking. Also lands fixes from running `product-launch-video` end to end, plus lint and transition-duration corrections. ## Features - **Studio:** Track timeline performance ([10b517dab](https://github.com/heygen-com/hyperframes/commit/10b517dab9515988cb82100c3975b53a47da1f35), [#2898](https://github.com/heygen-com/hyperframes/pull/2898)) ## Fixes - **Docs:** Correct mediabunny GitHub link in CREDITS.md ([1481fe1ed](https://github.com/heygen-com/hyperframes/commit/1481fe1ed936ee2aac7220061f258155c274bfb8), [#2897](https://github.com/heygen-com/hyperframes/pull/2897)) - **Skills:** Extend transition roots without explicit duration ([14ced9051](https://github.com/heygen-com/hyperframes/commit/14ced9051795b32db75a479ac2580eef3c5df85c), [#2873](https://github.com/heygen-com/hyperframes/pull/2873)) - **Lint:** Don't flag unresolved templating-token asset srcs as missing ([6c185f252](https://github.com/heygen-com/hyperframes/commit/6c185f252f38a5a1f1dc9e23f17ef98f63ea18c7), [#2893](https://github.com/heygen-com/hyperframes/pull/2893)) - **Capture,audio,docs:** Defects found running product-launch-video end to end ([e0dc255e8](https://github.com/heygen-com/hyperframes/commit/e0dc255e8a4108833ac727d54f4b039cca397042), [#2892](https://github.com/heygen-com/hyperframes/pull/2892)) ## Docs & Examples - **Prompt Guide:** Restructured into a seven-level arc, novice to capstone, with the nav regrouped to match ([#2109](https://github.com/heygen-com/hyperframes/pull/2109)) - **Prompt Guide:** Every embedded render is now reproducible from the prompt printed beside it — 18 verified examples, plus validated renders across the chapters - **Prompting:** The eight-rule motion grammar, each rule shown as an A/B render built twice from the same composition ([8fb1482e7](https://github.com/heygen-com/hyperframes/commit/8fb1482e7ff59a7007e5f6e40d38a7a02ede3adb), [cdac57c07](https://github.com/heygen-com/hyperframes/commit/cdac57c0757cee22db67e9595b29809cfabd056c), [dd4fd9cef](https://github.com/heygen-com/hyperframes/commit/dd4fd9cefaa1f5816a8a2ff404e2152af542b25d)) - **Prompting:** New capstone chapter dissecting *The Timeline* — one continuous camera across nine regions, rendered twice from one template ([a90e343e8](https://github.com/heygen-com/hyperframes/commit/a90e343e8e4f7c15424cb2b33030a2522509218d)) - **Prompting:** New chapters for storyboards, porting from Remotion, and recreating a reference from text alone ([630ad482c](https://github.com/heygen-com/hyperframes/commit/630ad482c627c850dcc4dade7b4aef5a189f3bb5), [ead4341c7](https://github.com/heygen-com/hyperframes/commit/ead4341c7c7d57a78c944d7e3fbac1ed545d9cfd)) - **Prompting:** "Avoiding the slideshow" — the continuity contract, framed as one method among several ([4f6fb8fc1](https://github.com/heygen-com/hyperframes/commit/4f6fb8fc16c566bd8f473820a559a16c15b1fbeb)) - **Prompting:** Documented the intent interview, run-shape questions, and `BRIEF.md` ([2efbfd475](https://github.com/heygen-com/hyperframes/commit/2efbfd47583f75534b194d90ec0f689278b370f5), [#2872](https://github.com/heygen-com/hyperframes/pull/2872)) - **Prompting:** Appendix of traps the validation runs exposed — layout waivers and the contrast-gate side effect, `fromTo` back-render, round-linecap dots ([4d89bd426](https://github.com/heygen-com/hyperframes/commit/4d89bd426150e054cf42e3c05d6bc75585bcffbb), [fda3d9a65](https://github.com/heygen-com/hyperframes/commit/fda3d9a65af9ef02c21bf4c632857ff0f801f925)) - **Prompting:** `frame.md` is the design spec; `design.md` references removed throughout ([4260f12b0](https://github.com/heygen-com/hyperframes/commit/4260f12b01a7bbcd9b5841e5f29cbba02fe0604f)) - **Skills:** Text corrections found while validating the guide's prompts ([e7a6cb0da](https://github.com/heygen-com/hyperframes/commit/e7a6cb0da622e2086afb27fe1ecb6144af2734c4)) Every prompt-guide commit is listed in the full changelog below. ## Catalog - **Prompting:** Fix misquoted caption-color phrase in captions-catalog bridge ([16224fd2f](https://github.com/heygen-com/hyperframes/commit/16224fd2fbd1b591e88e4029352d682dcf8b734d)) ## Internal - Format prompt-guide-expansion plan (fixes Format CI) ([b71ce85c2](https://github.com/heygen-com/hyperframes/commit/b71ce85c2cd830d16af28299adf2df6938ab306a)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.84...v0.7.85). Makes the composition element-count signal trustworthy fleet-wide: every render now reports its live DOM size (not just the ~17% that get a probe session), and the static fallback scan no longer inflates counts from markup written inside inline scripts. Observational only — no routing behaviour changes. ## Features - **Engine:** Measure live DOM size on every render, not just probed ones ([d74afc7b7](https://github.com/heygen-com/hyperframes/commit/d74afc7b7dc620036439b398c6bca823fb3911b4)) ## Fixes - **Producer:** Strip script bodies to a fixed point, not one pass ([042d5aaba](https://github.com/heygen-com/hyperframes/commit/042d5aaba6d10c1f0497db9c86f6f71f9e69368c)) - **Producer:** Unbias the static element count and stop zeroing failures ([c61a24b51](https://github.com/heygen-com/hyperframes/commit/c61a24b510b022fb7956caa089ee093f87053f96)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.83...v0.7.84). Lays the measurement groundwork for opening the drawElement fast path to short compositions: renders now report their live DOM element count and whether the short-comp routing band would apply, while routing itself stays unchanged behind a default-off flag. Also carries a batch of Windows and browser-resolution fixes, audio-mix corrections, and transparent GIF output. ## Features - **Producer:** Surface init telemetry from parallel workers — the band's missing motion axis ([23854f7c6](https://github.com/heygen-com/hyperframes/commit/23854f7c6a328ef1f6913160af345c9fda70b036)) - **Producer:** Open the DE single-worker inversion to short comps under an element ceiling ([0749cd9ff](https://github.com/heygen-com/hyperframes/commit/0749cd9ff83ad41c72c7dc6be1b224e9bc27731b)) - **CLI:** Roll circuit-breaker state over across config wipes ([dfe92b2aa](https://github.com/heygen-com/hyperframes/commit/dfe92b2aabcea8d934e4696f9dfe063307fccdf7)) ## Fixes - **Studio:** Stop popovers and tooltips clipping at panel edges ([f81ac7457](https://github.com/heygen-com/hyperframes/commit/f81ac745726d3195d07b79d7de9c31357ce8ab43), [#2890](https://github.com/heygen-com/hyperframes/pull/2890)) - **Producer:** Fail closed when no live element count is available ([4dbf0d90b](https://github.com/heygen-com/hyperframes/commit/4dbf0d90b05de2c3db7c983641c8785fd9988148)) - **Producer:** Count live DOM, not source markup, for the short-band gate ([def98f79c](https://github.com/heygen-com/hyperframes/commit/def98f79c3fa746e805c6fbe9ee51392c267ea1e)) - **Producer:** Keep large local fonts file-backed ([87791fd01](https://github.com/heygen-com/hyperframes/commit/87791fd01d93ee82226bf09d98a4dfe339c42307), [#2864](https://github.com/heygen-com/hyperframes/pull/2864)) - Exclude hidden audio from render mix ([b7160f69b](https://github.com/heygen-com/hyperframes/commit/b7160f69bba87254f8d33853df21a8be862605e1), [#2870](https://github.com/heygen-com/hyperframes/pull/2870)) - **Parsers:** Validate Windows FFmpeg discovery candidates ([4ad1cf455](https://github.com/heygen-com/hyperframes/commit/4ad1cf4551b724e7d54f82f86b233ef734545250), [#2871](https://github.com/heygen-com/hyperframes/pull/2871)) - Preserve plateaus in sampled audio automation ([04e0ccce4](https://github.com/heygen-com/hyperframes/commit/04e0ccce429c0c7c579cd06db09e7bad8fb550f3), [#2863](https://github.com/heygen-com/hyperframes/pull/2863)) - **CLI:** Select host-compatible cached browser ([85f0c9d35](https://github.com/heygen-com/hyperframes/commit/85f0c9d3546b1973dfba884fe6d2a7a8188d4ad3), [#2861](https://github.com/heygen-com/hyperframes/pull/2861)) - **CLI:** Honor check navigation timeout ([fdc593289](https://github.com/heygen-com/hyperframes/commit/fdc5932897ea3ecf778d520da77e6f6d493017d5), [#2860](https://github.com/heygen-com/hyperframes/pull/2860)) - **CLI:** Simplify nextInstallState's dead hadFired branch (review nit) ([ec76985f4](https://github.com/heygen-com/hyperframes/commit/ec76985f4072469762388739f16b1c6904e84519)) - **Producer:** Address R2 review findings — element undercount and kill-switch attribution ([7bb9e3cbf](https://github.com/heygen-com/hyperframes/commit/7bb9e3cbf920e04d01854a839d01619cb3615ab4)) - **Render:** Preserve transparency in GIF output ([6cfb05e38](https://github.com/heygen-com/hyperframes/commit/6cfb05e38bcb0ad02fa848500b462f0193a639b1), [#2327](https://github.com/heygen-com/hyperframes/pull/2327)) - **Studio:** Resolve Chrome on Windows ([d8d626537](https://github.com/heygen-com/hyperframes/commit/d8d626537bf6a830711f38e24cc8756bc26f8d48), [#2878](https://github.com/heygen-com/hyperframes/pull/2878)) ## Docs & Examples - **Product Launch Video:** Use real screenshots for site showcases ([860954d71](https://github.com/heygen-com/hyperframes/commit/860954d71c15dcd7d47ce9d8bda55009010f08f7), [#2881](https://github.com/heygen-com/hyperframes/pull/2881)) - **Product Launch Video:** Catch motion jumps at frame cuts ([5466bcecc](https://github.com/heygen-com/hyperframes/commit/5466bceccef70a3663f5a92bc567455fd018f050), [#2880](https://github.com/heygen-com/hyperframes/pull/2880)) - **Audio:** Avoid weak music openings in short launch videos ([30900c346](https://github.com/heygen-com/hyperframes/commit/30900c3465f457bf65f07ed4b4b55c384286bd20), [#2882](https://github.com/heygen-com/hyperframes/pull/2882)) - **Skills:** Name the media-treatment policy targets instead of alluding to them ([6cab53a68](https://github.com/heygen-com/hyperframes/commit/6cab53a681bf159ffe34f66506a8004e38213fae), [#2879](https://github.com/heygen-com/hyperframes/pull/2879)) ## Internal - **Studio:** Split ease mode controls out of EaseCurveSection ([e0b190947](https://github.com/heygen-com/hyperframes/commit/e0b19094758044b6e6b9e57d8a13e19d738c6952)) - **Studio:** Remove fully rolled-out studio feature flags ([cef3b86c9](https://github.com/heygen-com/hyperframes/commit/cef3b86c95cb257be7c61ac3bdc4dd6dc9692e11), [#2889](https://github.com/heygen-com/hyperframes/pull/2889)) - **Producer:** Make the short-comp band baseline-first and its attribution decisive ([e9de2fa14](https://github.com/heygen-com/hyperframes/commit/e9de2fa14f61f503287c9d87ec0487c165ecbcba)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.82...v0.7.83). Studio exports now preserve the selected orientation-aware resolution, including 4K, instead of silently falling back to the composition's native canvas size. Browser startup also honors explicit HyperFrames browser-path environment overrides and retries transient launch failures without hanging preview requests. ## Fixes - **Studio:** Honor selected render resolution ([f1655b930](https://github.com/heygen-com/hyperframes/commit/f1655b9302dc870c1e2ee24f19fd23897c767b42), [#2876](https://github.com/heygen-com/hyperframes/pull/2876)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.81...v0.7.82). HyperFrames now retries transient Google Fonts CSS and font-file failures during distributed planning without misclassifying them as deterministic project errors. Retries remain tightly bounded, respect cancellation and `Retry-After` within a shared budget, and surface exhaustion as `FONT_FETCH_UNAVAILABLE` for orchestration-level recovery. ## Fixes - **Producer:** Retry transient deterministic font fetches ([20f4f8f49](https://github.com/heygen-com/hyperframes/commit/20f4f8f49c19181adfb4194f1965ee00845219f9), [#2865](https://github.com/heygen-com/hyperframes/pull/2865)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.80...v0.7.81). HyperFrames now renders scene-local video timing correctly across sequential nested templates and removes vulnerable runtime dependency paths. Studio also gains exact bulk easing for merged keyframes, atomic keyframe-cache refreshes, and smoother optimistic ease-mode changes. ## Features - **Studio:** Bulk-edit easing for merged keyframes ([10d45def0](https://github.com/heygen-com/hyperframes/commit/10d45def058248d0d59d1448beef6a6ee91ddeba)) ## Fixes - **Studio:** Keep hidden state on expanded sub-composition rows ([5dad52370](https://github.com/heygen-com/hyperframes/commit/5dad52370f77a9a0618827279b8a4dcd86868456)) - **Studio:** Open the path node menu on arc waypoints ([adb7de535](https://github.com/heygen-com/hyperframes/commit/adb7de5358d7ed6feeb41c55e6152ed7758bf1b5)) - **Studio:** Switch keyframe ease modes optimistically ([659e22656](https://github.com/heygen-com/hyperframes/commit/659e22656e51aef54d079b3822fa40086d93726b)) - **Studio:** Publish keyframe cache refresh atomically ([6b11d3743](https://github.com/heygen-com/hyperframes/commit/6b11d3743339c13424073fca63791d941d3fbbf6)) - **Studio:** Target colliding keyframes exactly ([7482c22d8](https://github.com/heygen-com/hyperframes/commit/7482c22d821c0a46b48cb17421c4df73014dbbd6), [#2692](https://github.com/heygen-com/hyperframes/pull/2692)) - **Core:** Preserve scene-local video timing across sequential nested templates ([9bbb6d50a](https://github.com/heygen-com/hyperframes/commit/9bbb6d50a02e128fcdab9ae20d33649b65406788), [#2859](https://github.com/heygen-com/hyperframes/pull/2859)) - **Security:** Remove vulnerable runtime dependency paths ([13ac9e390](https://github.com/heygen-com/hyperframes/commit/13ac9e390585e75b80f5efd46393531315f0be2c)) ## Internal - **Studio:** Split bulk easing helpers ([23ab104af](https://github.com/heygen-com/hyperframes/commit/23ab104aff7a90de6d41aa7af2fb425314015d1d)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.79...v0.7.80). Studio editing is now more exact and predictable: timeline, motion-path, and playhead keyframe operations stay scoped to the intended element; nested-composition timing preserves its host rows; and color, shortcuts, ruler, and accessibility interactions are more reliable. This release also adds a narrow caption-zone layout waiver, makes CLI telemetry opt-out durable, and recognizes the renamed Codex image-generation feature flag. ## Features - **Check:** Add data-layout-allow-caption-zone waiver ([3a7950fd6](https://github.com/heygen-com/hyperframes/commit/3a7950fd63b501788f39f1fd44c12fc317139d79), [#2853](https://github.com/heygen-com/hyperframes/pull/2853)) ## Fixes - **Media Use:** Accept renamed codex image_generation feature flag ([02c57609a](https://github.com/heygen-com/hyperframes/commit/02c57609ab2919792c5f4442b9eb08d729ddf544)) - **Studio:** Give the motion path and the fallbacks a one-element target ([1f3fd2800](https://github.com/heygen-com/hyperframes/commit/1f3fd2800cd2e4df9e8a2c2b81ea11ed5b799630)) - **Studio:** Author every new tween against one element ([3d9243606](https://github.com/heygen-com/hyperframes/commit/3d924360667a15745d85dc060689d913b5dcc5d7)) - **Studio:** Scope lane ids per timeline and stop inventing a track row ([ba0d6406d](https://github.com/heygen-com/hyperframes/commit/ba0d6406d23d11e12305ba79834a69ae672b8432)) - **Studio:** Never re-author a target the DOM proved is not unique ([f04cdb79c](https://github.com/heygen-com/hyperframes/commit/f04cdb79c5f1475fa7d6048036a4e0af354a60a2)) - **Studio:** Label undo history with the track display row ([477916cbe](https://github.com/heygen-com/hyperframes/commit/477916cbe25dd6dd1877c09df3d826cd60b609e5)) - **Studio:** Target one element when adding a keyframe at the playhead ([fd5555be7](https://github.com/heygen-com/hyperframes/commit/fd5555be758450d73335dd3f89c70329aac8ee35)) - **Studio:** Announce real track numbers and point aria-controls at the lanes ([1faa0cbda](https://github.com/heygen-com/hyperframes/commit/1faa0cbdadc71abdea220d8705682c0a18e499bb)) - **Studio:** Resolve a panel edit through the lane groups it can see ([be3451aae](https://github.com/heygen-com/hyperframes/commit/be3451aae43779d47cd593e12bdf8fb2f4da2889)) - **CLI:** Make telemetry opt-out durable ([880021411](https://github.com/heygen-com/hyperframes/commit/880021411d785e7470d3150868dee916245ffce8), [#2852](https://github.com/heygen-com/hyperframes/pull/2852)) - **Studio:** Lane every tween and attribute tweens to their real target ([59a818e80](https://github.com/heygen-com/hyperframes/commit/59a818e80a3ef561c5cb4a25ea30128cd18458b2)) - **Studio:** Keep every host row on the drill path, not just the top ([acad7b268](https://github.com/heygen-com/hyperframes/commit/acad7b268ea1e9e4b35e15265ac6c8a178e43865)) - **Studio:** Keep the host row when drilling into a sub-composition ([d48440a9b](https://github.com/heygen-com/hyperframes/commit/d48440a9bacb83aef8007b3667e78e02a2481d8f)) - **Studio:** Expand sub-comp children against their resolved parent host ([12546985f](https://github.com/heygen-com/hyperframes/commit/12546985f588df8cf984d241dd27e3417edb3320)) - **Studio:** Compute keyframe percentages in the tween's own time frame ([3f0c20f63](https://github.com/heygen-com/hyperframes/commit/3f0c20f633e9ac064e45df838e03d4412ddafda8)) - **Studio:** Accept 3-digit hex shorthand in the colour field ([86f633f98](https://github.com/heygen-com/hyperframes/commit/86f633f98573a79f88422c8a24a69bd55d718c3d)) - **Studio:** Drop aria-modal from the non-modal shortcuts popup ([7f0cadcbb](https://github.com/heygen-com/hyperframes/commit/7f0cadcbb1f24df12bee091d5156e3cbf67f51e4)) - **Studio:** Dismiss the shortcuts panel on escape and outside press ([aa2811642](https://github.com/heygen-com/hyperframes/commit/aa2811642fecabdef58ce45329b115993d1e43fb)) - **Studio:** Let the colour hex field be edited and commit it on outside press ([55614033e](https://github.com/heygen-com/hyperframes/commit/55614033e501b5e55bfd3a2099396b74443652cd)) - **Studio:** Grow the ease target only where the segment has room ([b82506363](https://github.com/heygen-com/hyperframes/commit/b82506363f08bf9b2efbd37dce94c0eaec71844e)) - **Studio:** Meet the 24x24 pointer target minimum on toolbar and lane controls ([4e74eefdd](https://github.com/heygen-com/hyperframes/commit/4e74eefddd4c1e38f7c97662cc52fae6d2a01698)) - **Studio:** Seek ruler clicks to the pressed position and round retime percentages ([69020699d](https://github.com/heygen-com/hyperframes/commit/69020699dfb595194c8bf85117525045439bcdb2)) ## Internal - Regenerate skills-manifest for media-use change ([b6da5bd6b](https://github.com/heygen-com/hyperframes/commit/b6da5bd6b3e95e391ad340c9e11e162f647b8a4b)) ## Other Changes - **Studio:** Keep StudioRightPanel under the 600 line cap ([bb24d0037](https://github.com/heygen-com/hyperframes/commit/bb24d0037a96d14a63eeb4c6e2a983f4971f331d)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.78...v0.7.79). Windows renders on a hardware GPU now use drawElement fast capture, which was previously macOS-only — roughly 2× faster capture on the same safety net (per-frame self-verification with automatic screenshot fallback), covering about 78% of Windows renders. Render telemetry also gains GPU-backend and laptop power-state fields so performance can be diagnosed per machine rather than per platform. ## Features - **Engine:** drawElement fast capture now runs on Windows with a hardware GPU (previously macOS-only); Linux/software-GPU hosts are unchanged ([cb30157eb](https://github.com/heygen-com/hyperframes/commit/cb30157ebbbcfedd3606b9d566d565f4412de45e)) - **Producer:** The parallel-drawElement router (still opt-in via `HF_DE_PARALLEL_ROUTER`) now engages from 700 frames instead of 2000, and renders report `on_battery` / `low_power_mode` ([3da31e399](https://github.com/heygen-com/hyperframes/commit/3da31e399b498d0ab6b1ce32b008b8b10cdcd2dc)) ## Fixes - **CLI:** Persist authoring skill in hyperframes.json for durable render attribution ([d287e5244](https://github.com/heygen-com/hyperframes/commit/d287e5244c1e6d9051642f94f368ef7a1e26bd34), [#2762](https://github.com/heygen-com/hyperframes/pull/2762)) - **Producer:** Installs with telemetry disabled no longer spawn `pmset` while building render events, and the parallel-drawElement router no longer pins a worker count on renders where its streaming path can't run (compositions over the streaming duration cap) ([b99c80389](https://github.com/heygen-com/hyperframes/commit/b99c8038983e2c0bb2545e8eaf5fcd7c4f9abe03)) - **Engine:** `gpu_renderer` telemetry reports a low-cardinality backend/vendor bucket rather than the raw driver string, and is attached to failed renders as well as successful ones ([4520cd240](https://github.com/heygen-com/hyperframes/commit/4520cd240b9a4ac20f77e6a2e8204866e549fd35)) - **Producer:** Validate distributed video metadata ([557d82b6a](https://github.com/heygen-com/hyperframes/commit/557d82b6a9547e403598713e2840c41736d35544), [#2839](https://github.com/heygen-com/hyperframes/pull/2839)) - **Studio:** Harden preview recovery ([c62bd4c45](https://github.com/heygen-com/hyperframes/commit/c62bd4c454d7a53aac39e03b10da8eeb2a93d77e)) - **Studio:** Improve preview loading reliability ([18b9acac1](https://github.com/heygen-com/hyperframes/commit/18b9acac12269899b0bfacb289d9bde3e1b065e4)) ## Docs & Examples - Clarify media treatment contracts ([12452a115](https://github.com/heygen-com/hyperframes/commit/12452a11569812003a067073c0497d69279b620d)) - Refine media treatment guides ([182862773](https://github.com/heygen-com/hyperframes/commit/182862773187dc01f08b2c29d2a3a5951afe5c5e)) - Document professional grading and media treatments ([1a2c30a79](https://github.com/heygen-com/hyperframes/commit/1a2c30a7994fc488685e9251a41e40eea2c3bcb2)) ## Catalog - **Registry:** Register device timeline synchronously ([2bb620517](https://github.com/heygen-com/hyperframes/commit/2bb620517749eefaa19e5fefbb2a85b9d6f538b8), [#2546](https://github.com/heygen-com/hyperframes/pull/2546)) ## Internal - **Studio:** Reuse player probe errors ([3af9a7df2](https://github.com/heygen-com/hyperframes/commit/3af9a7df2d687ec018f7d0705d25b5416c8dfa78)) - **Studio:** Mock composition thumbnails in smoke ([0faeb42f8](https://github.com/heygen-com/hyperframes/commit/0faeb42f86e20c5503e0827fa18b89050663bad7)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.77...v0.7.78). Studio's timeline now exposes expandable property lanes, track headers, precise keyframe retiming, and selection-safe editing across nested compositions. This release also makes stalled CLI download cleanup reliable on Windows and adds an opt-in prose-coverage floor to layout checks. ## Features - **Studio:** Add expanded keyframe lanes, track headers, retiming interactions, and nested-composition timeline support ([#2791](https://github.com/heygen-com/hyperframes/pull/2791)) - **Check:** Add the opt-in `proseCoverageFloor` layout rule ([#2834](https://github.com/heygen-com/hyperframes/pull/2834)) ## Fixes - **CLI:** Wait for stalled download pipelines to release temporary files before cleanup, fixing the Windows locked-file failure ([#2835](https://github.com/heygen-com/hyperframes/pull/2835)) - **Telemetry:** Send CLI feedback through the plain-event path instead of the PostHog survey API ([#2831](https://github.com/heygen-com/hyperframes/pull/2831)) ## Performance - **CI:** Distribute the two heaviest render fixtures and improve Docker layer reuse for producer-only changes ([#2825](https://github.com/heygen-com/hyperframes/pull/2825), [#2822](https://github.com/heygen-com/hyperframes/pull/2822)) ## Docs & Examples - **Send-to guide:** Clarify that enhance turns are free and rendering is the paid step ([#2827](https://github.com/heygen-com/hyperframes/pull/2827)) ## Internal - **CLI:** Separate telemetry delivery from event policy while preserving the queued flush and process-exit behavior ([#2344](https://github.com/heygen-com/hyperframes/pull/2344)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.76...v0.7.77). Plan v2 chunk materialization now recreates declared video directory skeletons even when a sparse chunk needs no frames, so inactive-video chunks render without downloading unused artifacts. Layout checks also improve rotation-pivot drift diagnostics. ## Fixes - **Producer:** Materialize declared video directories for sparse Plan v2 chunks ([ddb59d356](https://github.com/heygen-com/hyperframes/commit/ddb59d3567fc70d808f86ef8b5b531078e3df2d6), [#2823](https://github.com/heygen-com/hyperframes/pull/2823)) - **Check:** Improve elongated rotation-pivot drift detection and detached-connector diagnostics ([75ed99e1d](https://github.com/heygen-com/hyperframes/commit/75ed99e1d4f45015812575ff26c07efb0b253f21), [#2819](https://github.com/heygen-com/hyperframes/pull/2819)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.75...v0.7.76). Distributed capture now preflights `BeginFrame` support and falls back to screenshot capture when the browser cannot provide a healthy `BeginFrame` session. A targeted retry also recovers from `BeginFrame`-specific failures without masking unrelated errors. ## Fixes - **Producer:** Fall back from unhealthy distributed `BeginFrame` capture safely ([96cafb47c](https://github.com/heygen-com/hyperframes/commit/96cafb47c6c9850939c85e2cc76e578d3b6dbd1b), [#2821](https://github.com/heygen-com/hyperframes/pull/2821)) - **Regression:** Schedule the Plan v2 color fixture in regression shards ([51cbbe6fc](https://github.com/heygen-com/hyperframes/commit/51cbbe6fc93e025ee94fc73ad2b65afce8a35d3b), [#2820](https://github.com/heygen-com/hyperframes/pull/2820)) ## Internal - **Regression:** Compute the shard matrix from recorded fixture timings ([f67012eb9](https://github.com/heygen-com/hyperframes/commit/f67012eb9f6a953de90a3d7828979b56a3c96006), [#2815](https://github.com/heygen-com/hyperframes/pull/2815)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.74...v0.7.75). Distributed Plan v2 now handles extraction-cache sentinels and partial color metadata without corrupting chunk dependencies. Distributed cold starts also preserve live GSAP volume state, while GCP captures honor the effective `BeginFrame` boundary. ## Fixes - **Producer:** Handle partial color metadata and extraction sentinels in Plan v2 ([58869f087](https://github.com/heygen-com/hyperframes/commit/58869f0878e304fd39d564b93cc4a8b18e885b4e), [#2814](https://github.com/heygen-com/hyperframes/pull/2814)) - **GCP Cloud Run:** Enforce effective `BeginFrame` capture ([2a284a8e3](https://github.com/heygen-com/hyperframes/commit/2a284a8e3aca62100ec037c23c98706e7146aa14), [#2817](https://github.com/heygen-com/hyperframes/pull/2817)) - **Core:** Avoid live volume probes during render ([477defc7e](https://github.com/heygen-com/hyperframes/commit/477defc7e7397684c2def4459b3981f62a06816d), [#2816](https://github.com/heygen-com/hyperframes/pull/2816)) ## Performance - **Producer:** Compute regression PSNR in one ffmpeg pass ([98a4cd70f](https://github.com/heygen-com/hyperframes/commit/98a4cd70fd2df38f300a2e19c86f75cd8dd93895), [#2813](https://github.com/heygen-com/hyperframes/pull/2813)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.73...v0.7.74). Distributed Plan v2 publishers now stream content-addressed artifacts directly to S3 and GCS, while oversized-plan diagnostics identify the dominant files and phases. Rendering is more resilient through atomic media downloads, typed extraction retries, and frame-coverage accounting aligned with FFmpeg's CFR rounding. ## Features - **Studio:** Add professional grading controls ([20ef48abc](https://github.com/heygen-com/hyperframes/commit/20ef48abcb190e3e9ef132d1b1dd711201d3c58b)) - **CLI:** Expose agent-native color grading ([6d5961b80](https://github.com/heygen-com/hyperframes/commit/6d5961b8024fe70f87879f271dd91149717d41a8)) - **Gcp Cloud Run:** Publish plan v2 directly to GCS ([74d7bfde4](https://github.com/heygen-com/hyperframes/commit/74d7bfde4870bbc1c6c4471cfc004964807df3e7)) - **AWS Lambda:** Publish plan v2 directly to S3 ([09998789b](https://github.com/heygen-com/hyperframes/commit/09998789b5ff012adcd97e9fb33537e473f1cc52)) - **Core:** Add professional color grading controls ([f99fc4e56](https://github.com/heygen-com/hyperframes/commit/f99fc4e5686239f5ef56d4eb6083bee796ceeddc)) ## Fixes - **Producer:** Align frame coverage with extraction rounding ([f0c2c7d23](https://github.com/heygen-com/hyperframes/commit/f0c2c7d23384de589f54c11ff093f128c9a39e56)) - **Render:** Aggregate extraction launch failures ([33ca1de06](https://github.com/heygen-com/hyperframes/commit/33ca1de0631be66bfa5c591a231256c69667226e)) - **Producer:** Narrow extraction error shapes honestly ([c01e1a5f9](https://github.com/heygen-com/hyperframes/commit/c01e1a5f96839e1a2650516ceb3745ed7b28517f)) - **Producer:** Type video extraction failures ([9b63646c8](https://github.com/heygen-com/hyperframes/commit/9b63646c8aa036b786513137f2efcdf637ad432c)) - **Engine:** Block future-use IPv4 downloads ([2e84faeb2](https://github.com/heygen-com/hyperframes/commit/2e84faeb28ff8689da212a5b7db805f3b454d4d9)) - **Engine:** Close downloader trust-boundary gaps ([4b81f7858](https://github.com/heygen-com/hyperframes/commit/4b81f785868362fbb5c4bd7f1c5be24b2ccb7f94)) - **Engine:** Narrow network error shapes honestly ([5ce2eb879](https://github.com/heygen-com/hyperframes/commit/5ce2eb879db1bb2b3dd740bcd7e9abf8adaa3230)) - **Engine:** Make video downloads atomic and retry transient failures ([c01f6b446](https://github.com/heygen-com/hyperframes/commit/c01f6b446829f15c2c18dfd43da7013b412b2bf7)) - **Producer:** Reset distributed plan scratch state ([ebb02cafe](https://github.com/heygen-com/hyperframes/commit/ebb02cafe7e1d1e067bc37c00fd3613e20230ee5)) - **Producer:** Attribute and stop oversized plans early ([d699cbf01](https://github.com/heygen-com/hyperframes/commit/d699cbf014ac2232e3d2cec5c06c9d74103fa61f)) - **Studio:** Align professional grading contracts ([794930a07](https://github.com/heygen-com/hyperframes/commit/794930a07568deddd55ba0d891b68bec739641fa)) - **Studio:** Clear stale color scopes ([c1fcf7534](https://github.com/heygen-com/hyperframes/commit/c1fcf7534f730f5677b0d5201e6af6d17bd19cb0)) - **Core:** Register media analyzer subpath ([9b504045f](https://github.com/heygen-com/hyperframes/commit/9b504045f7cfd1a13e7b4d128cfdfe2e0631017f)) - **CLI:** Address media treatment review findings ([c1dde2898](https://github.com/heygen-com/hyperframes/commit/c1dde2898076b4d9b71b81d86cdf0f419350d93f)) - **Core:** Align secondary mask contracts ([e446de602](https://github.com/heygen-com/hyperframes/commit/e446de60234b837672100334fd169d2f2b547218)) - **Core:** Preserve curve compiler subpath exports ([9a515858c](https://github.com/heygen-com/hyperframes/commit/9a515858c9c65b749f1a976b3a72c5f4868a8256)) - **Core:** Address grading review findings ([1ffef9a26](https://github.com/heygen-com/hyperframes/commit/1ffef9a262ca13ada04d53d93d6f8bfbbfa83f26)) ## Internal - **CLI:** Harden media treatment parity ([20f4bde46](https://github.com/heygen-com/hyperframes/commit/20f4bde46a8862584470f895c8a6a4bf69716b2a)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.72...v0.7.73). Distributed rendering now has a versioned Plan v2 contract with integrity-checked, content-addressed artifacts and a remote publisher seam for object-storage-backed workers, while retaining Plan v1 compatibility. This release also improves audio duration accuracy, diagnostics, deterministic media treatments, and animation tooling. ## Features - **AWS Lambda:** Support plan protocol v2 ([5bf61d6df](https://github.com/heygen-com/hyperframes/commit/5bf61d6df0694c3077ecc7e84cd9d72f2029a5e6), [#2789](https://github.com/heygen-com/hyperframes/pull/2789)) - **Producer:** Version distributed plan protocol ([f9f00b0ef](https://github.com/heygen-com/hyperframes/commit/f9f00b0efc2d1006967d5b2e0009ea3c3f6ed2e6), [#2777](https://github.com/heygen-com/hyperframes/pull/2777)) - **Lint:** Dense motion re-sampling for content_overlap ([72e2f08f1](https://github.com/heygen-com/hyperframes/commit/72e2f08f15ceec105eb2bca6e9e35b8020e040be), [#2746](https://github.com/heygen-com/hyperframes/pull/2746)) - **Studio:** Add keyframe ease editor ([c253dec23](https://github.com/heygen-com/hyperframes/commit/c253dec23b0a6f1ccfe49c17371fdc9823f73b4c)) - **Core:** Add deterministic keyframe ease runtime ([5acbf240c](https://github.com/heygen-com/hyperframes/commit/5acbf240cbab38594d06b59b9ef7f2a4b37d31b7)) - **Studio:** Add media treatment inspector ([39c2341c4](https://github.com/heygen-com/hyperframes/commit/39c2341c4d1edf52a00fb8db4a49553c739860cc)) - **CLI:** Add agent-first media treatment tools ([4582881d0](https://github.com/heygen-com/hyperframes/commit/4582881d002c361afff59cc1c74ae072a50e17f7)) - **Lint:** Add off_pivot_rotation hub-referenced layout check ([e710a1686](https://github.com/heygen-com/hyperframes/commit/e710a1686f2442b460ea4973dca0be97c81ef184), [#2744](https://github.com/heygen-com/hyperframes/pull/2744)) - **Runtime:** Render media treatments deterministically ([944640c32](https://github.com/heygen-com/hyperframes/commit/944640c3283d604383fd437fcca8c63941d8e3d7)) ## Fixes - **Gcp Cloud Run:** Normalize v2 integrity codes ([0499a5cbc](https://github.com/heygen-com/hyperframes/commit/0499a5cbcb298c7dc4352a2d672b9e18c9db1d81), [#2790](https://github.com/heygen-com/hyperframes/pull/2790)) - **Producer:** Document read-only plan hashing ([c6fdd9c01](https://github.com/heygen-com/hyperframes/commit/c6fdd9c0154aacef9e16ab9c89d3249d0ef5d356), [#2788](https://github.com/heygen-com/hyperframes/pull/2788)) - **Producer:** Use portable audio padding filter ([3b9552ef9](https://github.com/heygen-com/hyperframes/commit/3b9552ef9db36b133485e4ce805892346e0b9006)) - **Producer:** Normalize padded audio on sample timeline ([4b116b988](https://github.com/heygen-com/hyperframes/commit/4b116b98802c05f0eeb541878806692eea975541)) - **Engine:** Stop mux at shortest normalized stream ([63bc525ca](https://github.com/heygen-com/hyperframes/commit/63bc525ca90b08356d50ebb41d4e15581c9d3470)) - **Producer:** Preserve normalized audio mux duration ([532461599](https://github.com/heygen-com/hyperframes/commit/532461599b7518f4609002cdb314ff2ce9f3a70f)) - **Render:** Cap final mux to video duration ([19258ea5b](https://github.com/heygen-com/hyperframes/commit/19258ea5ba47067e9d5756b122051c467ece0b04)) - **Render:** Cap trimmed audio container duration ([afc4e96bb](https://github.com/heygen-com/hyperframes/commit/afc4e96bbed21dbcd29544a6be95d35db7dd4eed)) - **Render:** Scope M4A priming preservation to trims ([9289551e9](https://github.com/heygen-com/hyperframes/commit/9289551e98958f006ec14af8ae9058096a4932fe)) - **Render:** Preserve normalized M4A edit timing ([59c56d325](https://github.com/heygen-com/hyperframes/commit/59c56d325723bbcb7c54315023aedeb72b376cd8)) - **Render:** Trim AAC packet padding exactly ([113a4985b](https://github.com/heygen-com/hyperframes/commit/113a4985b51bc1d77babe7113d6c96bbe46d41bf)) - **Engine:** Preserve bounded ffprobe diagnostics ([8c5077068](https://github.com/heygen-com/hyperframes/commit/8c50770684bc87ca67592c45d4101e3c029193d2), [#2772](https://github.com/heygen-com/hyperframes/pull/2772)) - **Audio:** Preserve causes and use portable padding ([37b88688e](https://github.com/heygen-com/hyperframes/commit/37b88688e7ae854e377c47fe3d9560ab0c930161), [#2769](https://github.com/heygen-com/hyperframes/pull/2769)) - **Parsers:** Preserve duration-authored keyframe timing ([4bfbd89d6](https://github.com/heygen-com/hyperframes/commit/4bfbd89d633d5fd227023643db62d2a566984edb)) - **Parsers:** Preserve authored keyframe intent ([d84e999f7](https://github.com/heygen-com/hyperframes/commit/d84e999f728e25cee15a71995805a52d0a7907c4)) - **Studio:** Preserve composed media treatments ([d5c7d3ee1](https://github.com/heygen-com/hyperframes/commit/d5c7d3ee16c2db53b91c66353d4f6387fe23e920)) - **Lint:** Drop false media_in_subcomposition rule ([e7f9918d2](https://github.com/heygen-com/hyperframes/commit/e7f9918d21f9fa57f1799c7b3ba38963cfcb52f1), [#2765](https://github.com/heygen-com/hyperframes/pull/2765)) ## Catalog - **Registry:** Add media treatment overlays ([b0d3164dd](https://github.com/heygen-com/hyperframes/commit/b0d3164ddb6177c6b31634f02a908fdae607850f)) ## Internal - **Producer:** Add remote-ready plan v2 publisher ([07f9a3de9](https://github.com/heygen-com/hyperframes/commit/07f9a3de954d663e61d0e7da233fe8d33a06a5f9), [#2792](https://github.com/heygen-com/hyperframes/pull/2792)) - **Producer:** Remove stale audio concat remnants ([3ef194234](https://github.com/heygen-com/hyperframes/commit/3ef194234e6104664b8b1902ae916dd7480c3617)) - **Render:** Cover duration-capped audio mux ([20188d637](https://github.com/heygen-com/hyperframes/commit/20188d637b51bed607593592469863ba189ea4ec)) - **CLI:** Move render module collection outside hooks ([3b3d4f559](https://github.com/heygen-com/hyperframes/commit/3b3d4f559ca0b97a4d48d5dbaef10c296407c9cb), [#2780](https://github.com/heygen-com/hyperframes/pull/2780)) - **Studio:** Simplify preview workspace layout ([bf47416e1](https://github.com/heygen-com/hyperframes/commit/bf47416e144bbd45c41375f357b229215aa11ccb)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.71...v0.7.72). Finite compositions can now use GSAP `repeat: -1` loops when an explicit root `data-duration` bounds the export, while unbounded infinite timelines remain blocking. Preview also serves external symlink assets correctly, and this release adds media-treatment capabilities plus performance and stability improvements for data-driven caption templates. ## Features - **Core:** Define media treatment capabilities ([70213c5a8](https://github.com/heygen-com/hyperframes/commit/70213c5a8526b12c8b26f01b8288d78bb9edc917)) ## Fixes - **Lint:** Allow bounded GSAP infinite repeats ([adb149b86](https://github.com/heygen-com/hyperframes/commit/adb149b86939e61bb3fce91cb8d0e5530f7bd29c), [#2763](https://github.com/heygen-com/hyperframes/pull/2763)) - **Preview:** Serve external symlink assets ([7778c093b](https://github.com/heygen-com/hyperframes/commit/7778c093b6288756cf5e27311828e6049e7c85c3), [#2764](https://github.com/heygen-com/hyperframes/pull/2764)) - **Caption Weight Shift:** Remove O(n^2) redundant hide-all-others loop ([5af6203ae](https://github.com/heygen-com/hyperframes/commit/5af6203ae7fcd506511ca5683a9097d666c4a63e)) - **Caption Editorial Emphasis / Emoji Pop:** Remove O(n²) redundant hide-all-others loop ([18de2b1f1](https://github.com/heygen-com/hyperframes/commit/18de2b1f1de8062a79ae7aa6fa4796e320fe6131)) ## Catalog - **Registry:** Liberal emoji-pop brand colors, weight-shift fit fixes, 8192 clamp ([8bf939043](https://github.com/heygen-com/hyperframes/commit/8bf939043fb44e05f6dd7caba81822ac5ef18334)) - **Registry:** Reject non-numeric caption-data versions; boot fetch never clobbers a manual attach ([5c2981d06](https://github.com/heygen-com/hyperframes/commit/5c2981d066480000d623e4d023e9cf918b2772e3)) - **Registry:** Encapsulate caption template runtimes in IIFEs ([e2846eb7c](https://github.com/heygen-com/hyperframes/commit/e2846eb7cc81821f7fc21a9c4dccdd85c7ef3429)) - **Registry:** Clear brand CSS custom properties on unbranded re-attach; remove dead italic path ([4f6994719](https://github.com/heygen-com/hyperframes/commit/4f6994719196e72dc01ebe8f60d869e064ec7685)) - **Registry:** Make caption-editorial-emphasis data-driven with emphasis heuristic ([ed8973952](https://github.com/heygen-com/hyperframes/commit/ed8973952dda2aa43931e0ffa05b3fc6ba0cb1cb)) - **Registry:** Make caption-highlight data-driven with automatic grouping ([7d4e71d10](https://github.com/heygen-com/hyperframes/commit/7d4e71d10b617b858fde2e764e15d530e9ffdf19)) - **Registry:** Make caption-emoji-pop data-driven with generic emoji lexicon ([392a9d251](https://github.com/heygen-com/hyperframes/commit/392a9d251a4feadbf7703ba4f9157c1857c7a59b)) - **Registry:** Force GSAP render at attach — seek(0) is a no-op on a fresh timeline ([020c8986f](https://github.com/heygen-com/hyperframes/commit/020c8986f46f795757203900cd251ad551ccc620)) - **Registry:** Make caption-pill-karaoke data-driven via caption-data runtime ([08620b75d](https://github.com/heygen-com/hyperframes/commit/08620b75df5275739fd9b0b8f480527fdc1d9a98)) - **Registry:** Make caption-weight-shift data-driven via caption-data runtime ([c67e9dc1f](https://github.com/heygen-com/hyperframes/commit/c67e9dc1f843122225468ce63a67c57f70c2bba2)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.70...v0.7.71). Multi-worker renders using experimental fast capture (`--experimental-fast-capture`) now self-verify their frames on the disk path and automatically fall back to screenshot capture when GPU or memory pressure corrupts output — previously that corruption (e.g. a worker's frames displaced into vertical strips) could ship silently. ## Fixes - **Engine/Producer:** Parallel and sequential disk-path drawElement capture now verify sampled frames against pre-injection ground truth and screenshot-retry on a breach — closing the gap where `--experimental-fast-capture --workers N` shipped compositor-damaged frames with no error (PRINFRA-352) ([060b6f8ae](https://github.com/heygen-com/hyperframes/commit/060b6f8ae53e8ae243d8e2c2c3afd690dbe7f99c), [ec791e91d](https://github.com/heygen-com/hyperframes/commit/ec791e91d97c0070502c4ad208923d4f98005846), [9fc1c2f15](https://github.com/heygen-com/hyperframes/commit/9fc1c2f15990fc44f50533362bec2f075aa1d53d), [c85cfae8f](https://github.com/heygen-com/hyperframes/commit/c85cfae8fa97229e9c4f4d7217cf08b4bc859f3d)) - **Producer:** Close the orphaned probe session before a verify-triggered retry so the probe Chrome process isn't leaked under the GPU/memory pressure the retry is recovering from ([b8e101547](https://github.com/heygen-com/hyperframes/commit/b8e10154762f5a0fe71fb4a6a9f3d472e9bf99ec)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.69...v0.7.70). HyperFrames now catches rotation pivot drift during layout audits, helping surface off-center spinners before render. This release also preserves editable \ line breaks in SDK text edits, strengthens producer font, probe, and worker-memory handling, and improves preflight and pre-commit feedback. ## Features - **Lint:** Add rotation_pivot_drift layout check ([222aec45a](https://github.com/heygen-com/hyperframes/commit/222aec45ab0553c014dddccd563e273affd9b71a), [#2741](https://github.com/heygen-com/hyperframes/pull/2741)) ## Fixes - **Sdk:** Keep \ line breaks editable and uncorrupted in setText ([dd7378bbd](https://github.com/heygen-com/hyperframes/commit/dd7378bbd934ecc0da85c1edfae7946ac7e2271a), [#2742](https://github.com/heygen-com/hyperframes/pull/2742)) - **Lint:** Address render preflight review feedback ([7a294f195](https://github.com/heygen-com/hyperframes/commit/7a294f19562928036dae20d5e73c2637d1e19060), [#2739](https://github.com/heygen-com/hyperframes/pull/2739)) - **Producer:** Resolve residual font and probe failures ([948264d6b](https://github.com/heygen-com/hyperframes/commit/948264d6b205cadd191e04f36af332ed4a6bb233), [#2738](https://github.com/heygen-com/hyperframes/pull/2738)) - **Hooks:** Pre-commit gate denies commit instead of ending the turn ([97ec7db5c](https://github.com/heygen-com/hyperframes/commit/97ec7db5cccd14a47fcfbe534d269dfea7a0d37d)) - **Producer:** Emit heap advisory at orchestrator, lock message + telemetry props with tests ([c6462a0a2](https://github.com/heygen-com/hyperframes/commit/c6462a0a225772c7a357afd5fe2f5c9a39bca238)) - **Engine:** Realistic worker memory budget + sizing/feedback telemetry ([12e599a6b](https://github.com/heygen-com/hyperframes/commit/12e599a6bac7dea5feec59c71dd0e5aeecab354e)) [View the full commit range](https://github.com/heygen-com/hyperframes/compare/v0.7.68...v0.7.69). Bug-fix release. The video coverage gate no longer aborts renders of looping short videos, and composition-level CSS with native CSS Nesting now applies to nested selectors instead of being silently ignored. ## Fixes - **Producer:** Credit looping short videos in coverage gate (#2665). A short clip in a longer slot with `loop` set delivers all its source frames once and reuses them per repeat; the gate now measures against source-source instead of unique-source-vs-slot, so a 3s looping clip in a 10s slot no longer aborts at 30% coverage ([a637f394e](https://github.com/heygen-com/hyperframes/commit/a637f394ee900c64c8f2e1ee78cf1e0ce17b8739), [#2732](https://github.com/heygen-com/hyperframes/pull/2732)) - **Core:** Preserve nested-rule selectors in composition CSS scoping (#2721). Native CSS Nesting (Chrome 112+ / Firefox 117+ / Safari 16.5+) now works inside a composition's `