Commit Graph
6090 Commits
Author SHA1 Message Date
NavpreetSSidhu 8811f0bfbf docs(skills): say which font faces are bundled and which are fetched (#6197) 2026-10-24 12:15:42 +00:00
Miguel Ángel 1a238171ec test: the lifecycle and thumbnail suites load cold modules in a hook, not in their first test (#6212)
* test(cli): the lifecycle suite warms the CLI module graph in a hook, not in its first test

* test(studio): the thumbnail suite warms puppeteer in a hook and cancels leftover requests
2026-10-24 11:26:33 +00:00
serdarucelandserdarucel 3dc0b97bfd fix(engine): disable Dawn's DXC on Windows so WebGPU requestDevice succeeds (#5830)
The chrome-headless-shell that HyperFrames downloads on Windows ships
without dxil.dll and dxcompiler.dll. Dawn's D3D12 backend loads them in
requestDevice, so the adapter is found but device creation fails and
three.js WebGPURenderer silently falls back to WebGL2.

Pass --disable-dawn-features=use_dxc next to --enable-unsafe-webgpu on
win32.

Refs #5775

Co-authored-by: serdarucel <196021214+serdarucel@users.noreply.github.com>
2026-10-24 11:16:01 +00:00
Miguel Ángel 291144e87d fix(studio): a scene swap no longer keeps the previous preview window in memory (#6207)
* fix(studio): a scene swap no longer keeps the previous preview window in memory

* fix(studio): drop the added comment, the handler's name carries it
2026-10-24 11:12:43 +00:00
Miguel Ángel 700187b855 fix(core): color grading builds a new WebGL context when a lost one is never restored (#6211)
* fix(core): color grading builds a new WebGL context when a lost one is never restored

A context the browser evicts and does not restore left every graded clip hidden for good.
After a grace period the runtime now creates a new shared context and moves each clip onto it.

* refactor(core): split the lost-context rebuild into smaller steps and test its retry
2026-10-24 10:34:16 +00:00
Miguel Ángel 1ab871fb11 fix(producer): a render's page-error count includes what the capture workers saw (#6196)
* fix(producer): a render's page-error count includes what the capture workers saw

* fix(producer): a failed parallel capture still carries its workers' page errors

* fix(producer): every capture failure carries the page's errors, in every stage

* chore(engine): drop a comment the capture classifier's name already says
2026-10-24 10:33:03 +00:00
Miguel Ángel 0a8a78edec fix(engine): renames ride out Windows file locks instead of failing the render (#6210)
* fix(engine): renames ride out Windows file locks instead of failing the render

* fix(producer): the true-peak and segment-manifest renames ride out Windows file locks too
2026-10-24 09:51:28 +00:00
Miguel Ángel c16b783f5e chore: release v0.8.192 (#6206) v0.8.192 2026-10-24 08:51:29 +00:00
Miguel Ángel 381b654335 fix(engine): a clip with data-duration and no data-end ends where its duration says (#6195)
parseAudioElements now resolves end the way core's compileTimingAttrs does. A clip
with no length at all warns, naming the clip, instead of silently playing to the end of
its source.
2026-10-24 08:35:15 +00:00
James RussoandClaude Opus 5.5 17dd4ee347 fix(cli): keep beats audio paths inside the project (#6188)
* fix(cli): keep beats audio paths inside the project

An encoded ../ in the music src decoded to a path outside the project, so
hyperframes beats read that file and wrote beats/<rel>.json outside the
project too. Fail the command when either path escapes.

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

* fix(cli): drop added comment in beats containment check

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

* fix(cli): resolve symlinks in beats path containment

The lexical check let a symlinked folder inside the project send the read
or the beat-file write outside it, and refused an in-project file named
..music.wav. Use the realpath-aware resolveWithinProject and isSafePath
from core for both paths.

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 08:23:32 +00:00
Miguel Ángel c324a40a87 fix(cli): lint accepts one composition file as well as a project directory (#6202) 2026-10-24 08:22:53 +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
Rudy Mizrahi Celekli 4153460856 fix(sdk): unsubscribe persistence errors on disposal (#5328)
Signed-off-by: Rudy Celekli <rudy@gradiahq.com>
2026-10-24 08:15:57 +00:00
Rudy Mizrahi Celekli cb40dfb456 fix(lint): reject parser-invalid variable defaults (#5314) 2026-10-24 08:15:52 +00:00
Rudy Mizrahi Celekli 004409e570 fix(cli): preserve authored clip length when moving (#5315)
Signed-off-by: Rudy Celekli <rudy@gradiahq.com>
2026-10-24 08:15:49 +00:00
Monster-GM 6c5ad56e46 fix(producer): forward GPU preference to HDR streaming encoder (#5030) 2026-10-24 08:15:42 +00:00
Diego López e3881bc589 test(engine): synthesize the untagged AV1 fixture with whichever AV1 encoder ffmpeg has (#5379) 2026-10-24 08:15:40 +00:00
Miguel Ángel c523234e8d feat(studio): Tooltip can wrap a long label and cap it at a number of lines (#6199)
* feat(studio): Tooltip can wrap a long label and cap it at a number of lines

* fix(studio): a wrapped Tooltip label breaks a long URL or path too
2026-10-24 08:13:09 +00:00
Miguel Ángel f3d00799e4 fix(cli): remove-background keeps going on CPU when a provider fails on a frame (#6201)
* fix(cli): remove-background keeps going on CPU when a provider fails on a frame

* test(cli): state the frame-failure fallback as the rule it pins
2026-10-24 08:13:03 +00:00
Abdullah M. Nazif d63ff907aa fix(cli): read explicit TTS file input before synthesis (#5306) 2026-10-24 07:31:57 +00:00
Abdullah M. Nazif f937076b26 fix(cli): preserve unrelated package versions during upgrades (#5347) 2026-10-24 07:31:54 +00:00
Abdullah M. Nazif 0e4a0ffbab fix(cli): preserve CSS priority during full-page capture (#5316) 2026-10-24 07:31:52 +00:00
Abdullah M. Nazif 94a265e486 fix(core): sample hue curves across their periodic seam (#5287) 2026-10-24 07:31:49 +00:00
Miguel Ángel b47d745c05 fix(core): color grading rebuilds the graded clips when a lost WebGL context is restored (#6177)
* fix(core): color grading rebuilds the graded clips when a lost WebGL context is restored

A clip shown while the context was lost never got an entry.

* fix(core): drop the added comment line from the color grading restore fix
2026-10-24 07:21:33 +00:00
Rudy Mizrahi Celekli 81c2968545 fix(cli): keep error normalization string-valued for custom JSON (#5723) 2026-10-24 07:20:52 +00:00
Xinyu YANG 879d735ee0 fix(core): keep bundled HTML under V8's max string length (#6134) 2026-10-24 07:19:00 +00:00
Rudy Mizrahi Celekli d338baf873 fix(cli): preserve unicode when truncating feedback links (#5721) 2026-10-24 07:18:47 +00:00
Rudy Mizrahi Celekli 49a7700372 fix(cli): read and patch byte-marked project configs (#5725) 2026-10-24 07:18:44 +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
Dante 8b1bf6b914 fix(player): include visible playback rate in accessible name (#6032) 2026-10-24 07:18:36 +00:00
Akshar Patel c9ab2796af fix(engine): repeat looped audio through its export slot (#6184) 2026-10-24 07:18:32 +00:00
Akshar Patel 629dd8fb76 fix(lint): ignore inactive mask declarations (#6186) 2026-10-24 07:18:27 +00:00
Miguel Ángel c618c71ad5 fix(cli): snapshot --output clears only the frames it wrote (#6176)
* fix(cli): snapshot --output clears only the frames it wrote

* fix(cli): drop the comment the snapshot name pattern does not need
2026-10-24 06:28:42 +00:00
Miguel Ángel 53e1dfce9e fix(engine): h265 renders no longer fail on hosts with more than 16 cores (#6193)
* fix(engine): h265 renders no longer fail on hosts with more than 16 cores

libx265 rejects more than 16 frame threads, so the thread count taken from the
CPU quota is now capped at 16 for x265. x264 is unchanged.

* fix(engine): pass the encoder to the thread cap in the CFR re-encode
2026-10-24 05:33:56 +00:00
Miguel Ángel ebb057fb62 fix(cli): a check that hits its deadline keeps the findings it already made (#6190) 2026-10-24 05:08:49 +00:00
Abdullah M. Nazif 0b8f5ec8f5 fix(cli): normalize muted targets before applying tolerance (#5291) 2026-10-24 05:01:46 +00:00
Miguel Ángel 3ef28e26c6 test(engine): the GPU probe tests do not start a Chrome from the host cache (#6187) 2026-10-24 04:33:57 +00:00
Miguel Ángel 09d7f1c646 fix(core): release decoded preview audio once no clip uses its source (#6178)
* fix(core): release decoded preview audio once no clip uses its source

The preview transport cached every decoded audio buffer by source until the player was destroyed. Each scheduling pass now drops cached buffers whose source no clip in the document still uses (scene edits, swapped sources), and keeps the rest so playback never re-decodes a clip still in the film.

* fix(core): drop the comment the comment-share ratchet rejects
2026-10-24 04:29:31 +00:00
Miguel Ángel acb47de7d2 perf(producer): the audio task finds sound with a probe and reads URL clips in parallel (#6174)
* perf(producer): the audio task probes each video for sound instead of extracting its frames

* test(producer): the audio task finds a video's sound from a probe, with no frames extracted

* perf(engine): the audio mix reads clips held at a URL many at a time

* style(engine): format the remote clip slot choice

* fix(producer): the audio task places a video's sound in the window extraction would give it

* style(producer): format the slot cases of the script-src audio test
2026-10-24 04:23:15 +00:00
Miguel Ángel 5ebbc8ef6d fix(studio-server): project history no longer copies video, audio or huge files (#6171)
* fix(studio-server): project history no longer copies video, audio or huge files

* fix(studio-server): clean drops old video and audio copies in every history

* fix(studio-server): TypeScript source is not media, so its history is kept

* fix(studio-server): split the media reclaim and point the slow-copy route test at a non-media file

* fix(studio-server): no unused expression when collecting a history's hashes
2026-10-24 04:12:48 +00:00
rumi7911 fa5dbd12c9 docs: clarify Claude Code plugin auto-update steps (#5120) 2026-10-24 04:11:48 +00:00
Abdullah M. Nazif 2a9b9f4e7c fix(cli): audit clipped text beneath transparent composition hosts (#5400) 2026-10-24 04:11:34 +00:00
Abdullah M. Nazif 9ab4de4599 fix(cli): refuse undo when a target or backup is missing (#5365) 2026-10-24 04:11:31 +00:00
Abdullah M. Nazif 191caf943a fix(lint): check timeline registration before explicit font loads (#5363) 2026-10-24 04:11:29 +00:00
Abdullah M. Nazif 14c9eb4487 test(core): isolate local font fallback from system discovery (#5360) 2026-10-24 04:11:27 +00:00
Abdullah M. Nazif 0aa728b1aa fix(studio-server): decode authored audio attributes for loudness (#5289) 2026-10-24 04:11:25 +00:00
Abdullah M. Nazif bd0be1bdae fix(cli): stage temporary HTML comparisons without recursive copies (#5286) 2026-10-24 04:11:21 +00:00
Abdullah M. Nazif ecf5db7070 fix(core): preserve blocked addresses in mounted import maps (#5277) 2026-10-24 04:11:18 +00:00
Abdullah M. Nazif a1b23f1e4d fix(lint): read actual font CSS declarations (#5221) 2026-10-24 04:11:15 +00:00