Commit Graph
1178 Commits
Author SHA1 Message Date
Abdullah M. Nazif 707c150cbd fix(cli): include external srcset images in project archives (#6335) 2026-10-25 22:55:35 +00:00
Abdullah M. Nazif abb06b47b7 fix(engine): verify WebGPU device creation before capture (#6343) 2026-10-25 22:54:30 +00:00
Ular Kimsanov 5bb9431a98 docs(guides): pages for making videos with Claude Code, Codex and Cursor (#6352) 2026-10-25 21:46:27 +00:00
Miguel Ángel 33685ef2be fix(core): a self-closed audio group no longer hides the clips after it (#6344)
* fix(core): a self-closed audio group no longer hides the clips after it

HTML does not close a custom element on `/>`, so `<hf-audio-group id="sfx" />` takes in every
later sibling, and the runtime's inert style (`display:none`) hid them in preview, snapshot and
render. The style is now `display:contents`: an empty group still makes no box, and anything
inside one renders as written. A lint warning names the elements a group holds, and the docs and
mixing reference show the group closed.

* style(core): cut the audio group comments to the comment length limits

* fix(core): a muted audio group still hides what sits inside it

A muted bus (`data-hidden`) is hidden by an inline display:none that the bus rule outranked, so
clips inside a muted self-closed bus kept painting while their audio and video frames dropped.
2026-10-25 21:44:32 +00:00
Miguel Ángel 2c10eb0a33 chore: release v0.8.200 (#6337) 2026-10-25 20:50:21 +00:00
Miguel Ángel 42b84632a8 chore: release v0.8.199 (#6328) 2026-10-25 18:13:20 +00:00
Miguel Ángel 26e3045e3b fix(producer): --workers N is a ceiling, drawElement renders keep their single worker (#6314)
* fix(producer): --workers N is a ceiling, drawElement renders keep their single worker

* docs(producer): keep the inversion predicate's doc as short as before
2026-10-25 15:33:05 +00:00
Miguel Ángel ad6771c435 feat(lint): warn when a scene's styles sit outside its template (#6317)
A sub-composition file with a <template> is mounted from the template alone, so a <style>
in its <head> (or a stylesheet link in its body) never applies in preview, snapshot or render.
Warn on it, with the fix in the message: move it inside <template>.
2026-10-25 15:26:20 +00:00
Miguel Ángel ada9932d4e fix(cli): a long video copy reports progress, resumes in 15 s pieces and stops only when stalled (#6307)
* fix(cli): a long video copy reports progress, resumes in 15 s pieces and stops only when stalled

* perf(core): a video copy's size box follows the stage within a fifth, not a half

* docs(cli): shorten two comments to the line limit

* fix(cli): the copy heartbeat drops a finished copy; size budgets follow the stall and progress code

* chore: size budgets rise by this change's measured bytes
2026-10-25 13:53:03 +00:00
Miguel Ángel d7f323d319 chore: release v0.8.198 (#6305) 2026-10-25 12:42:50 +00:00
Ular Kimsanov f5ab7711fb docs(start): the Studio app first, the browser editor named, a showcase wall that renders (#6303) 2026-10-25 09:48:11 +00:00
Miguel Ángel f51650d8a7 chore: release v0.8.197 (#6298) 2026-10-25 09:17:12 +00:00
Miguel Ángel 2bff65b0cd feat(lint): warn when a round-capped line hidden by its dash settings can still show a dot (#6291)
* feat(lint): warn when a round-capped line hidden by its dash settings can still show a dot

* docs(lint): shorten the round-cap dash rule entry
2026-10-25 07:25:17 +00:00
Miguel Ángel 45167743a6 chore: release v0.8.196 (#6288) 2026-10-25 06:52:05 +00:00
Akshar Patel 32d2d3cba0 fix(core): keep cache-busted images visible in bundles (#6264) 2026-10-25 04:15:02 +00:00
Akshar Patel c6c8d81ba3 fix(cli): include encoded external assets in archives (#6266) 2026-10-25 03:45:43 +00:00
Abdullah M. Nazif f5e15b2f77 fix(cli): remove stale briefs when re-freezing recipes (#5324)
* fix(cli): remove stale briefs when re-freezing recipes

* chore: prepare conflict resolution against current main

* chore: preserve reviewed fix on current main

* chore: prepare conflict resolution against current main

* fix(cli): retain recipe brief cleanup with safe directory copies

* chore: prepare conflict resolution against current main

* chore: merge main and refresh recipe skill manifest
2026-10-25 03:45:23 +00:00
Miguel Ángel 1776b42736 chore: release v0.8.195 (#6273) 2026-10-25 03:18:09 +00:00
James RussoandClaude Opus 5.5 7f19f2335a feat(studio): load GSAP from the CLI's bundled copy by default (#6256)
* feat(studio): load GSAP from the CLI's bundled copy by default

Studio preview now loads the GSAP, CustomEase and MotionPathPlugin scripts
it adds from files the CLI ships and serves same-origin at /api/vendor/npm,
instead of jsDelivr. HYPERFRAMES_GSAP_BASE_URL still wins when set, and a
composition on another GSAP version gets its plugin from jsDelivr.

Renders now honor HYPERFRAMES_GSAP_BASE_URL when they replace a missing
local GSAP script, and the setting accepts plain http only for loopback
hosts.

Closes #6205

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* refactor(studio): keep comment share flat for the GSAP local root

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(cli): find the installed gsap with node resolution when run from source

The Windows CI lane installs with the hoisted linker, so gsap is not under
packages/core/node_modules there.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(producer): load a nested composition's missing GSAP from the mirror

A sub-composition's missing local gsap/dist script was hoisted into the
render unchanged, so HYPERFRAMES_GSAP_BASE_URL (and the jsDelivr fallback)
only reached the entry document. Run the same rewrite on every
sub-composition before it is compiled, resolving its path the way the
inliner will hoist it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-25 03:08:42 +00:00
Akshar Patel e2129c3915 fix(lint): allow scoped descendant zoom (#6254)
* fix(lint): allow scoped descendant zoom

* chore(lint): account for scoped zoom bundle size

* fix(lint): retain canvas zoom guard for runtime identity

* fix(lint): preserve runtime identity in selector functions

* fix(lint): retain identity across uncertain selector branches
2026-10-25 01:53:04 +00:00
Akshar Patel d44f67ac1d fix(core): preserve repeated stylesheet imports (#6250)
* fix(core): preserve repeated stylesheet imports

* docs(core): note repeated import bundle growth
2026-10-25 01:53:03 +00:00
Miguel Ángel 2e397dba59 chore: release v0.8.194 (#6269) 2026-10-24 22:17:19 -04:00
Abdullah M. Nazif e7169ae85b fix(cli): scope explicit preview port discovery (#6242)
* fix(cli): scope explicit preview port discovery

* fix(cli): scope preview lifecycle discovery

* fix(cli): report the selected preview and its owned log
2026-10-25 01:53:01 +00:00
Akshar Patel 5b752168c1 fix(parsers): keep each keyframe array on its own timing (#6240) 2026-10-25 01:26:22 +00:00
Akshar Patel 6e77d783c7 fix(core): scene shots keep their shell after leading comments (#6239) 2026-10-25 00:29:36 +00:00
Akshar Patel 17332cf0df fix(engine): concat resolves relative paths without dropping clips (#6238)
* fix(engine): concat resolves relative paths without dropping clips

* test(engine): terminate ffprobe options in concat regression
2026-10-25 00:29:23 +00:00
Akshar Patel 680f5d7465 fix(player): keep Next available for the final slide's reveals (#6233) 2026-10-25 00:29:08 +00:00
Akshar Patel 31e6ed2aed fix(sdk): keep added elements when reopening saved overrides (#6231)
* fix(sdk): keep added elements when reopening saved overrides

* fix(sdk): replay saved overrides in latest edit order

* fix(sdk): preserve saved positions after sibling edits

* test(sdk): cover child edits after base parent restoration
2026-10-25 00:28:49 +00:00
Akshar Patel 6a917780f5 fix(cli): emit valid JSON for filtered keyframes (#6228) 2026-10-25 00:28:42 +00:00
Akshar Patel f21c3e3e7e fix(lint): accept GLSL script blocks without JavaScript syntax errors (#6227) 2026-10-25 00:28:34 +00:00
Abdullah M. Nazif 0c3387b8be fix(producer): report unavailable frame checks in debug logs (#6200)
* fix(producer): report unavailable frame checks in debug logs

* chore: prepare conflict resolution against current main

* fix(producer): retain scoped diagnostics with current artifact handling
2026-10-25 00:28:25 +00:00
Akshar Patel 035a5c0ae1 fix(lint): accept final font-family descriptors without semicolons (#6085) 2026-10-25 00:27:51 +00:00
Akshar Patel 066bc51831 fix(producer): keep runtime media speed in exports (#5528)
* fix(producer): preserve runtime media playback rates

* fix(producer): preserve runtime-inserted speed ramps

* fix(producer): retain scene trims for discovered speed ramps
2026-10-25 00:25:04 +00:00
Abdullah M. Nazif 0289d96ac7 docs: protect skill edits during contributor setup (#5346)
* docs: protect skill edits during contributor setup

* docs: keep skill picker guidance beside its command

* chore: prepare conflict resolution against current main

* docs: preserve checkout skill installation guidance
2026-10-25 00:24:05 +00:00
Abdullah M. Nazif d6c20513d1 fix(render): align container Chrome with the CLI (#5338)
* fix(render): align container Chrome with the CLI

* chore: prepare conflict resolution against current main

* fix(render): retain Chrome visuals and current audio baselines
2026-10-25 00:23:52 +00:00
Abdullah M. Nazif ad41745ab1 fix(cli): preserve ducking gain when music starts later (#5318)
* fix(cli): preserve ducking gain when music starts later

* test(cli): keep ducking regressions standalone

* chore: prepare conflict resolution against current main

* chore: preserve reviewed fix on current main

* chore: prepare conflict resolution against current main

* fix(cli): refresh delayed music ducking against main
2026-10-25 00:22:08 +00:00
Abdullah M. Nazif f9d72a3f73 fix(cli): preserve distinct font URLs during capture (#5312)
* fix(cli): preserve distinct font URLs during capture

* fix(cli): preserve distinct font URLs during capture
2026-10-25 00:21:53 +00:00
Abdullah M. Nazif e5e2d6f1df fix(cli): include external video posters in project archives (#5309)
* fix(cli): include external video posters in project archives

* chore: prepare conflict resolution against current main

* fix(cli): retain poster localization with shared archive resolvers
2026-10-25 00:21:39 +00:00
Abdullah M. Nazif 39364ee4fb fix(cli): respect reference image orientation in grade comparisons (#5288)
* fix(cli): respect reference image orientation in grade comparisons

* chore: prepare conflict resolution against current main

* fix(cli): preserve oriented grade references with lazy image loading
2026-10-25 00:21:07 +00:00
Abdullah M. Nazif 9a517560a8 fix(cli): refresh item manifests when bypassing registry cache (#5256)
* fix(cli): refresh item manifests when bypassing registry cache

* chore: prepare conflict resolution against current main

* fix(cli): preserve registry refresh with bounded timeout fallback
2026-10-25 00:20:54 +00:00
James RussoandClaude Opus 5.5 f180ffca64 fix(cli): reap only orphaned browsers HyperFrames launched (#6251)
* fix(cli): reap only orphaned browsers HyperFrames launched

Orphan cleanup on preview and render killed every PPID-1 process of the
current user whose args named chrome-headless-shell or a Puppeteer temp
profile, which included detached browsers started by other tools.

Every HyperFrames Chrome launch now passes an inert
--hyperframes-owned-browser switch, and the reaper only kills PPID-1
processes that carry it as a whole argument.

Fixes #6203

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* fix(core): serve the browser marker from its own subpath

The GCP image's BeginFrame contract step imports the engine's
browserManager straight from source before core's generated runtime
exists, so pulling the marker from the core root entry broke it.
A dependency-free @hyperframes/core/browser-marker subpath keeps that
import chain as light as it was.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* test(cli): expect the browser marker in the capture fallback launches

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

* docs(cli): say orphan cleanup runs before preview and render

The cleanup only stops browsers HyperFrames launched, so the opt-out is
no longer needed to protect other tools' browsers.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-24 23:09:57 +00:00
Vance IngallsandClaude Sonnet 5.5 19374955c7 feat(studio): the blur panel turns on events with blur (#6255)
Blur finds movers by seeking, and only runs timeline callbacks while it
scans when data-motion-blur-events is on, so motion set from a render(t)
function (k3-promo's rods and pills) showed no blur. Subtle and Strong
now write the attribute and Off removes it.

Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-24 16:27:57 -07:00
Abdullah M. Nazif 1c14fbb542 fix(studio): allow a local GSAP dependency mirror (#6247) 2026-10-24 22:13:28 +00:00
Dante aefca2144c fix(cli): allow disabling orphan browser cleanup (#6213) 2026-10-24 22:13:25 +00:00
Ular Kimsanov 7224812143 docs(studio-app): show the app working, three new pages, today's UI (#6223)
* docs(studio-app): show the app working, three new pages, today's UI

* docs(studio-app): correct what the app does today (fact-checked against both repos' main)

Script: audio goes to HeyGen to transcribe; cuts wait in Pending video edits until Send; today's toolbar; suggested
cuts. Continue from Claude Code: Mac only, inside an agent session, catch-up after that hand-off, real output.
GitHub Copilot added. 4K price, 10-minute sign-in, Auto as the default, real sign-in errors, motion-guide limit,
the right-panel row. Looping clips pause and respect reduced motion.

* docs(studio-app): hold the Share page until Share launches (desktop-share is at 0%)

* docs(studio-app): Home screenshot from a regular account on b467 (Make, Reference, Script)

* Revert "docs(studio-app): hold the Share page until Share launches (desktop-share is at 0%)"

This reverts commit 201070ac7b7a551c5515c1a770be4a5e8ab36ab9.

* docs(studio-app): Export link label names its page

* docs(studio-app): where-is-it clips re-recorded on a regular account, b467

Staff-only items are gone (Pit Crew Academy, View as a user, the HyperFrames agent, Learn). # opens tools by typing;
the tools list and the @ menu match a regular account; the import clip ends before the folder list.

* docs(studio-app): new Script clip on a regular account: Cut, Pending video edits, Send 1 edit, 0:22 to 0:17

* docs(studio-app): Draw clip re-recorded on a regular account (Send 1 edit to Claude Code, 1 min 52 s edit)

* docs(studio-app): Export clip re-recorded on a regular account (1080p, 16 s); cloud rendering as the app shows it

* docs(studio-app): Video 1 change-a-clip demo re-recorded on a regular account (Up to $1.09 shown before Make)

* docs(studio-app): Share clips re-recorded on a regular account; the page mentions HeyGen's Checking step

* docs(studio-app): first-video demo re-recorded on a regular account (question cards, Send answer, 29 min storyboard, 10 min build)

* docs(studio-app): Reference page follows today's flow (the app reads the video, then Copy editing style or Video brief; What to swap); demo re-recorded on a regular account

* docs(studio-app): autoplaying demos start muted so browsers play them; Automatic updates in troubleshooting

* docs(studio-app): update home.jpg in place instead of replacing it

* docs(snippets): DocsVideo stops an autoplaying loop when Reduce Motion turns on mid-visit; play loads it again

* docs(studio-app): motion guides need the person's picture; drop a pending cut by deleting its row; remove two unused stills
2026-10-24 21:37:57 +00:00
Miguel Ángel 89081b9197 chore: release v0.8.193 (#6229) 2026-10-24 12:39:08 -04:00
Miguel Ángel c16b783f5e chore: release v0.8.192 (#6206) 2026-10-24 08:51:29 +00:00
Akshar Patel 316e723409 fix(cli): preserve caption arrays during transcript reimport (#6185) 2026-10-24 08:16:07 +00:00
Akshar Patel 73dda7191c fix(core): preserve images with commas in srcset URLs (#6192) 2026-10-24 08:16:02 +00:00
Akshar Patel 3596a7f22b fix(cli): report failed tag installations to scripts and agents (#6086)
* fix(cli): report failed tag installations to scripts and agents

* fix(cli): restore status markers in tag install summaries
2026-10-24 07:18:42 +00:00