---
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.78"
  description="Released - 2026-07-28"
  tags={["Release", "CLI", "Registry", "Producer"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.77"
  description="Released - 2026-07-28"
  tags={["Release", "Studio", "CLI", "Check"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.76"
  description="Released - 2026-07-27"
  tags={["Release", "Check", "Producer"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.75"
  description="Released - 2026-07-27"
  tags={["Release", "Producer"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.74"
  description="Released - 2026-07-27"
  tags={["Release", "Producer", "GCP Cloud Run", "Core"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.73"
  description="Released - 2026-07-26"
  tags={["Release", "Producer", "Render", "Engine"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.72"
  description="Released - 2026-07-26"
  tags={["Release", "Producer", "Gcp Cloud Run", "AWS Lambda"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.71"
  description="Released - 2026-07-24"
  tags={["Release", "Lint", "Preview", "Core"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.70"
  description="Released - 2026-07-24"
  tags={["Release", "Producer", "Engine"]}
>
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).
</Update>

<Update
  label="HyperFrames v0.7.69"
  description="Released - 2026-07-23"
  tags={["Release", "Sdk", "Lint", "Producer"]}
>
HyperFrames now catches rotation pivot drift during layout audits, helping surface off-center spinners before render. This release also preserves editable \<br\> 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 \<br\> 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).
</Update>

<Update
  label="HyperFrames v0.7.68"
  description="Released - 2026-07-22"
  tags={["Release", "Core", "Producer", "Skills"]}
>
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 `<style>` block; the scoper no longer re-applies the composition selector to nested rules, so `[data-composition-id="foo"] { .title { … } }` correctly matches `.title` inside the composition ([1e2c7d673](https://github.com/heygen-com/hyperframes/commit/1e2c7d673fc0fe8da9a822bb7a8744f84f44d9d4), [#2733](https://github.com/heygen-com/hyperframes/pull/2733))

## Docs & Examples

- **Skills:** Make captions non-optional in changelog-video ([807078c7c](https://github.com/heygen-com/hyperframes/commit/807078c7cde9d5c8403588722d1cd9397c513a0d), [#2729](https://github.com/heygen-com/hyperframes/pull/2729))
- **Changelog:** Weekly digest 2026-07-13–2026-07-20 ([2e97e5b1e](https://github.com/heygen-com/hyperframes/commit/2e97e5b1ef78c18c31b042b082bb7cc7cc44ac1c), [#2664](https://github.com/heygen-com/hyperframes/pull/2664))

## Other Changes

- Revert "feat(producer): renderStretch to re-time short compositions across longer scenes (#2676)" ([69446e772](https://github.com/heygen-com/hyperframes/commit/69446e77265a420c4f24a0395682212793eb323f), [#2730](https://github.com/heygen-com/hyperframes/pull/2730))

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

<Update
  label="HyperFrames v0.7.67"
  description="Released - 2026-07-21"
  tags={["Release", "Producer", "Core", "Skills"]}
>
Distributed renders now carry runtime media variables through planning and honor runtime durations during extraction and volume automation, preventing placeholder metadata from clipping full-length audio. This release also adds RenderStretch for longer scenes, applies position edits to SVG elements, and warns when live map viewports are captured.

## Features

- **Producer:** RenderStretch to re-time short compositions across longer scenes ([e786b78b3](https://github.com/heygen-com/hyperframes/commit/e786b78b3311d697e95269ec8fc21a4159af909d), [#2676](https://github.com/heygen-com/hyperframes/pull/2676))
- **Engine:** Warn when a live map viewport is detected at capture init ([30ca51c61](https://github.com/heygen-com/hyperframes/commit/30ca51c615fce20f5266278cdf5f4c97fd691c88))

## Fixes

- **Producer:** Preserve runtime audio variables in distributed plans ([465c9e764](https://github.com/heygen-com/hyperframes/commit/465c9e764138b94faa48badbee468eb42bd1a39d), [#2725](https://github.com/heygen-com/hyperframes/pull/2725))
- **Core:** Apply position edits to SVG elements, not just HTML ([63539a0cd](https://github.com/heygen-com/hyperframes/commit/63539a0cdef75597d2e301736740cf3bdd905596), [#2724](https://github.com/heygen-com/hyperframes/pull/2724))
- **Skills:** Anonymize CLI feedback repro guidance ([78ab9bc88](https://github.com/heygen-com/hyperframes/commit/78ab9bc889908e412e806d80f4ffbd938efc7a78))

## Internal

- **Skills:** Package Codex plugin upload ([696cbdbbd](https://github.com/heygen-com/hyperframes/commit/696cbdbbd0e5c83faf72c767126d4a153110f130), [#2668](https://github.com/heygen-com/hyperframes/pull/2668))

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

<Update
  label="HyperFrames v0.7.66"
  description="Released - 2026-07-21"
  tags={["Release", "Studio", "Skills", "Engine"]}
>
Studio preview audio now plays at playback speeds above 1x instead of being silently muted, and the mute control stays usable at every speed. This release also fixes an engine worker frame-stride false-positive and lands a c2v skills mining pass with new blueprints and rules.

## Features

- **Skills:** C2v mining pass — 7 new blueprints, 10 new rules, compacted recipe corpus ([853256403](https://github.com/heygen-com/hyperframes/commit/853256403b3ffd3dc0b616785ab876b4c0f04a89), [#2680](https://github.com/heygen-com/hyperframes/pull/2680))

## Fixes

- **Studio:** Play preview audio at speeds above 1x ([07965e9fe](https://github.com/heygen-com/hyperframes/commit/07965e9fe93fc7b53dfe7c933f8abd0c4b10c86d), [#2691](https://github.com/heygen-com/hyperframes/pull/2691))
- **Engine:** Carry frameStride onto WorkerResult (fixes interleaved worker false-positive) ([4f53dd4f2](https://github.com/heygen-com/hyperframes/commit/4f53dd4f2cd607de17b2d2329746fa5da0cadeaa))

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

<Update
  label="HyperFrames v0.7.65"
  description="Released - 2026-07-21"
  tags={["Release", "Studio", "Skills", "Guides"]}
>
Rendering now fails fast on unbounded timeline durations instead of exhausting static-frame analysis, and lint guidance prevents unsafe GSAP repeat calculations. This release also hardens Studio keyframe retiming, recursive sub-composition inlining, CLI failure telemetry, and package/runtime contracts.

## Fixes

- **Renderer:** Reject unbounded durations before static-frame analysis can allocate impossible frame sets; regular and distributed paths now return typed duration errors ([344d9c0a8](https://github.com/heygen-com/hyperframes/commit/344d9c0a87aeba01beca618e21d2469921506cdf))
- **Studio:** Harden flat keyframe retiming ([270179d94](https://github.com/heygen-com/hyperframes/commit/270179d94b3ca3b82f61655b354855187f0d210c))
- **Studio:** Retime flat tween keyframe diamonds ([f25a13692](https://github.com/heygen-com/hyperframes/commit/f25a1369279c99081c56966b14991649138bc035))
- **CLI:** Await error telemetry before finalization ([a9338a4e0](https://github.com/heygen-com/hyperframes/commit/a9338a4e0f91b8482fe32bef50018209c29ce031))
- **CLI:** Report command failures once ([73d3b4e1f](https://github.com/heygen-com/hyperframes/commit/73d3b4e1f491e5211a960bac86fbb674909be7ad))
- **CLI:** Complete process lifecycle migration ([619406a23](https://github.com/heygen-com/hyperframes/commit/619406a23b061bf659d107f83beec4eada6ff086))
- **CLI:** Keep post-render exit reset root-owned ([e0bda7a17](https://github.com/heygen-com/hyperframes/commit/e0bda7a17111753f76b7e073d654be802c06c129))
- **Lint:** Recognize compiler-derived data-end as legitimate ([ac9f46310](https://github.com/heygen-com/hyperframes/commit/ac9f463108531d28eee496bd837aab542eb9e409))
- Recursive sub-composition inlining for depth-3+ nesting ([d21883fe0](https://github.com/heygen-com/hyperframes/commit/d21883fe05a5819e910d4747683dc008a0ab5147), [#2660](https://github.com/heygen-com/hyperframes/pull/2660))
- **Core:** Install runtime bridge after transport setup ([735128a61](https://github.com/heygen-com/hyperframes/commit/735128a61a152267a00b99defbd290f489482cbc), [#2558](https://github.com/heygen-com/hyperframes/pull/2558))
- **Cloudrun:** Publish adapter contract ([942db16fc](https://github.com/heygen-com/hyperframes/commit/942db16fcda863d6047a95b82cbfe90603d464e7))
- **Parsers:** Mark node-only subpaths ([634cd719a](https://github.com/heygen-com/hyperframes/commit/634cd719a26742ae92a33c38348da4d8fd37fc52))

## Docs & Examples

- **Skills:** Add pre-build gate to changelog-video SKILL.md ([7d312bd17](https://github.com/heygen-com/hyperframes/commit/7d312bd170baa6fb1d2c247e14fef7c4d1022279))
- **Guides:** Publish the Send-to guide in nav + llms.txt so agents can discover it ([911b332bb](https://github.com/heygen-com/hyperframes/commit/911b332bb2131f1b3fc4abbea563bf0c70d165c4), [#2667](https://github.com/heygen-com/hyperframes/pull/2667))

## Catalog

- **Skills:** Cut per-run context cost — route-once router, packet-dispatched workers, catalog splits ([6ad738b58](https://github.com/heygen-com/hyperframes/commit/6ad738b580adf157393fde02351af64669c9fbc5), [#2618](https://github.com/heygen-com/hyperframes/pull/2618))

## Internal

- Align distributed duration assertion ([52da8d3cd](https://github.com/heygen-com/hyperframes/commit/52da8d3cdb6e2a5645fdb67c7278ad25b2009c52))
- **Repo:** Resolve changed-code audit ([ab8b50afd](https://github.com/heygen-com/hyperframes/commit/ab8b50afd735ac495fa7b02e4d61f8d525a0c222))
- **Engine:** Isolate peer abort regression ([a03d40ef4](https://github.com/heygen-com/hyperframes/commit/a03d40ef4cd1f68f0a80888cfb2329f0bcdaf341))
- **CLI:** Decompose render phases ([3222f1f31](https://github.com/heygen-com/hyperframes/commit/3222f1f31d9142a0275de5ec1624d876c915926f))
- **CLI:** Align timeout failure with result contract ([00b88abeb](https://github.com/heygen-com/hyperframes/commit/00b88abeb7d478c474d1486aefc7d56782c27508))
- **CLI:** Centralize process lifecycle ([3aa240474](https://github.com/heygen-com/hyperframes/commit/3aa2404747f41382f4413a53b927e04a327d5322))
- Rerun regression checks after PR base edits ([6b4df032f](https://github.com/heygen-com/hyperframes/commit/6b4df032fe12dc8979501bb23906b73f5a8a05f0), [#2659](https://github.com/heygen-com/hyperframes/pull/2659))
- **Repo:** Execute packed subpaths ([3454a80eb](https://github.com/heygen-com/hyperframes/commit/3454a80eb2a27e6154cc7306e889aec416c5c4d2))
- **Repo:** Centralize package subpaths ([8d9d9c016](https://github.com/heygen-com/hyperframes/commit/8d9d9c016e3d022bc0c5d2ae46bb186c9f1b183a))

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

<Update
  label="HyperFrames v0.7.64"
  description="Released - 2026-07-18"
  tags={["Release", "Studio", "Lint", "Core"]}
>
Studio editing is more predictable: multi-selection drags now keep composition positions in sync,
and Acorn-based atomic cuts stay isolated from Recast behind explicit operation-family gates.
Preview and render compilation now share a semantic-parity contract, while local `.scratch` files
no longer pollute lint runs.

## Fixes

- **Studio:** Keep composition multi-drag positions in sync ([f7911d10b](https://github.com/heygen-com/hyperframes/commit/f7911d10b0a7deac6fe4630947b53434d237ad21), [#2629](https://github.com/heygen-com/hyperframes/pull/2629))
- **Lint:** Ignore local .scratch directories in oxlint ([452e9074f](https://github.com/heygen-com/hyperframes/commit/452e9074f413677b0040c7ea231dacf3f0470c0e), [#2624](https://github.com/heygen-com/hyperframes/pull/2624))
- **Studio:** Keep atomic Acorn splits Recast-free ([8dd7e3dfc](https://github.com/heygen-com/hyperframes/commit/8dd7e3dfc57dd1f44f50818cd9eea5225edd0ec0))
- **Studio:** Read writer environment explicitly ([022e260ac](https://github.com/heygen-com/hyperframes/commit/022e260ac3096fd4826e14e1924aba2cfd1a84c6))
- **Studio:** Select writer for atomic cuts ([710a8f1db](https://github.com/heygen-com/hyperframes/commit/710a8f1db2568b078a894ccfde87a07aefcecab8))

## Internal

- **Core:** Own edit protocol contract ([562544f68](https://github.com/heygen-com/hyperframes/commit/562544f68de4f769cdb1faac633b7c8341dbd0fb))
- **Compiler:** Enforce preview render parity ([f0956e594](https://github.com/heygen-com/hyperframes/commit/f0956e59447de4bf1f02fcc3f765ac8461edd00b))
- **Studio:** Gate SDK operation families ([38c2d0693](https://github.com/heygen-com/hyperframes/commit/38c2d069333e0d6deae746de970539e8a4d94a5d))
- **Studio:** Gate Acorn writer migration ([43788c6dd](https://github.com/heygen-com/hyperframes/commit/43788c6dda35badd9333f53a91c5e88f56d502be))

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

<Update
  label="HyperFrames v0.7.63"
  description="Released - 2026-07-18"
  tags={["Release", "Media Use"]}
>
Media Use now releases incomplete asset reservations when downloads, cache imports, or LUT
generation fail, preventing zero-byte placeholders from being mistaken for valid media. Missing
HeyGen CLI guidance now points to the official setup docs instead of embedding pipe-to-shell
installer text.

## Fixes

- **Media Use:** Clean failed asset reservations ([49113eb08](https://github.com/heygen-com/hyperframes/commit/49113eb08487b2c53b7404bc26c5e419244ae97f), [#2627](https://github.com/heygen-com/hyperframes/pull/2627))

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

<Update
  label="HyperFrames v0.7.62"
  description="Released - 2026-07-18"
  tags={["Release", "Studio", "Producer", "CLI"]}
>
Studio now plays alpha-channel authoring proxies reliably through Chromium-compatible VP8, while the render pipeline gains stricter serializable request validation and immutable capture planning that preserves OOM retries. Cloud uploads are size-aware, timeline and sidecar recovery are more robust, and capture failures avoid duplicate compositing and pathological parsing.

## Features

- **CLI:** Make cloud archives size-aware ([e73304fb0](https://github.com/heygen-com/hyperframes/commit/e73304fb0e94d2272839e55a0bcc4dd00210db34))

## Fixes

- **Studio:** Preserve alpha proxy playback ([e64a22893](https://github.com/heygen-com/hyperframes/commit/e64a22893a161823c2b9f03522cf9d1246e96a9f), [#2625](https://github.com/heygen-com/hyperframes/pull/2625))
- **Producer:** Retain streaming retry after OOM ([a7d6f7f7d](https://github.com/heygen-com/hyperframes/commit/a7d6f7f7dc4ed03f9d3b71f83551be01fbc3ac1c))
- **Producer:** Preserve render request config contracts ([1a66c881b](https://github.com/heygen-com/hyperframes/commit/1a66c881b8f83932ebbf2f9c09b42f2f63de163e))
- **Producer:** Validate render request engine snapshots ([fc4e9a6c0](https://github.com/heygen-com/hyperframes/commit/fc4e9a6c0ed8aa0eee054edce87e521c7ff3cafe))
- **Producer:** Omit absent render request options ([25dd4cc8c](https://github.com/heygen-com/hyperframes/commit/25dd4cc8c013c43de7e562465b2b7ddacd863d89))
- **Producer:** Validate render request wire contracts ([c251db02d](https://github.com/heygen-com/hyperframes/commit/c251db02d089c681a0739386d95489317da3b6ed))
- **Studio:** Ignore stale failed sidecars for existing renders ([2577aaffe](https://github.com/heygen-com/hyperframes/commit/2577aaffeb9703be3d9dd17c0c5fb3c45b6e32e7), [#2621](https://github.com/heygen-com/hyperframes/pull/2621))
- **Producer:** Credit held video tails in coverage gate ([209784ab2](https://github.com/heygen-com/hyperframes/commit/209784ab27801b70c9d8e636e4eaf2e3dc796d2b), [#2606](https://github.com/heygen-com/hyperframes/pull/2606))
- **Studio:** Harden composition timeline reliability ([2b65b4efc](https://github.com/heygen-com/hyperframes/commit/2b65b4efcef9f69ab294aa608b54a89a600ab76f), [#2615](https://github.com/heygen-com/hyperframes/pull/2615))
- **Engine:** Stop compositing phantom duplicates on captureBeyondViewport ([2be8a62c0](https://github.com/heygen-com/hyperframes/commit/2be8a62c0009e61aeae7f713773013afd9b6f173), [#2607](https://github.com/heygen-com/hyperframes/pull/2607))
- **Engine:** Avoid polynomial capture failure regex ([5da9f7ab3](https://github.com/heygen-com/hyperframes/commit/5da9f7ab3d53d7b5b95f216d63532f20cb6036dd))

## Docs & Examples

- **Guides:** Resolve the Send-to fidelity contradiction (preserve substance, adapt form) ([7acabbcde](https://github.com/heygen-com/hyperframes/commit/7acabbcdeb9b55ce9f75c7d35d7f281273a99f29), [#2620](https://github.com/heygen-com/hyperframes/pull/2620))
- **Guides:** Redirect Send-to imports to the Send-to guide ([8bfc67688](https://github.com/heygen-com/hyperframes/commit/8bfc676881c07c3c8ee1f0b6b247cc5f207cd3fd), [#2619](https://github.com/heygen-com/hyperframes/pull/2619))

## Internal

- **Producer:** Preserve parallel plan watchdog coverage ([e9604270b](https://github.com/heygen-com/hyperframes/commit/e9604270b27c73abf7d3f94ebe1dbe198736a8a0))
- **Producer:** Make capture plans immutable ([6a84e95c6](https://github.com/heygen-com/hyperframes/commit/6a84e95c68fd6009fcd13b33aa2703d72b535d8f))
- **Producer:** Unify render requests ([65f2e2927](https://github.com/heygen-com/hyperframes/commit/65f2e2927cc033a83ab7bdf5e43d4b63c2b7aa02))
- **Engine:** Type capture failures ([acb3d81b9](https://github.com/heygen-com/hyperframes/commit/acb3d81b99d4135009cf34ec3cb467054cf0fa66))

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

<Update
  label="HyperFrames v0.7.61"
  description="Released - 2026-07-17"
  tags={["Release", "Media Use", "Studio", "Media"]}
>
Studio and the render pipeline gain automatic media proxying — hostile codecs (HEVC, alpha-channel video, undecodable formats) are transcoded to H.264 proxies on demand and served consistently across preview, render, and published archives, with an opt-out for projects that don't need it. Studio's flat inspector is now the default panel after its bug-fix pass (right-aligned values, Stroke width/style split, non-visual-element section gating, a fixed Slideshow tab), and the GSAP timeline lint gains new seek-order and relative-value safety checks.

## Features

- **Media Use:** Add video generation (HeyGen avatar-video + local LTX fallback) ([0a66671fc](https://github.com/heygen-com/hyperframes/commit/0a66671fc576b6b7d4a1b433ff97467dcba20b17), [#2614](https://github.com/heygen-com/hyperframes/pull/2614))
- **Studio:** Default the flat inspector on ([a4167ede0](https://github.com/heygen-com/hyperframes/commit/a4167ede074cc4a3e86bc14571ff6a406d664271))
- **Media:** Alpha-capable authoring proxies ([e8371a7ac](https://github.com/heygen-com/hyperframes/commit/e8371a7accfb1ccd88c792898b65910aec60b0bd), [#2598](https://github.com/heygen-com/hyperframes/pull/2598))
- **CLI:** Bake proxies into published archives ([35eff5038](https://github.com/heygen-com/hyperframes/commit/35eff5038b5f8e825b416b05bd7ea5baa38684a0), [#2595](https://github.com/heygen-com/hyperframes/pull/2595))
- **Lint:** Flag relative-value second writers and tl.set initial hides ([4ad582606](https://github.com/heygen-com/hyperframes/commit/4ad582606bd2c0da9e20c83faa1acb3b79fe6e47), [#2612](https://github.com/heygen-com/hyperframes/pull/2612))
- **Lint:** Seek-order safety and SVG draw-on rules for GSAP timelines ([f3d210066](https://github.com/heygen-com/hyperframes/commit/f3d21006633014fcb29b7a51571cd50ce832fed3), [#2611](https://github.com/heygen-com/hyperframes/pull/2611))
- **CLI:** Resolve proxies before check's timed browser phase ([0561adc11](https://github.com/heygen-com/hyperframes/commit/0561adc11c7bd6a375244170893f530cc51a9587), [#2594](https://github.com/heygen-com/hyperframes/pull/2594))
- **CLI:** Serve proxies from play and the static project server ([74b4f1e8c](https://github.com/heygen-com/hyperframes/commit/74b4f1e8c3cb0058583c6d9048708519a6d94417), [#2593](https://github.com/heygen-com/hyperframes/pull/2593))
- **Core:** Swap undecodable video to its proxy at runtime ([39b588cbd](https://github.com/heygen-com/hyperframes/commit/39b588cbd0e196d1d1db14e959f837dc90cf7788), [#2592](https://github.com/heygen-com/hyperframes/pull/2592))
- **CLI:** Let projects opt out of automatic proxying ([645880706](https://github.com/heygen-com/hyperframes/commit/6458807066bd4e0c1a6f573423879e97b91ad1c3), [#2591](https://github.com/heygen-com/hyperframes/pull/2591))
- **Studio Server:** Serve H.264 proxies from the preview route ([67eab59f4](https://github.com/heygen-com/hyperframes/commit/67eab59f44c0609c7299dc7127d864b37d2d1715), [#2590](https://github.com/heygen-com/hyperframes/pull/2590))
- **Skills:** Add composition-structure block + soft-warn feedback lint ([0aaac7aa3](https://github.com/heygen-com/hyperframes/commit/0aaac7aa30f16db7286ac5cb1e5e5e46dceb7b5b))
- **Studio Server:** Transcode bounded H.264 proxies on demand ([9d148d288](https://github.com/heygen-com/hyperframes/commit/9d148d288aa1ea1ad4ea687fc21d92f8b5008286), [#2589](https://github.com/heygen-com/hyperframes/pull/2589))
- **Studio Server:** Bound the proxy cache with LRU accounting ([1d3d20450](https://github.com/heygen-com/hyperframes/commit/1d3d20450d2937966fb299990dfbc3d643204a09), [#2588](https://github.com/heygen-com/hyperframes/pull/2588))
- **Studio Server:** Probe media codec facts for proxy decisions ([9ca1e1710](https://github.com/heygen-com/hyperframes/commit/9ca1e171013c0d74a868f5eda3ebdf93c9566632), [#2587](https://github.com/heygen-com/hyperframes/pull/2587))
- **Lint:** Flag HEVC video assets with info-level preview note ([664c39db9](https://github.com/heygen-com/hyperframes/commit/664c39db9e604a504bd1336c7b2ba3368cf1379d))
- **Skills:** Add changelog-video skill for repo-native CC + Codex discovery ([e96ebd74d](https://github.com/heygen-com/hyperframes/commit/e96ebd74dedbe3fe9642177542b5b7a2fd696e83), [#2552](https://github.com/heygen-com/hyperframes/pull/2552))
- **Studio:** Clarify storyboard review handoff ([73dd38f93](https://github.com/heygen-com/hyperframes/commit/73dd38f93ef94a17fd9eb254198e66492d0aa84f))
- **CLI:** Surface extract-cache dir in doctor + add --frames-cache-dir sugar ([ca3522750](https://github.com/heygen-com/hyperframes/commit/ca352275062574b8b96aaef2ac06f8bae0a1ccc1))
- **Core:** Export runtime start resolver with documentRef parameter ([fd19a1563](https://github.com/heygen-com/hyperframes/commit/fd19a1563dc65b58fb59b52bbba12632e9162eb5))
- **Skills:** Act on stale CLI pin during project resume ([f8c33cab7](https://github.com/heygen-com/hyperframes/commit/f8c33cab72de3e6e7f9f2defbb208b1d91366cac), [#2540](https://github.com/heygen-com/hyperframes/pull/2540))
- **CLI:** Configurable transcribe timeout with duration-scaled default ([f8210d96d](https://github.com/heygen-com/hyperframes/commit/f8210d96daf7fd081e9304f26a288a0a1420db66))

## Fixes

- **Studio:** Short-circuit slideshow-island detection with a substring check (review N2) ([53b362143](https://github.com/heygen-com/hyperframes/commit/53b3621437670f12a0c4663dbae0da1252ab9c6b))
- **Studio:** Hide the Slideshow tab and panel for non-slideshow compositions ([67696cd8d](https://github.com/heygen-com/hyperframes/commit/67696cd8de0c58551fdd6299bf9d7517cca73e20))
- **Feedback Lint:** Tighten census value scoping and defect-keyword matching ([490642b78](https://github.com/heygen-com/hyperframes/commit/490642b78aacb762cc0c40ddf1783965541dd28a))
- **Gcp Cloud Run:** Include all workspace build dependencies ([a6df35f89](https://github.com/heygen-com/hyperframes/commit/a6df35f8910c4a5bada3974eaa8dacbfb1639957), [#2608](https://github.com/heygen-com/hyperframes/pull/2608))
- **CLI:** Resolve the producer alias in the CLI vitest config ([8e162921b](https://github.com/heygen-com/hyperframes/commit/8e162921bc69f86f1613cd642543ec3f6615e475), [#2609](https://github.com/heygen-com/hyperframes/pull/2609))
- **Fallow:** Suppress line-shifted pre-existing findings + simplify CSS.escape polyfill ([d05c899c8](https://github.com/heygen-com/hyperframes/commit/d05c899c8891595ba51cc90e726dc35943604eed))
- **CLI:** Import EXTRACT_CACHE_DIR_DISABLED_ALIASES in render.ts ([9fc7390c2](https://github.com/heygen-com/hyperframes/commit/9fc7390c2b27ddb9805ce3d96e822a303e52ec78))
- Preserve shared FFmpeg resolver behavior ([798047908](https://github.com/heygen-com/hyperframes/commit/7980479083f3dcc061fc8b8306e2e4870d292eac))
- **Engine:** Ignore benign media request aborts ([08dbb7db3](https://github.com/heygen-com/hyperframes/commit/08dbb7db377b63ed3525143f5f3bae7fe08c3d90), [#2423](https://github.com/heygen-com/hyperframes/pull/2423))
- **Engine:** Reuse HyperFrames browser cache ([f0aee2855](https://github.com/heygen-com/hyperframes/commit/f0aee285516d4030268fba6372db446f717246e2), [#2459](https://github.com/heygen-com/hyperframes/pull/2459))
- **Skills:** Align TTS docs with CLI contract ([428e57191](https://github.com/heygen-com/hyperframes/commit/428e571914ee979c815097fbbd26d56757a11056), [#2483](https://github.com/heygen-com/hyperframes/pull/2483))
- **Core:** Stop composition variables from shadowing authored CSS custom properties ([406894061](https://github.com/heygen-com/hyperframes/commit/406894061e8b2a5a4ca6847e9eef2e0e1c2932d4), [#2553](https://github.com/heygen-com/hyperframes/pull/2553))
- **Studio:** Guard storyboard history navigation ([68beec0e7](https://github.com/heygen-com/hyperframes/commit/68beec0e7653ed73091c8c157fa6ca64853d3960))
- **CLI:** Surface HYPERFRAMES_BROWSER_PATH hint on macOS \<13 chrome-headless-shell dyld crash ([0d16f19b0](https://github.com/heygen-com/hyperframes/commit/0d16f19b07b1c7f60d54cac4f05f93ea3abacbcd))
- **Studio:** Address storyboard review feedback ([ded443647](https://github.com/heygen-com/hyperframes/commit/ded443647d735f52b1ea96590a267b4d35faab8e))
- **Studio,runtime:** CSS.escape ids so digit-leading selectors don't crash ([9bbdcc4ec](https://github.com/heygen-com/hyperframes/commit/9bbdcc4ec95c6086e0d4b6be497cd4a8c122917c))
- **Core:** Re-export createRuntimeStartTimeResolver from index so dist emits it ([94929815f](https://github.com/heygen-com/hyperframes/commit/94929815faa722428cad186ae07b9c52451ef12d))
- **Engine:** Escalate hung browser lease closes ([d4cfa08cb](https://github.com/heygen-com/hyperframes/commit/d4cfa08cb646270a139ab37bde99e21b7fd49cc3))
- **Lint:** Catch cold-seek opacity reveals ([55ee559e4](https://github.com/heygen-com/hyperframes/commit/55ee559e40e2e84e11fe5e09e8bf57b755ea03cb), [#2503](https://github.com/heygen-com/hyperframes/pull/2503))
- **CLI:** Avoid Python whisper CLI collision ([9b17a5ad7](https://github.com/heygen-com/hyperframes/commit/9b17a5ad7e77288b6fee9174267c9398dfed9ef5), [#2414](https://github.com/heygen-com/hyperframes/pull/2414))
- **Engine:** Preserve mono audio level ([ed1f38124](https://github.com/heygen-com/hyperframes/commit/ed1f38124b68b9ddecee70485330269054df153e), [#2392](https://github.com/heygen-com/hyperframes/pull/2392))
- **CLI:** Fail clearly on unsupported Node versions ([e846cd600](https://github.com/heygen-com/hyperframes/commit/e846cd60043ce72ce09b7060935d088158916e68), [#2388](https://github.com/heygen-com/hyperframes/pull/2388))
- **Transcribe:** Select multilingual model before download ([584be6d64](https://github.com/heygen-com/hyperframes/commit/584be6d64aa5030dfcc0bfffcaa3a04701f43fd0), [#2303](https://github.com/heygen-com/hyperframes/pull/2303))
- **CLI:** Time out stalled model downloads ([75eedf5cc](https://github.com/heygen-com/hyperframes/commit/75eedf5cc1affecbf27f593cc95e9361520902ed), [#2415](https://github.com/heygen-com/hyperframes/pull/2415))
- **Talking Head:** Preserve source audio ([335e7483b](https://github.com/heygen-com/hyperframes/commit/335e7483b56e1823aedafa577ec12619772a9d4e), [#2260](https://github.com/heygen-com/hyperframes/pull/2260))
- **Lint:** Ignore !important in font families ([b8a44e49c](https://github.com/heygen-com/hyperframes/commit/b8a44e49c92ea03b3a3769725e1f9ab951e581c9), [#2538](https://github.com/heygen-com/hyperframes/pull/2538))
- **CLI:** Keep diagnostics on stderr for --json commands ([d92d1d4f5](https://github.com/heygen-com/hyperframes/commit/d92d1d4f51e2737d19db8a67073da8ae04a16789), [#2522](https://github.com/heygen-com/hyperframes/pull/2522))
- **Studio:** Gate Layout and Style panel sections on the element having a rendered box ([8a793ba2b](https://github.com/heygen-com/hyperframes/commit/8a793ba2b2fb2e946bd3849ae1b459adc8333aa7))
- **Studio:** Give flat Text section rows more vertical breathing room ([14dbfca5a](https://github.com/heygen-com/hyperframes/commit/14dbfca5a7ee80450070551e494ae12c5677ee43))
- **Studio:** Move the promote-to-variable badge above the row instead of a padding gutter ([5f045b6bd](https://github.com/heygen-com/hyperframes/commit/5f045b6bdff145f0e0ec4b32aae475cefea989c1))
- **Studio:** Reserve a gutter for the promote-to-variable badge ([9fa1b2657](https://github.com/heygen-com/hyperframes/commit/9fa1b265700473b9da14d198e0a00b8e74c4ee67))
- **CLI:** Wire aspect-agnostic resolution through cloudrun/lambda/batch + preflight recompute ([2d398ed27](https://github.com/heygen-com/hyperframes/commit/2d398ed27429382d327ad3668fa434d8a690cc26))
- **Studio:** Make flat inspector's Stroke width free of style-name typing ([d5a259a3d](https://github.com/heygen-com/hyperframes/commit/d5a259a3d2ea000499fca4de3ebfa13af61898d8))
- **Studio:** Right-align FlatRow's value input in the flat inspector ([b32f9a3e8](https://github.com/heygen-com/hyperframes/commit/b32f9a3e86d1d206045173825d0c8c2370c3403d))
- **Studio:** Resync the shared SDK session after a Design-panel variable promote ([578d6202b](https://github.com/heygen-com/hyperframes/commit/578d6202b4e0918d71744f85a0e0f5b0e1d1981c))
- **CLI:** Reduce CRAP score by extracting exit-path helpers; bump contactSheet Windows timeout ([f3b941f1e](https://github.com/heygen-com/hyperframes/commit/f3b941f1e32cdca1304762b7b2e9d738d596deae))
- **Producer:** Materialize audioPadTrim concat script to real file ([40f4cfe92](https://github.com/heygen-com/hyperframes/commit/40f4cfe92f4f55fd0198686a8096ba67f2e98482))
- **Fallow:** Resolve audit findings for portrait --resolution PR ([7e58d050f](https://github.com/heygen-com/hyperframes/commit/7e58d050f8923d1f50e2da7fb1f77a65963715a0))
- **CLI:** Accept portrait aspects for --resolution alias flag ([46e9ecf3f](https://github.com/heygen-com/hyperframes/commit/46e9ecf3f2f66f7a8b145fc87a36184541b3ad13))
- **CLI:** Don't override exit code after artifact validated ([25a04d7fc](https://github.com/heygen-com/hyperframes/commit/25a04d7fc8f90d1c3d6737a5716364850a08af73))
- **Producer:** AudioPadTrim FFmpeg-8.x-compatible apad invocation ([dc410ca99](https://github.com/heygen-com/hyperframes/commit/dc410ca99035c97b4ce59b54e946da0275f99a28))

## Docs & Examples

- **Media:** Document automatic proxying for hostile codecs ([8c1b6c515](https://github.com/heygen-com/hyperframes/commit/8c1b6c515401a03e1a8394cff60b4e7410f14f0d), [#2596](https://github.com/heygen-com/hyperframes/pull/2596))
- Document HEVC input support and the preview-only codec caveat ([5f2819b1e](https://github.com/heygen-com/hyperframes/commit/5f2819b1e78b7ed0d2052486f75e97f7d5038dc3))
- **Changelog:** Weekly digest 2026-06-29–2026-07-06 ([9dc7dcd7f](https://github.com/heygen-com/hyperframes/commit/9dc7dcd7fb52f450e2f274d6c3e8f3610b8b2dbf), [#1995](https://github.com/heygen-com/hyperframes/pull/1995))
- **Skills:** Make the core set the default install on every surface ([3bb26b0f0](https://github.com/heygen-com/hyperframes/commit/3bb26b0f08142e95126b4934511a09a1e68c143d), [#2554](https://github.com/heygen-com/hyperframes/pull/2554))
- **Guides:** Add Claude Design → Send to HyperFrames single-file import guide ([5e78a29af](https://github.com/heygen-com/hyperframes/commit/5e78a29af335ecda5e5c8a8400064419a7fcb37e), [#2131](https://github.com/heygen-com/hyperframes/pull/2131))

## Catalog

- **Registry:** Position flowchart typing beats with label-relative offsets ([b44bc4ffa](https://github.com/heygen-com/hyperframes/commit/b44bc4ffafb205c68a09a7588e2a86436750d7cb), [#2549](https://github.com/heygen-com/hyperframes/pull/2549))
- **Registry:** Remove invalid media from caption components ([771145a5c](https://github.com/heygen-com/hyperframes/commit/771145a5c43810f826b6052089be0ff23f94b702), [#2454](https://github.com/heygen-com/hyperframes/pull/2454))
- **Runtime:** Tolerate registry timelines without pause() in interactive transport ([8826d2d71](https://github.com/heygen-com/hyperframes/commit/8826d2d71d4883efad9e7e9f9036adcf229d89a2))

## Internal

- **Engine:** Manage child process lifecycles ([57d3bf496](https://github.com/heygen-com/hyperframes/commit/57d3bf4960db97e0b90c2b4a85fd5f20d6499dc5), [#2160](https://github.com/heygen-com/hyperframes/pull/2160))
- **Feedback:** Extract lint-warning loop to satisfy Fallow CRAP threshold ([8f90fd9ec](https://github.com/heygen-com/hyperframes/commit/8f90fd9ec1aecd20f678ccf0617efea06adfda56))
- **Parsers:** Share local-asset resolution across lint and studio-server ([053e1274b](https://github.com/heygen-com/hyperframes/commit/053e1274b10ef63e99872cc808f0accf90242e8d))
- **Parsers:** Single shared FFmpeg/FFprobe binary resolver ([88c049f52](https://github.com/heygen-com/hyperframes/commit/88c049f525d9c420fd1196915c6c345395eb73e2))
- **Lint:** Bound concurrent ffprobe processes in HEVC probe ([247743fcd](https://github.com/heygen-com/hyperframes/commit/247743fcdfc4da99cb17522cd81592771e44a402))
- Retrigger ci ([21ab83320](https://github.com/heygen-com/hyperframes/commit/21ab83320fcd8cea82fc7ff2a43c2c2c29c96fde))
- **Engine:** Add fingerprinted browser leases ([9b23c0023](https://github.com/heygen-com/hyperframes/commit/9b23c002373ec1c69fe57c5909db348e941e5e89))
- **CLI:** Add stderr diagnostics logger + oxlint guard ([1b4cf12cd](https://github.com/heygen-com/hyperframes/commit/1b4cf12cd35f25c6d7ae7cdd4ebd33be4ff6ab0b), [#2551](https://github.com/heygen-com/hyperframes/pull/2551))
- **Core:** Regenerate position-edits-render artifact with current esbuild ([7e0bd401c](https://github.com/heygen-com/hyperframes/commit/7e0bd401c8229e6f52d63809fbc268baccf49855))
- **Render:** Centralize execution ownership ([6a1585df2](https://github.com/heygen-com/hyperframes/commit/6a1585df27e0c7ef94e2fba192133b46be3ebba4), [#2158](https://github.com/heygen-com/hyperframes/pull/2158))
- **Core:** Unify composition contract ([21cb722eb](https://github.com/heygen-com/hyperframes/commit/21cb722ebda4dc88ad83449916422205d1ce7f19), [#2157](https://github.com/heygen-com/hyperframes/pull/2157))

## Other Changes

- Revert "docs(changelog): weekly digest 2026-06-29–2026-07-06 (#1995)" ([065f8c9c8](https://github.com/heygen-com/hyperframes/commit/065f8c9c8d2f188dc24050986ac09a318e221166), [#2571](https://github.com/heygen-com/hyperframes/pull/2571))

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

<Update
  label="HyperFrames v0.7.60"
  description="Released - 2026-07-16"
  tags={["Release", "Renderer", "Engine", "Studio"]}
>
Rendering is more deterministic across software-GPU, Windows, and long-running worker paths: SwiftShader no longer leaks stale compositor layers into captured frames, video clips can intentionally hold their final frame through a longer composition slot, and capture failures now surface with clearer diagnostics. This release also strengthens Studio file concurrency and SDK/runtime synchronization so edits and previews stay aligned with the underlying project state.

## Features

- **Engine:** Opt-in per-frame timing on fast-capture fallback path ([e6cdf4abb](https://github.com/heygen-com/hyperframes/commit/e6cdf4abb174ea9792a79df83cba3646f140f48e))
- **Engine:** Software-GPU parity diff helper for solid-black capture-shape bugs ([97e094621](https://github.com/heygen-com/hyperframes/commit/97e094621f889c472f5acce760cb3e074f78a67f))
- **Producer:** Calibration-aware heartbeat + worker-death terminal-error contract ([971bcf39a](https://github.com/heygen-com/hyperframes/commit/971bcf39aeb72deda8eb4d161c1c1016eee28f87))
- **Lint:** Flag high overlay-element counts (heavy-capture risk) ([75de927fb](https://github.com/heygen-com/hyperframes/commit/75de927fb52f1e17832ac4d05acc7772ab71dd59))
- **Producer:** Parity telemetry gate for per-clip frame-count invariant ([69b393865](https://github.com/heygen-com/hyperframes/commit/69b393865ae75fff35fd0d105c6ef8ed0bff4303))
- **Engine:** Surface escape hatches in page.goto Nav timeout errors ([58cff5f6d](https://github.com/heygen-com/hyperframes/commit/58cff5f6d5dc8a136617df1a1b1712b142ec0986))
- **Engine:** Auto-disable streaming-encode on Windows software-GPU compound ([cbf2a2ec6](https://github.com/heygen-com/hyperframes/commit/cbf2a2ec69f12f4b5aad384d538d354321ce64cf))
- **Engine:** Surface protocolTimeout env + flag in Puppeteer timeout errors ([6944a1c2d](https://github.com/heygen-com/hyperframes/commit/6944a1c2d0430c8d42c6c5e1408d640b9674a2c8))
- **Core:** ApplyPositionEdits gains force option and undo reset path ([049f72d4d](https://github.com/heygen-com/hyperframes/commit/049f72d4d9e11e86854f0512499aa65a8f5dc012))
- **Sdk:** GetVariableValue(\{ base: true \}) reads pre-override declared defaults ([db5e06221](https://github.com/heygen-com/hyperframes/commit/db5e062211fbad324b67bcc672d4e92cc4e2d351))

## Fixes

- **Renderer:** Prevent stale SwiftShader layers ([54a3ef200](https://github.com/heygen-com/hyperframes/commit/54a3ef2000da635b93c03a41c129a78f0276bf38))
- **Engine:** Emit SystemMemory cgroup notice to stderr, not stdout ([b179c9536](https://github.com/heygen-com/hyperframes/commit/b179c95362645c3ca06fa869d698429e2e3d1e61), [#2520](https://github.com/heygen-com/hyperframes/pull/2520))
- **Studio:** Give flat-inspector value fields a resting-state input affordance ([2b51c5263](https://github.com/heygen-com/hyperframes/commit/2b51c5263414ee9faafbb453f5a9a3ee13af3e43))
- **Studio:** Make setRightPanelTab itself flat-aware, not just the direct tab click ([fb24ecac2](https://github.com/heygen-com/hyperframes/commit/fb24ecac22a766f8a405923551ca51b850487cfc))
- **Video:** Hold final frame through composition ([2e8f871bc](https://github.com/heygen-com/hyperframes/commit/2e8f871bc86d29ec3369f0eb11f0183b2001a07a))
- **Studio:** Show Layers full-height in the flat inspector, not split with Design ([79b688f20](https://github.com/heygen-com/hyperframes/commit/79b688f204d00e85d4dd111e1e35c8d4dc5703ba))
- **Core:** Guard undefined NodeList index in applyPositionEdits loops ([4ac7b4fa8](https://github.com/heygen-com/hyperframes/commit/4ac7b4fa8200ea4250b0370cc5b53ac1002d1efb))
- **Producer:** Propagate --exclude-tags to Dockerfile.test ENTRYPOINT ([1c46eadce](https://github.com/heygen-com/hyperframes/commit/1c46eadceb6b2434a1e245a190057e43035caa98))
- **Skills:** Require actionable CLI feedback repros ([3a71a03de](https://github.com/heygen-com/hyperframes/commit/3a71a03de5037592b3de5f6edafcd76a6415f31a), [#2498](https://github.com/heygen-com/hyperframes/pull/2498))
- **Studio:** Enforce optimistic file concurrency ([2417293da](https://github.com/heygen-com/hyperframes/commit/2417293dabad96bc464495027a751b8aedb6441a), [#2156](https://github.com/heygen-com/hyperframes/pull/2156))
- **Sdk:** AttachSync re-syncs the override snapshot on iframe load ([4682da14f](https://github.com/heygen-com/hyperframes/commit/4682da14f19061aeac25b723e1cbb6a98f5d86ad))
- **CLI:** Align video output boundaries ([35e623b4f](https://github.com/heygen-com/hyperframes/commit/35e623b4f3502a88945750955000f59526a62ed3), [#2490](https://github.com/heygen-com/hyperframes/pull/2490))
- **Skills:** Preserve caption skin contrast states ([f45f76247](https://github.com/heygen-com/hyperframes/commit/f45f762473735befc8cce3407f7dabb6ce8bb4ac), [#2486](https://github.com/heygen-com/hyperframes/pull/2486))
- **CLI:** Preserve snapshot timestamp precision ([9e53c0f9b](https://github.com/heygen-com/hyperframes/commit/9e53c0f9b1da2d11a400d264ffcc41157302925c), [#2494](https://github.com/heygen-com/hyperframes/pull/2494))
- **Runtime:** Resume readiness after deferred GSAP batching ([b874c4440](https://github.com/heygen-com/hyperframes/commit/b874c4440f9fcd4afeeb3a8e616d036d633cba28), [#2491](https://github.com/heygen-com/hyperframes/pull/2491))
- **Engine:** Fail partial audio track preparation ([968c90397](https://github.com/heygen-com/hyperframes/commit/968c90397b3e7852367fa3741c9fc44c3472814d), [#2488](https://github.com/heygen-com/hyperframes/pull/2488))
- **Render:** Ignore favicon probe noise ([850f57ea0](https://github.com/heygen-com/hyperframes/commit/850f57ea04450e21775f9dbd2c39bd45ddf9aa7a), [#2487](https://github.com/heygen-com/hyperframes/pull/2487))
- **Producer:** Bridge stall-timeout env var rename, disambiguate abort from stall on sequential path ([b70d849a4](https://github.com/heygen-com/hyperframes/commit/b70d849a4728ee08d070ac49cd6e6af4b23f4a2e))
- **Producer:** Extend DE stall watchdog to the single-worker streaming path ([650977d1d](https://github.com/heygen-com/hyperframes/commit/650977d1d8a695203047c3020c8a61465ed55bb8))

## Docs & Examples

- **Renderer:** Link SwiftShader workaround tracker ([9c25e27da](https://github.com/heygen-com/hyperframes/commit/9c25e27da64e65e789471e866ec5763097f8053e))

## Internal

- **Producer:** Use intrinsic duration in style fixtures ([4cbde3830](https://github.com/heygen-com/hyperframes/commit/4cbde38301c8453d78ac703ef62519bd0b4227eb))
- **Producer:** Update remaining video slot goldens ([1284703ad](https://github.com/heygen-com/hyperframes/commit/1284703adbe6444a2dc3e873c5a6bdd89b0356d3))
- **Producer:** Update video slot regression golden ([31cc2fe87](https://github.com/heygen-com/hyperframes/commit/31cc2fe875f56d2c79de918f3af0a19042bbd5f1))
- **Producer:** Reproducer fixture for both-escape-hatches-fail case ([e5c4e1970](https://github.com/heygen-com/hyperframes/commit/e5c4e1970cf6cd2b15a54460cd5dd23c50058225))

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

<Update
  label="HyperFrames v0.7.59"
  description="Released - 2026-07-15"
  tags={["Release", "Ci", "Registry,skills", "Studio"]}
>
Studio ships a redesigned flat property inspector — single-column, one-open-at-a-time groups for Text, Style, Layout, Motion, Media, and Grade — currently behind the `STUDIO_FLAT_INSPECTOR_ENABLED` flag (off by default) while it finishes validation. Rendering and CLI reliability improve across audio muxing, media discovery, snapshot boundaries, Windows path handling, and browser preflight, and the SDK cutover path is now transactional.

## Features

- **Skills,studio,media Use:** The intent layer, review loop, and user memory — BRIEF.md, companion mode, recipes; /website-to-video folds into /product-launch-video ([b9be0b262](https://github.com/heygen-com/hyperframes/commit/b9be0b26254fe7b759c6310036866f02d9d3d72b), [#2133](https://github.com/heygen-com/hyperframes/pull/2133))
- **Engine,producer,cli:** Capture failing dB/frame index on drawElement verify fallback ([a5cbb78ff](https://github.com/heygen-com/hyperframes/commit/a5cbb78ff96b99f73ad1510acb20f861d1780248))
- **Studio:** Track design-panel input usage across both inspector UIs ([7cc10a992](https://github.com/heygen-com/hyperframes/commit/7cc10a99229e8ff1c625b8659b8aedd724d18b14), [#2467](https://github.com/heygen-com/hyperframes/pull/2467))
- **Studio:** Animate flat inspector group expand/collapse ([a0f2a65bc](https://github.com/heygen-com/hyperframes/commit/a0f2a65bc216cb69a08498bb2eb34aaaf630393d))
- **Studio:** Flatten multi-field Text, retiring TextSection fallback ([0524f1c9c](https://github.com/heygen-com/hyperframes/commit/0524f1c9c2a4a9fe1c4e2c6f6d81be6e9f6d5f5c))
- **Studio:** Add FlatTextLayerList for multi-field text ([b0093835f](https://github.com/heygen-com/hyperframes/commit/b0093835fd728ab91a4b7f922b774a5cf732f653))
- **Studio:** Render pinned groups first with a persisted, per-element-kind pin zone ([b2384fad6](https://github.com/heygen-com/hyperframes/commit/b2384fad67bb16ea0f670b5db43fb5b894a8215a))
- **Studio:** Add PinnedGroupRow always-open pinned-group primitive ([31849d62e](https://github.com/heygen-com/hyperframes/commit/31849d62e2cba67a08b8a4da1c2f496a57f77474))
- **Studio:** Wire the flat Grade group into the one-open accordion ([384fe5934](https://github.com/heygen-com/hyperframes/commit/384fe5934a723b501896732bec319f930e8ef99c))
- **Studio:** Add usePersistedPinnedGroups hook ([4bff97090](https://github.com/heygen-com/hyperframes/commit/4bff97090ba988c74bdfde588c69df1147cb62e5))
- **Studio:** Persist per-element-type pinned groups in studioUiPreferences ([0d7a60a52](https://github.com/heygen-com/hyperframes/commit/0d7a60a5250b703616aadc3751e3df657856fdd5))
- **Studio:** Add HDR warning banner and Apply-to-scope row, completing FlatColorGradingSection ([cc07c84a3](https://github.com/heygen-com/hyperframes/commit/cc07c84a31b78cee1a825d29c41065526837bfee))
- **Studio:** Add Blur and Pixelate effect sliders ([80dc7c49f](https://github.com/heygen-com/hyperframes/commit/80dc7c49f6f01d1883127f98745b0f27ad8fb964))
- **Studio:** Add Vignette and Grain rows with tuned-settings sub-panel ([93f3bf594](https://github.com/heygen-com/hyperframes/commit/93f3bf59452bb959c6028ca6ceb5b0c119e072d8))
- **Studio:** Add the 10 Adjust sliders to FlatColorGradingSection ([96d90feb5](https://github.com/heygen-com/hyperframes/commit/96d90feb50e10bd12a22fd668b856678f803fd9d))
- **Studio:** Add FlatColorGradingSection Preset and Custom LUT rows ([9b6bed282](https://github.com/heygen-com/hyperframes/commit/9b6bed282474fee4ffce7ff704dc319c0863dbfe))
- **Studio:** Add FlatColorGradingAccessory (compare, status dot, reset) ([160193d83](https://github.com/heygen-com/hyperframes/commit/160193d8338596d390c3ca157bada0d1a2c16364))
- **Studio:** Widen FlatSelectRow options to support label!=value entries ([18e4aef7d](https://github.com/heygen-com/hyperframes/commit/18e4aef7dc105519c1de91c64ca5696f4c042eeb))
- **Studio:** Add centerTick and reset-slot to FlatSlider for bipolar grade rows ([afafeccf4](https://github.com/heygen-com/hyperframes/commit/afafeccf4c75e817ef54c9189cdff1e1963d0dbd))
- **Studio:** Wire the flat Media group into the one-open accordion ([5a3abdef3](https://github.com/heygen-com/hyperframes/commit/5a3abdef3650aff2c6600a88aea10a8a1b85d32a))
- **Studio:** Add fit/position rows to FlatMediaSection ([ea463cdf8](https://github.com/heygen-com/hyperframes/commit/ea463cdf8fdc5924bb384ad066214d9f9cb1f7b6))
- **Studio:** Add loop/muted/has-audio-track toggles to FlatMediaSection ([79fdff870](https://github.com/heygen-com/hyperframes/commit/79fdff8701192e8b450e1899739d0719d8c30be1))
- **Studio:** Add volume/rate/media-start sliders to FlatMediaSection ([ab263f25b](https://github.com/heygen-com/hyperframes/commit/ab263f25b4d0ce751a555270566c63120f50a7d6))
- **Studio:** Add cutout sub-block to FlatMediaSection ([138d45faa](https://github.com/heygen-com/hyperframes/commit/138d45faac695fdccf6dfeee5cf94d92b00670eb))
- **Studio:** Add FlatMediaSection scaffold + source/copy row ([0e0cb4846](https://github.com/heygen-com/hyperframes/commit/0e0cb4846d8c8bbc402851d9892b6853c141d04f))
- **Studio:** Add FlatToggle primitive ([14d8de749](https://github.com/heygen-com/hyperframes/commit/14d8de74924d85f6e0b2f2f56d13a2e9575f20b6))
- **Studio:** Wire the flat Motion group into the one-open accordion ([47591f07a](https://github.com/heygen-com/hyperframes/commit/47591f07a6c2b05f7527fec4132e436f8a073451))
- **Studio:** Compose FlatMotionSection from Timing and the flat effect-card list ([9676382bb](https://github.com/heygen-com/hyperframes/commit/9676382bb5eae1279a7036bcf334ebe99c8236f8))
- **Studio:** Add flat collapsed-header variant to AnimationCard ([a3d092ee0](https://github.com/heygen-com/hyperframes/commit/a3d092ee0fa351b88ca866fda27494a3b05f820c))
- **Studio:** Add FlatTimingRow for the flat Motion group ([fb1373905](https://github.com/heygen-com/hyperframes/commit/fb1373905f7ad2b63ef4793ba874ea5a9e841366))
- **Studio:** Wire the flat Layout group into the one-open accordion ([8602e1a8c](https://github.com/heygen-com/hyperframes/commit/8602e1a8c9fcadf64022f0ded0a0d2ecb3845602))
- **Studio:** Compose FlatLayoutSection from geometry, z-index, flex, and 3D blocks ([0369865dd](https://github.com/heygen-com/hyperframes/commit/0369865ddb1ff334fb79708f83d26535ab3dc8cd))
- **Studio:** Nest the existing 3D transform sub-view in a flat wrapper ([5edaf6db7](https://github.com/heygen-com/hyperframes/commit/5edaf6db7ab0c0c2ce16a7292d7e848d314423d8))
- **Studio:** Add flat Layout Z-index row and Flex sub-block ([3b958aeb7](https://github.com/heygen-com/hyperframes/commit/3b958aeb77fbea2ee095dbe65c836ede99f85712))
- **Studio:** Add flat Layout geometry rows (X/Y/W/H/Angle) with keyframe gutters ([588895f31](https://github.com/heygen-com/hyperframes/commit/588895f317c0eaeb00cc303f3c60642c11fdb54f))
- **Studio:** Wire the flat Style group into the one-open accordion ([fea582f2b](https://github.com/heygen-com/hyperframes/commit/fea582f2b4c772919f22e9f927d88b6fae9b5681))
- **Studio:** Add flat Opacity slider, completing the Style group ([ff7a9c593](https://github.com/heygen-com/hyperframes/commit/ff7a9c593a71d1a1ac7c52368973b86a774e7ec3))
- **Studio:** Add flat Overflow and Mask rows to the Style group ([11d1cc749](https://github.com/heygen-com/hyperframes/commit/11d1cc7499a5f83e9e357b8557b2c4d9f26599db))
- **Studio:** Add flat Layer blur and Backdrop sliders to the Style group ([cb8962652](https://github.com/heygen-com/hyperframes/commit/cb8962652b32a0b1aaf103feab5b9a55e742108b))
- **Studio:** Add flat Shadow and Blend rows to the Style group ([988896821](https://github.com/heygen-com/hyperframes/commit/988896821920ad29faf069a32096b14a2508a190))
- **Studio:** Add flat Stroke and Radius rows to the Style group ([b86717d75](https://github.com/heygen-com/hyperframes/commit/b86717d7583259620289e13a17ee46c5c4f8ecc4))
- **Studio:** Add FlatStyleSection with the flat Fill sub-block ([2d9989db3](https://github.com/heygen-com/hyperframes/commit/2d9989db3bc67435bc7930d88b4bb780582e99b9))
- **Studio:** Add stroke-summary format/parse helpers for the flat Style group ([760aa09a4](https://github.com/heygen-com/hyperframes/commit/760aa09a43ce5311417bec6e730ced9e5baea4de))
- **Studio:** Add FlatSelectRow primitive for the flat inspector ([f71fcf4da](https://github.com/heygen-com/hyperframes/commit/f71fcf4da0627010fd97c1a8365347a65b9ac685))
- **Studio:** Add FlatSlider primitive for the flat inspector ([9854c6de7](https://github.com/heygen-com/hyperframes/commit/9854c6de71408615dc31719585d633289fa8daf2))
- **CLI:** Surface stale project pin to non-TTY agents, throttled ([9bcd279b2](https://github.com/heygen-com/hyperframes/commit/9bcd279b2974d1064291ac3cd1095eefb0818fd8))
- **CLI:** Hyperframes upgrade --project bumps pinned package.json scripts ([c1b1c729e](https://github.com/heygen-com/hyperframes/commit/c1b1c729e52d1787f65d591363bd13f5587e0692))
- **CLI:** Add project-pin rewrite helper ([6fec8f39a](https://github.com/heygen-com/hyperframes/commit/6fec8f39ae3eb336648b4c5f5323669c78f43ce9))
- **Studio:** Render the flat Ledger inspector shell behind STUDIO_FLAT_INSPECTOR_ENABLED ([e0066834b](https://github.com/heygen-com/hyperframes/commit/e0066834b7dab192f8718ba2b2a454aa3aa922ec))
- **Studio:** Wire group-selection and hide-all into the property panel ([82f3f340a](https://github.com/heygen-com/hyperframes/commit/82f3f340aa2289466a44e3078e29368b79c9d679))
- **Studio:** Add flat empty and multi-select states (#6b) ([4e2441229](https://github.com/heygen-com/hyperframes/commit/4e2441229fc97313579085d0714c9522255f22a5))
- **Studio:** Add FlatTextSection, the flat inspector's canonical reference group ([b5d11d035](https://github.com/heygen-com/hyperframes/commit/b5d11d0352f0dca95dcc8c9bb226f75d93f78600))
- **Studio:** Add flat trigger variants for ColorField, FontFamilyField, TextAreaField ([2983e7425](https://github.com/heygen-com/hyperframes/commit/2983e742535632d2ca773f5e80bf6ab3c2752dfc))
- **Studio:** Add flat footer (ask agent + record) for the inspector ([633171bb1](https://github.com/heygen-com/hyperframes/commit/633171bb153b15771e86948298e1dc7c98ee1a7b))
- **Studio:** Add flat identity header for the inspector ([015266752](https://github.com/heygen-com/hyperframes/commit/0152667526af025a5be78cd703014344dcb6be87))
- **Studio:** Add FlatGroup accordion and PinnedZoneDivider primitives ([b324a43ba](https://github.com/heygen-com/hyperframes/commit/b324a43ba0e45f7e9781a64b122ce51067c6c5f9))
- **Studio:** Add FlatRow and FlatSegmentedRow flat-inspector primitives ([c1916f1c2](https://github.com/heygen-com/hyperframes/commit/c1916f1c25d54cfa05a4dedd418cb4855cf52342))
- **Studio:** Add 3-tier value/label color resolver for the flat inspector ([797df2a64](https://github.com/heygen-com/hyperframes/commit/797df2a64a6395d8c1fb0c92232cc829608f91c5))
- **Studio:** Add flat-inspector tokens and STUDIO_FLAT_INSPECTOR_ENABLED flag ([3dc11c713](https://github.com/heygen-com/hyperframes/commit/3dc11c71370bc2fa0139f24bd2f61acdeba6ef8a))

## Fixes

- **Ci:** Keep contact sheet test lightweight ([dbdf03cd6](https://github.com/heygen-com/hyperframes/commit/dbdf03cd6b2e049e17bd2d6b2657d78f3ada7d71), [#2492](https://github.com/heygen-com/hyperframes/pull/2492))
- **Studio:** Mute composition hover previews ([e038cc93c](https://github.com/heygen-com/hyperframes/commit/e038cc93c6c805519634c1d628dbadc99b931d8d), [#2478](https://github.com/heygen-com/hyperframes/pull/2478))
- **CLI:** Restore Intel macOS background removal ([04954ead8](https://github.com/heygen-com/hyperframes/commit/04954ead818d5db91efbdd7bbb2bd1e5f07a2f60), [#2480](https://github.com/heygen-com/hyperframes/pull/2480))
- **Render:** Avoid Windows output path limit for work dirs ([882c20324](https://github.com/heygen-com/hyperframes/commit/882c203241b43e6a1515c2672a4285d0d4f5425c), [#2479](https://github.com/heygen-com/hyperframes/pull/2479))
- **Studio:** Make sdk cutover transactional ([42055296e](https://github.com/heygen-com/hyperframes/commit/42055296ee7196b402748cda6ab52e56e55ec07e), [#2155](https://github.com/heygen-com/hyperframes/pull/2155))
- **Skills,cli:** Close four reproduced contract gaps from the CLI feedback digest ([7d21cc9b8](https://github.com/heygen-com/hyperframes/commit/7d21cc9b8ae53139a97f3c03648e48c412070d31), [#2476](https://github.com/heygen-com/hyperframes/pull/2476))
- **Render:** Normalize local AAC duration before mux ([189528618](https://github.com/heygen-com/hyperframes/commit/1895286189635b04b5b68f8b8d3695d418e0ba2d), [#2472](https://github.com/heygen-com/hyperframes/pull/2472))
- **CLI:** Preserve media at snapshot end boundary ([ca69b6b08](https://github.com/heygen-com/hyperframes/commit/ca69b6b0809019b1d835b7abb14f5eed99e96634), [#2475](https://github.com/heygen-com/hyperframes/pull/2475))
- **Render:** Discover runtime-inserted media before extraction ([47e4b18f9](https://github.com/heygen-com/hyperframes/commit/47e4b18f997154e861ff39c2d4dde84ab03089ec), [#2474](https://github.com/heygen-com/hyperframes/pull/2474))
- **CLI:** Keep render filename timestamp local ([017183ad6](https://github.com/heygen-com/hyperframes/commit/017183ad661108ddec3d29ddfd5a698ab58f3db0), [#2470](https://github.com/heygen-com/hyperframes/pull/2470))
- **CLI:** Honor PRODUCER_HEADLESS_SHELL_PATH in findFromEnv ([72d30cda8](https://github.com/heygen-com/hyperframes/commit/72d30cda8d12edc8139e83e5da3304061858262a))
- **CLI:** Avoid multiline overlap false positives ([c54bf13fb](https://github.com/heygen-com/hyperframes/commit/c54bf13fb4644b5d4ce27525788faaf80c12d80b), [#2468](https://github.com/heygen-com/hyperframes/pull/2468))
- **Engine,producer:** Classify blank vs psnr from a structural field, not the error message ([36075c679](https://github.com/heygen-com/hyperframes/commit/36075c6797a710b50706c5405e67205fa9ef4c66))
- **Producer,cli:** Round the fallback dB consistently, thread the verify threshold through ([af923d947](https://github.com/heygen-com/hyperframes/commit/af923d947c28c3306dbd05e0ecc2b9bd4961df72))
- **CLI:** Preflight browser archive extraction ([d2aa4f8bc](https://github.com/heygen-com/hyperframes/commit/d2aa4f8bc4654e2be83df842733b2b77ea98dddf), [#2469](https://github.com/heygen-com/hyperframes/pull/2469))
- **Lint:** Exempt caption cues from track density ([f3800f357](https://github.com/heygen-com/hyperframes/commit/f3800f3579ae210c9229135a80f2a0b2f6e31a91), [#2461](https://github.com/heygen-com/hyperframes/pull/2461))
- **CLI:** Discover project-local ffmpeg binaries ([e3ca89e9a](https://github.com/heygen-com/hyperframes/commit/e3ca89e9ac22986e63320b0340adf14de1c6374b), [#2464](https://github.com/heygen-com/hyperframes/pull/2464))
- **CLI:** Scale whisper timeout for long recordings ([a04ce6a24](https://github.com/heygen-com/hyperframes/commit/a04ce6a24488bd877ed478d1daac600d854536a7), [#2463](https://github.com/heygen-com/hyperframes/pull/2463))
- **Media Use:** Format resolver diagnostics ([bf8432bca](https://github.com/heygen-com/hyperframes/commit/bf8432bca806b67e417477d9ac4e6421b59a0714), [#2466](https://github.com/heygen-com/hyperframes/pull/2466))
- **Producer:** Fail renders when audio mixing fails ([6813eaeec](https://github.com/heygen-com/hyperframes/commit/6813eaeece2f5564a05742036290a64dbf8144a5), [#2429](https://github.com/heygen-com/hyperframes/pull/2429))
- **CLI:** Stream non-TTY render progress ([cada0e7c0](https://github.com/heygen-com/hyperframes/commit/cada0e7c0933562501e947ebedfe62ac4957baf2), [#2458](https://github.com/heygen-com/hyperframes/pull/2458))
- **Capture:** Bound static dedup verification time ([d047d28bb](https://github.com/heygen-com/hyperframes/commit/d047d28bb402170be3d993d316ad92ae1d8e08e3), [#2457](https://github.com/heygen-com/hyperframes/pull/2457))
- **Media Use:** Explain missing bundled SFX ([da19f9a69](https://github.com/heygen-com/hyperframes/commit/da19f9a69267fe5f706b97e13a21ecf6852b4e5b), [#2460](https://github.com/heygen-com/hyperframes/pull/2460))
- **Core:** Consolidate external asset and dependency preservation ([7382fabab](https://github.com/heygen-com/hyperframes/commit/7382fabab9c5b7e3fbb6e0b53a4f8a4561a36852), [#2410](https://github.com/heygen-com/hyperframes/pull/2410))
- **Render:** Consolidate preflight and local recovery ([5d3a7404f](https://github.com/heygen-com/hyperframes/commit/5d3a7404fa4dc0907f11ce90db88e3370ea24e1b), [#2403](https://github.com/heygen-com/hyperframes/pull/2403))
- **Skills:** Bundle modular capture helpers ([15ca6fd12](https://github.com/heygen-com/hyperframes/commit/15ca6fd12954a4bfffdb5ef46624c4dbcbc8078c), [#2456](https://github.com/heygen-com/hyperframes/pull/2456))
- **Lint:** Consolidate lint and audit correctness ([ada878fdc](https://github.com/heygen-com/hyperframes/commit/ada878fdcde967a90da6cf49b05f05e67fabce9e), [#2413](https://github.com/heygen-com/hyperframes/pull/2413))
- **Fonts:** Consolidate composition-aware compilation ([37e1b2643](https://github.com/heygen-com/hyperframes/commit/37e1b26434fbc8f0594c0081d42e48533403040d), [#2406](https://github.com/heygen-com/hyperframes/pull/2406))
- **Studio:** Shrink useDomEditCommits.ts under the file-size gate ([07cfc4c19](https://github.com/heygen-com/hyperframes/commit/07cfc4c191707833a900c7a1fe1d8e590ed2639c))
- **Studio:** Atomic timing pin, expanded-list Hide All, repeated-host matching, pointercancel revert ([e820e1809](https://github.com/heygen-com/hyperframes/commit/e820e18092e6fa96404af38b194f9682f78b6070))
- **Studio:** Cancel FlatSlider drags on Escape and right-click ([28304be74](https://github.com/heygen-com/hyperframes/commit/28304be74a450afc27882e8cb6af05074876dffc))
- **Studio:** Guard slider release reentrancy, scope Grade persist to schedule-time callback ([fc70d5f33](https://github.com/heygen-com/hyperframes/commit/fc70d5f3310b25d7088d351375d1824202814f16))
- **Studio:** Version-scope Grade persist, flush pending edits via effect cleanup not render ([e07f1405f](https://github.com/heygen-com/hyperframes/commit/e07f1405f6be5b9bcf0f38060fb27d6333a43b44))
- **Studio:** Wire Grade rollback through the real commit path, scope async completions ([539e027b6](https://github.com/heygen-com/hyperframes/commit/539e027b605a6ce35ea5462f56d59ec540ed79a1))
- **Studio:** Resolve the 4 cumulative blockers from the #2416 tip re-review ([1deb0dc97](https://github.com/heygen-com/hyperframes/commit/1deb0dc97066edcb56bbc05e8b8269f4fd22a6e1))
- **Studio:** Resolve 8 confirmed adversarial-review findings across the flat-inspector stack ([5dd9efe55](https://github.com/heygen-com/hyperframes/commit/5dd9efe5558667c8d230c9ed37bc3013c544e7fa))
- **Studio:** Resolve flat-inspector review defects ([6062d3b31](https://github.com/heygen-com/hyperframes/commit/6062d3b31c52403d42c625aa69170fbb12ab3018))
- **Studio:** Throttle FlatSlider commits instead of debouncing them ([a1fccfa74](https://github.com/heygen-com/hyperframes/commit/a1fccfa748c2f0d9c9045936af302c48d1ff20bb))
- **Studio:** Support drag on FlatSlider, not just click-to-set ([c69977868](https://github.com/heygen-com/hyperframes/commit/c699778689a02df7830763d48a8aa7d164223bce))
- **Studio:** Debounce flat slider drag commits to prevent rapid-fire writes ([567b0aa01](https://github.com/heygen-com/hyperframes/commit/567b0aa017cee9705a7487e113884a7591d957cb))
- **Studio:** Widen FlatSlider's click/drag hit area vertically ([ce07dfcd4](https://github.com/heygen-com/hyperframes/commit/ce07dfcd4d860a560faf543a6f6980a60796baab))
- **Studio:** Animate the implicitly-closed group too, add regression test ([2aefec3e6](https://github.com/heygen-com/hyperframes/commit/2aefec3e6803a3b71c7db54422343846d718cef9))
- **Studio:** Restore capitalize, end-align, live-commit size, and autofocus in flat Text ([f6fa9b4ec](https://github.com/heygen-com/hyperframes/commit/f6fa9b4ec38341b2ad086722aa545f9645f73a74))
- **Studio:** Restore zero-strength revive, keyboard hold, and HDR detail in flat Grade ([8a25f21cd](https://github.com/heygen-com/hyperframes/commit/8a25f21cd6c917e2af6878d960d9f6aed1d220b8))
- **Studio:** Restore stroke color, radius unlink, and mask inset in flat Style ([58bb05c31](https://github.com/heygen-com/hyperframes/commit/58bb05c31d571386a95df34ad2263c349be5c873))
- **Studio:** Retire legacy Style and Grade sections from flat inspector ([22359eaab](https://github.com/heygen-com/hyperframes/commit/22359eaab38332c2da57ee6a1d89def00162a2da))
- **Studio:** Recompute keyframe currentPct from the corrected timing basis in the flat Layout group ([4b592832a](https://github.com/heygen-com/hyperframes/commit/4b592832ab778ba180e1a36513cfd3c81ab04501))
- **Studio:** Reconcile keyframe-seek timing basis between flat Layout and Motion groups ([b155ed46b](https://github.com/heygen-com/hyperframes/commit/b155ed46b63989e6e77e2186e6ed1bfc184fc200))
- **Engine:** Consolidate capture readiness and retries ([9e2afbcce](https://github.com/heygen-com/hyperframes/commit/9e2afbcce58bd87c6febd552c433609db3b4546f), [#2404](https://github.com/heygen-com/hyperframes/pull/2404))
- **Skills:** Consolidate animation-map capture reliability ([eb731b6a8](https://github.com/heygen-com/hyperframes/commit/eb731b6a8ae731f4367e27dca9c6a32d5db60934), [#2409](https://github.com/heygen-com/hyperframes/pull/2409))
- **CLI:** Bundle preview font localization ([9ce44b660](https://github.com/heygen-com/hyperframes/commit/9ce44b660363a9feba64f3568a663e9a9ccafc80), [#2449](https://github.com/heygen-com/hyperframes/pull/2449))
- **Render:** Consolidate duration and timing correctness ([0b3dfb3f8](https://github.com/heygen-com/hyperframes/commit/0b3dfb3f84dd2bd711a4a2ebfe93822c3969ea1c), [#2405](https://github.com/heygen-com/hyperframes/pull/2405))
- **Product Launch:** Consolidate media brand and audio contracts ([6ac18fd68](https://github.com/heygen-com/hyperframes/commit/6ac18fd68d1ef2f007884d23dfb1d297faec4347), [#2408](https://github.com/heygen-com/hyperframes/pull/2408))
- **Studio:** Apply cross-file rule to all tripwire entry points; harden disk-truth check ([17f3e5beb](https://github.com/heygen-com/hyperframes/commit/17f3e5beb0dffd92ea68b2437f8ffcaf62998d46))
- **CLI:** Surface HYPERFRAMES_BROWSER_PATH hint on pinned browser download failures ([fd02e6efc](https://github.com/heygen-com/hyperframes/commit/fd02e6efc9b9155252c2a3486dbd2d3826d6719e))
- **Studio:** Cross-file tripwire guard + stale-session disk check ([405af8f8b](https://github.com/heygen-com/hyperframes/commit/405af8f8ba1f58aa189db1bd7ff2dd71f3a23d77))
- **Studio:** Gate flat Text group to text-editable elements, dedupe heading in multi-field fallback ([7b5d8c7d4](https://github.com/heygen-com/hyperframes/commit/7b5d8c7d44264ea4345763d1af69a028fb14a1e1))

## Docs & Examples

- **Registry,skills:** Surface code-highlight 0-based indexing and opacity-reveal sweep guidance ([c8d13af9b](https://github.com/heygen-com/hyperframes/commit/c8d13af9b299cf227a83867747fbb166c94c83d5), [#2418](https://github.com/heygen-com/hyperframes/pull/2418))
- **Studio:** Fix stale radius-row comment after unlink fix ([8564ea4c9](https://github.com/heygen-com/hyperframes/commit/8564ea4c92091c9ef6cefa2cc33450b781a5b76d))
- **Templates:** Note how to bump the project's pinned CLI ([e85a50662](https://github.com/heygen-com/hyperframes/commit/e85a50662b62f5c10d3948850694e73ab4f4edfb))
- **Skills:** Instruct agents to bump stale project CLI pins ([499099f1c](https://github.com/heygen-com/hyperframes/commit/499099f1cbd596747a7ee5a431b8dfc2f77c424d))

## Catalog

- **Registry:** Install liquid-glass runtimes ([26eb5956e](https://github.com/heygen-com/hyperframes/commit/26eb5956e5fd63dabafa2d5cc56142e4a688707a), [#2451](https://github.com/heygen-com/hyperframes/pull/2451))
- **Check:** Ignore registry component templates ([14df58f01](https://github.com/heygen-com/hyperframes/commit/14df58f017131140712cda342d341dbeae00cd63), [#2450](https://github.com/heygen-com/hyperframes/pull/2450))

## Internal

- **CLI:** Parameterize browser-install error hint across darwin/win32/linux ([0e3c7269c](https://github.com/heygen-com/hyperframes/commit/0e3c7269cf648d23c11f0f711241f3e8d9ba6c35))
- **Studio:** Remove section pinning from the flat inspector ([2285b399e](https://github.com/heygen-com/hyperframes/commit/2285b399e598edf4b3bb4cefd56cd0882972b460))
- **Studio:** Scroll only the open group's body, keep headers fixed ([528f2be24](https://github.com/heygen-com/hyperframes/commit/528f2be24246e52ae01cb342c7cc43d83a2dedc1))
- **Studio:** Assert stopPropagation prevents onSelect on remove click ([475f764e5](https://github.com/heygen-com/hyperframes/commit/475f764e5a057488000ec3c24fef019ef6a9d80e))
- **Studio:** Rename unpin test to match what it actually verifies ([e6cf07536](https://github.com/heygen-com/hyperframes/commit/e6cf075363ed4b0b1446b22a49d56e05ccadd216))
- **Studio:** Collapse dead-branch scale ternary in Adjust sliders ([82cb7b897](https://github.com/heygen-com/hyperframes/commit/82cb7b8979da9bc4530a185bc08fc869ffba95fd))
- **Studio:** Extract useColorGradingController from ColorGradingSection ([22b3f07c5](https://github.com/heygen-com/hyperframes/commit/22b3f07c56b522a47269451dee5f197108604a18))

## Other Changes

- **Studio:** Distinguish open-section body from header background ([127b8e465](https://github.com/heygen-com/hyperframes/commit/127b8e46585e8de9555cc8b3abe63323795e6728))

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

<Update
  label="HyperFrames v0.7.58"
  description="Released - 2026-07-14"
  tags={["Release", "Feedback", "Producer", "Pr To Video"]}
>
HyperFrames now uses a 0–10 recommendation scale for feedback, keeps canvas z-order actions synchronized with timeline lanes, and makes the core workflow set easier to install from the skills picker. Rendering is more reliable across variable-bound and root-absolute media, explicit worker counts, Windows FFmpeg failures, and final artifact publication, while CLI snapshot, frame, layout, and contrast diagnostics are more consistent.

## Features

- **Feedback:** Adopt 0–10 recommendation scale ([990f5c314](https://github.com/heygen-com/hyperframes/commit/990f5c314513a379ccceef050da31a633101c9d1), [#2438](https://github.com/heygen-com/hyperframes/pull/2438))
- **Studio:** Mirror canvas z-order actions into timeline lanes (track order = default paint order) ([89db71889](https://github.com/heygen-com/hyperframes/commit/89db7188994b6d808382cb311dd4d3677a89078d), [#2380](https://github.com/heygen-com/hyperframes/pull/2380))
- **Skills:** Group core skills in the skills add picker ([4a4903b49](https://github.com/heygen-com/hyperframes/commit/4a4903b49a8e1c8cf5ffa91add6c1d9032e79317), [#2412](https://github.com/heygen-com/hyperframes/pull/2412))

## Fixes

- **Render:** Limit automatic missing-libx264 fallback to macOS VideoToolbox; other hardware encoders now require explicit GPU configuration and surface their native FFmpeg error.
- **CLI:** Resolve color-mix() colors in contrast audit instead of false-failing ([6c2513d5c](https://github.com/heygen-com/hyperframes/commit/6c2513d5c80fea57d6686ccddf560e2e8c213afb), [#2445](https://github.com/heygen-com/hyperframes/pull/2445))
- **Producer:** Probe variable-bound media sources ([d2c8c2d80](https://github.com/heygen-com/hyperframes/commit/d2c8c2d8087814f35a3059069efc8c3a7a91cad8), [#2444](https://github.com/heygen-com/hyperframes/pull/2444))
- **Pr To Video:** Use display names, not GitHub logins, in credits narration ([4cba58f5a](https://github.com/heygen-com/hyperframes/commit/4cba58f5a3a269b438d88aa9be406f7961c2fa25), [#2385](https://github.com/heygen-com/hyperframes/pull/2385))
- **Engine:** Honor explicit render worker counts ([e05debe1a](https://github.com/heygen-com/hyperframes/commit/e05debe1afadb802590ee8a58c55f7494a9229f1), [#2439](https://github.com/heygen-com/hyperframes/pull/2439))
- **Render:** Diagnose unlaunchable Windows FFmpeg ([3d7e26aab](https://github.com/heygen-com/hyperframes/commit/3d7e26aabfa34d1a96cc66b7b59cd646711bf216), [#2430](https://github.com/heygen-com/hyperframes/pull/2430))
- **Render:** Publish artifacts atomically ([fb0d82350](https://github.com/heygen-com/hyperframes/commit/fb0d8235008632439967117d4e7f798cfb07e592), [#2154](https://github.com/heygen-com/hyperframes/pull/2154))
- **CLI:** Consolidate snapshot and frame diagnostics ([6933e8acd](https://github.com/heygen-com/hyperframes/commit/6933e8acda57268da9a40e0adf3d99c85059d2b5), [#2402](https://github.com/heygen-com/hyperframes/pull/2402))
- **CLI:** Consolidate layout and contrast audit correctness ([b98463ae3](https://github.com/heygen-com/hyperframes/commit/b98463ae3ae7e278f410ebcae20ce2c3fc82218b), [#2401](https://github.com/heygen-com/hyperframes/pull/2401))
- **Engine:** Resolve root-absolute media from project ([6fc92308d](https://github.com/heygen-com/hyperframes/commit/6fc92308d638a75d753cf160f656e7ec3f9066ea), [#2399](https://github.com/heygen-com/hyperframes/pull/2399))
- **Engine:** Skip unnecessary dimension pad ([0dfc85b68](https://github.com/heygen-com/hyperframes/commit/0dfc85b680aaff20d89dcab4f9d937b8139eb9f5), [#2398](https://github.com/heygen-com/hyperframes/pull/2398))

## Internal

- **Engine:** Make FFmpeg path assertion platform-safe ([d7204ac47](https://github.com/heygen-com/hyperframes/commit/d7204ac47fceff0551de64312ed6affc41892ddc), [#2433](https://github.com/heygen-com/hyperframes/pull/2433))

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

<Update
  label="HyperFrames v0.7.57"
  description="Released - 2026-07-14"
  tags={["Release", "Producer", "Release", "CLI"]}
>
`hyperframes publish` now returns a stable public URL: re-publishing updates the same link in place, and a `--space` flag plus a committable project file let a whole team publish to one shared URL. This release also keeps preview review sessions alive across reloads and tags HeyGen API calls with an `X-HeyGen-Client-Source` header.

## Features

- **Preview:** Keep review sessions alive ([2a7a5e623](https://github.com/heygen-com/hyperframes/commit/2a7a5e62361c178daf5f741ee6d0479b3c16c3e9), [#2384](https://github.com/heygen-com/hyperframes/pull/2384))
- **CLI:** Stable public URL for hyperframes publish (re-publish updates the same link) ([4495cb735](https://github.com/heygen-com/hyperframes/commit/4495cb7355bcbb401bcaa04355c817220ef0be48), [#2363](https://github.com/heygen-com/hyperframes/pull/2363))
- **Media Use:** Tag HeyGen calls with X-HeyGen-Client-Source ([dd938c7a1](https://github.com/heygen-com/hyperframes/commit/dd938c7a16dc0200fb46ff2037e07913d299a471), [#2365](https://github.com/heygen-com/hyperframes/pull/2365))
- **CLI:** Tag HeyGen API calls with X-HeyGen-Client-Source ([746b6d5b7](https://github.com/heygen-com/hyperframes/commit/746b6d5b7558220f213c8dae69e4175d3aa6445f), [#2368](https://github.com/heygen-com/hyperframes/pull/2368))
- **CLI:** Coordinate-frame layout findings in check ([7f4eaeb56](https://github.com/heygen-com/hyperframes/commit/7f4eaeb56813640cfb026ff6392d3900dcc12715), [#2354](https://github.com/heygen-com/hyperframes/pull/2354))

## Fixes

- **Release:** Resolve packed-consumer transitive deps to local tarballs ([3dcc6e6a8](https://github.com/heygen-com/hyperframes/commit/3dcc6e6a8021d081aa700f0fbf23e7545a610258), [#2396](https://github.com/heygen-com/hyperframes/pull/2396))
- **CLI:** Require explicit non-interactive init source ([8bf7bc3af](https://github.com/heygen-com/hyperframes/commit/8bf7bc3af5242942ad7b7e8664dc5542fca775b2), [#2395](https://github.com/heygen-com/hyperframes/pull/2395))
- **Engine,producer:** Drive forceScreenshot from one authoritative local ([f44bc3a52](https://github.com/heygen-com/hyperframes/commit/f44bc3a5253af417705b9a373a9f0338a58dae08))
- **Engine:** Carry programmatic forceScreenshot opt-out to concrete-resolved site ([72daac2a1](https://github.com/heygen-com/hyperframes/commit/72daac2a1d6785749e78f838114aa1283037f933))
- **Media Use:** Tag avatar-video heygen recipes with X-HeyGen-Client-Source ([ca7c017e4](https://github.com/heygen-com/hyperframes/commit/ca7c017e4986f07ea9da18db5dc817843bbf0826), [#2391](https://github.com/heygen-com/hyperframes/pull/2391))
- **Pr To Video:** Enforce offline frame contract ([852d1891d](https://github.com/heygen-com/hyperframes/commit/852d1891d3936d3976a66ec88ae8488c23dc1c4c), [#2383](https://github.com/heygen-com/hyperframes/pull/2383))
- **Pr To Video:** Bound first-run workspace and context ([fba5cb9c9](https://github.com/heygen-com/hyperframes/commit/fba5cb9c93e462c06afba79b2705ec5e38dffa71), [#2382](https://github.com/heygen-com/hyperframes/pull/2382))
- **Lint:** Isolate IIFE timing constants ([6f4c6308f](https://github.com/heygen-com/hyperframes/commit/6f4c6308f01b5a4471c56833d291ad9bc2a02950), [#2378](https://github.com/heygen-com/hyperframes/pull/2378))
- **CLI:** Surface keyframes from scripts and styles inside \<template\> ([b231b6f96](https://github.com/heygen-com/hyperframes/commit/b231b6f963895bcef76a046a365404432f4b2c3e), [#2374](https://github.com/heygen-com/hyperframes/pull/2374))
- **Render:** Require HDR transfer metadata ([9639824f4](https://github.com/heygen-com/hyperframes/commit/9639824f4edadd0a3768d68270513e20f0dcd3db), [#2377](https://github.com/heygen-com/hyperframes/pull/2377))
- **CLI:** Reject missing init example values ([3a020bf54](https://github.com/heygen-com/hyperframes/commit/3a020bf543dd97df4790370562f3daec5a9862a4), [#2376](https://github.com/heygen-com/hyperframes/pull/2376))
- **Studio:** Address PR #2347 review findings (rounds 1-2) ([a33b3f35e](https://github.com/heygen-com/hyperframes/commit/a33b3f35e1f4326354857f3e15051207efc6b528))
- **Studio:** Flashless z-order commits and visible-overlap stepping ([760b88a6f](https://github.com/heygen-com/hyperframes/commit/760b88a6f3d75ab492ce7ab4718abfe889c5c1eb))
- **Studio:** Persist canvas z-order actions correctly for static elements ([84963ea8b](https://github.com/heygen-com/hyperframes/commit/84963ea8ba469f25466738294bf8cbeae12bf186))
- **Studio:** Make vertical lane moves persist correctly and harden the z/lane pipeline ([19139b91e](https://github.com/heygen-com/hyperframes/commit/19139b91edafba1d012738f666017c1b9a4e0251))
- **Studio:** Restore golden-branch timeline behaviors dropped by the stack rebuild ([54f41b41b](https://github.com/heygen-com/hyperframes/commit/54f41b41b6ffd63eb0eb862517178f3f8868007b))
- **Engine,producer:** Apply software-GPU screenshot invariant at concrete-resolved point ([2e44602f9](https://github.com/heygen-com/hyperframes/commit/2e44602f99c882ecd050870354dd555becd73182))
- **Render:** Surface structured outcomes ([cb69d3fe0](https://github.com/heygen-com/hyperframes/commit/cb69d3fe00da06168a43b6e23a88e93f8dc449cc), [#2153](https://github.com/heygen-com/hyperframes/pull/2153))
- **CLI:** Skip contrast for intentionally covered text ([8e50e8477](https://github.com/heygen-com/hyperframes/commit/8e50e8477ffc4c266f6ee33371f00bbe460b245b), [#2366](https://github.com/heygen-com/hyperframes/pull/2366))
- **CLI:** Accept 1–3-frame short WebMs + add direct pixel-probe tests ([56dcc4e47](https://github.com/heygen-com/hyperframes/commit/56dcc4e47a2cbd8ce60a0a92e89969ac3cacf746))
- **CLI:** Label the batch asset-import RENDER_FAILED with the images endpoint ([bd8ee05ae](https://github.com/heygen-com/hyperframes/commit/bd8ee05ae29c67f61934c43c1c334864e5f8ac31))
- **Core,cli:** Attribute figma REST failures to the endpoint that failed ([4ca1552e2](https://github.com/heygen-com/hyperframes/commit/4ca1552e20af5244f5d21a63aa4e3c0ed7165077))
- **CLI:** Detect WebM alpha lost when the ALPHA_MODE tag is written without side data ([b8562c91d](https://github.com/heygen-com/hyperframes/commit/b8562c91d5fea2155822739644404556b1051255))
- **Engine:** Software-GPU browsers imply screenshot capture ([ba5168293](https://github.com/heygen-com/hyperframes/commit/ba5168293f8d0db11ff2801814aacd7b8497df94))
- **CLI:** Occlusion-probe false positives — pointer-events blindness, low-alpha gradients, not-yet-entered text ([3e3b37d37](https://github.com/heygen-com/hyperframes/commit/3e3b37d37fb330154480902fe39a4330107c3c98), [#2357](https://github.com/heygen-com/hyperframes/pull/2357))
- **Engine:** Support current FFmpeg filter scripts ([3df59fc0a](https://github.com/heygen-com/hyperframes/commit/3df59fc0a4410b2144362e95473e20c149184722), [#2324](https://github.com/heygen-com/hyperframes/pull/2324))
- **Browser:** Recover abandoned install locks ([81a6edcb6](https://github.com/heygen-com/hyperframes/commit/81a6edcb6734470e2a56b33f7367a4459032bef5), [#2328](https://github.com/heygen-com/hyperframes/pull/2328))
- **Render:** Retry explicit parallel capture timeouts ([5ff4ba13f](https://github.com/heygen-com/hyperframes/commit/5ff4ba13f42516491b19065daa753e9512660037), [#2331](https://github.com/heygen-com/hyperframes/pull/2331))
- **CLI:** Declare Apache-2.0 license ([648e4e8c5](https://github.com/heygen-com/hyperframes/commit/648e4e8c54edf7933ad872e1197194e2904cd939), [#2351](https://github.com/heygen-com/hyperframes/pull/2351))
- **Player:** Own connection and media resources ([16942c0c1](https://github.com/heygen-com/hyperframes/commit/16942c0c12fab7e87876fa253432e29d85835db4))
- **Core:** Preserve runtime transport contract ([cc3ca2f9f](https://github.com/heygen-com/hyperframes/commit/cc3ca2f9f7f42ace95da0f7b1ec03d5c8115f2df))
- **Player:** Version runtime protocol ([dcefdd98c](https://github.com/heygen-com/hyperframes/commit/dcefdd98ca4791cf4090fac78f172746c4a1bd92))

## Performance

- **Producer:** Cache local font compression ([3f6ea0a1a](https://github.com/heygen-com/hyperframes/commit/3f6ea0a1ab3be45a64ae307c8a5af803ac9d0c85), [#2397](https://github.com/heygen-com/hyperframes/pull/2397))

## Docs & Examples

- **Media Use:** Drop the HeyGen generative use-cases table ([6892b6266](https://github.com/heygen-com/hyperframes/commit/6892b62662a65f8421a397fd75ae75bc12027512), [#2370](https://github.com/heygen-com/hyperframes/pull/2370))
- **Skills:** Add cloud render + variables to CLI skill, media-use generative use cases ([78b9a814d](https://github.com/heygen-com/hyperframes/commit/78b9a814d54ffa11f6a5782d7a9fea8e0d073ebd), [#2356](https://github.com/heygen-com/hyperframes/pull/2356))
- **CLI:** Sync SRT upload docs from EF ([74fb4dbcc](https://github.com/heygen-com/hyperframes/commit/74fb4dbcc36f5f5fb65fc8757457c718418bda0b), [#2364](https://github.com/heygen-com/hyperframes/pull/2364))

## Internal

- **Engine:** Write HDR fixture color tags into the H.264 VUI ([9ac4ab8de](https://github.com/heygen-com/hyperframes/commit/9ac4ab8dee6fad5a7a47b0c592567e6e1bd9a4ac), [#2389](https://github.com/heygen-com/hyperframes/pull/2389))
- **Studio:** Delete-path duration rollback coverage, shared dismiss predicate on preview open ([512560b4c](https://github.com/heygen-com/hyperframes/commit/512560b4c3d66f30307252765ab3e8d172bec1cc))
- **Fallow:** Allow sampledAlphaIsFullyOpaque test-only export ([c3b0b91fe](https://github.com/heygen-com/hyperframes/commit/c3b0b91feb6be5759a4217c869cc2975b72d63d6))
- **CLI:** Stabilize flaky install-lock wait-notice test with fake timers ([e47af77c5](https://github.com/heygen-com/hyperframes/commit/e47af77c5a9e43524243833a054e61a5ffbd246e))
- **Repo:** Verify packed consumers ([979e9d090](https://github.com/heygen-com/hyperframes/commit/979e9d0902aa336bd8c1e91a61a3bb0be8bb0ddb))
- **Ci:** Stabilize Windows suites after Studio cutover ([758a6d215](https://github.com/heygen-com/hyperframes/commit/758a6d215289cecea4d3c322b9b85d0b7c7ff1e2), [#2320](https://github.com/heygen-com/hyperframes/pull/2320))

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

<Update
  label="HyperFrames v0.7.56"
  description="Released - 2026-07-13"
  tags={["Release", "Studio", "Producer", "Render"]}
>
Studio now uses the rebuilt NLE editor, with a unified timeline, richer asset previews, and safer multi-selection, drag, resize, crop, split, and z-order workflows. Editing actions now settle and persist as atomic transactions, so one gesture produces one undo step and failed writes restore the prior state instead of leaving partial changes.

## Features

- **Studio:** Rebuilt the editor shell, timeline lanes, asset browser, media thumbnails, preview overlays, and Blocks workflow around the new NLE experience ([df29fa7a5](https://github.com/heygen-com/hyperframes/commit/df29fa7a5e43203a989a2ed00c00b5f0e45cee4c), [#2291](https://github.com/heygen-com/hyperframes/pull/2291))

## Fixes

- **Studio:** Made edit commits atomic and corrected undo, razor split, group drag, z-order, instant-hold resize/rotate, overlay geometry, crop flicker, and stale-failure behavior ([df29fa7a5](https://github.com/heygen-com/hyperframes/commit/df29fa7a5e43203a989a2ed00c00b5f0e45cee4c), [#2291](https://github.com/heygen-com/hyperframes/pull/2291))
- **Producer:** Avoid duplicate local-font embedding when multiple references resolve to the same file ([994050310](https://github.com/heygen-com/hyperframes/commit/9940503102c1f26e2ef8f43e75c013b555883696), [#2317](https://github.com/heygen-com/hyperframes/pull/2317))
- **Render:** Allow an explicit composition entry to render without a project-level `index.html` ([796d5df15](https://github.com/heygen-com/hyperframes/commit/796d5df15671050472578eb3add54a0982f311b3), [#2307](https://github.com/heygen-com/hyperframes/pull/2307))
- **Media Use:** Recognize derived video outputs during ingest ([7c0dcb0b1](https://github.com/heygen-com/hyperframes/commit/7c0dcb0b14d65658e7b4eb3fa714a86347313e7a), [#2310](https://github.com/heygen-com/hyperframes/pull/2310))
- **Render:** Scope strict linting to the composition selected for rendering ([38badff82](https://github.com/heygen-com/hyperframes/commit/38badff820a2790b03c83ad643373dcbb76140fc), [#2261](https://github.com/heygen-com/hyperframes/pull/2261))
- **Media Use:** Fall back to bundled sound effects when the HeyGen CLI is missing or outdated ([2e34a2d5a](https://github.com/heygen-com/hyperframes/commit/2e34a2d5a0a14b5653b5a4f6dc109e8869a2e768), [#2257](https://github.com/heygen-com/hyperframes/pull/2257))
- **CLI:** Detect video-driven motion during frozen-frame checks ([44653b31d](https://github.com/heygen-com/hyperframes/commit/44653b31da5621e7b8ae273e8b82dc32ae7acf43), [#2308](https://github.com/heygen-com/hyperframes/pull/2308))
- **Check:** Snapshot restored text state after contrast audits ([b861afe45](https://github.com/heygen-com/hyperframes/commit/b861afe454e2291bb3b2c57c1945a87bf3e8a535), [#2306](https://github.com/heygen-com/hyperframes/pull/2306))
- **Render:** Stream long captures on memory-constrained machines instead of buffering the full frame set ([9c0c1f99d](https://github.com/heygen-com/hyperframes/commit/9c0c1f99d4f4475b8779c29d76bdbf96cd9ee47f), [#2245](https://github.com/heygen-com/hyperframes/pull/2245))
- **Render:** Reject incomplete captured frames before they reach encoding ([995885484](https://github.com/heygen-com/hyperframes/commit/995885484ff88ac8cc1863bbe61ebbd9ab5a2368), [#2293](https://github.com/heygen-com/hyperframes/pull/2293))

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

<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>
