Commit Graph
5414 Commits
Author SHA1 Message Date
Miguel Ángel 6ae1af7470 fix(catalog): compare search vectors by direction so the publish PR can pass (#5359)
* fix(catalog): compare search vectors by direction so the publish PR can pass

* test(catalog): pin the vector tolerance between machine noise and different items

* refactor(catalog): split the per-row cosine out of the vector comparison
2026-10-09 18:04:42 +00:00
Abdullah M. Nazif 9c1d3fbe62 fix(cli): preserve subtitle cues across line endings (#5223)
* fix(cli): preserve subtitle cues across line endings

* refactor(cli): preserve newline handling while reconciling subtitle tests

* refactor(cli): normalize WebVTT line endings at the parser

* style(cli): format the retained subtitle test block
2026-10-09 18:03:12 +00:00
Abdullah M. Nazif 9e69821b8b docs: clarify async font measurement and timeline registration (#5203)
* docs: clarify async font measurement and timeline registration

* chore: align skill manifest with main before regeneration

* chore: regenerate animation skill manifest
2026-10-09 17:56:30 +00:00
Abdullah M. Nazif d03e41c9b4 fix(cli): undo complete timeline batch receipts atomically (#5279)
* fix(cli): undo complete timeline batch receipts atomically

* test(cli): retain both timeline suites before merging main
2026-10-09 17:55:56 +00:00
Miguel Ángel a1803448b8 fix(studio): clip strips resize on the next frame, ending ResizeObserver loop errors (#5187)
* fix(studio): clip strips resize on the next frame, ending ResizeObserver loop errors

* test(studio): verify strip resize frame scheduling deterministically

* fix(studio): a menu set to render inline opens beside its trigger

* fix(studio): a popover set to render inline opens beside its trigger

* fix(studio): a remounted clip strip keeps its own size instead of a queued one

* test(studio): zoom thumbnail tests run resize frames on fake timers

* test(studio): zoom preview test runs the resize frame it guards
2026-10-09 17:54:14 +00:00
Miguel Ángel cea48a548a fix(core): preview stops at the film's end when a scene loops forever (#5320)
* fix(core): preview stops at the film's end when a scene loops forever

* refactor(core): the loop length threshold lives with the composition length

* test(core): pin the endless-loop length at the boundary and through the runtime

* style(core): keep composition length comments under the file's share

* refactor(studio): preview duration guard reads the core loop length limit

* docs(core): length doc says a loop yields only to a floor or fallback
2026-10-09 17:11:11 +00:00
Miguel Ángel b059600083 feat(registry): seven more WebGPU shader backgrounds, from sun burst to color wheel (#5341) 2026-10-09 16:49:32 +00:00
Miguel Ángel 9dbbca7459 feat(registry): seven more WebGPU shader backgrounds, from ripples to thin film (#5190)
* feat(registry): seven more WebGPU shader backgrounds, from ripples to thin film

* fix(registry): describe the three shader orbs as orbs
2026-10-09 16:46:17 +00:00
Miguel Ángel e25394d38e perf(engine): wait for a missing composition timeline once per render, not once per browser (#5227)
* perf(engine): wait for a missing composition timeline once per render, not once per browser

A composition host that never registers a timeline (CSS, canvas or rAF animation
without data-no-timeline) made every capture session of a render wait the full
player-ready timeout: calibration, then the workers, then each static-frame check
page. The first session that times out now records the host ids in a memo shared
by the render's sessions; later sessions report the same timeout warning without
waiting again.

* perf(engine): the static-frame check page stops on a failed script and chunks share one memo

The verification page now gets the session's failed-script list, so it bails after
the short grace like the main page instead of waiting the full timeout. Distributed
chunks share one timeline-wait memo across their sessions. The poll takes an
options object instead of eight positional parameters.

* fix(engine): replay only a clean timeline timeout so a script failure still fails the render

A session that skipped the wait classified it at once, before a late page error
could arrive, so a render that used to stop on a script failure could ship. The
memo is now written only by a wait that ran its full length with no page errors
and no failed script loads; a replaying session that already sees a failed script
load reports a script failure.
2026-10-09 16:34:12 +00:00
Miguel Ángel 577bdf6701 fix(cli): browser ensure fails when the unzip leaves no Chrome executable (#5329)
* fix(cli): browser ensure fails when the unzip leaves no Chrome executable

* refactor(cli): keep install debug output and report only the last unzip attempt

* fix(cli): browser ensure exits after a failure or a --force download

* fix(cli): browser checks name why Chrome could not be installed

* fix(cli): render shows why its setup step failed instead of a crash dump

* refactor(cli): build the browser download label and staged test path once

* refactor(cli): one owner for the render setup result line

* fix(cli): render setup failures report through one error line

* refactor(cli): one reader and writer for both render setup lines
2026-10-09 16:21:46 +00:00
Miguel Ángel 46f6cb3567 feat(registry): eight more WebGPU shader backgrounds, from blob to fractal noise (#5192)
* feat(registry): eight more WebGPU shader backgrounds and a bundle with thirty new shaders

* refactor(registry): simpler bundle copy step in the shader build

* test(registry): every shader block ships the same bundle and names a shader in it

* refactor(registry): one block loader for the shader block tests

* test(registry): name the stale block and match only shader names

* feat(registry): eight more WebGPU shader backgrounds, from blob to fractal noise

* chore(registry): shorter licence line at the top of the shader bundle

* chore(registry): bring in the latest shader bundle branch

* chore(registry): shorter licence line at the top of the shader bundle

* test(registry): every shader block installs the bundle's licences
2026-10-09 09:22:21 +00:00
Abdullah M. Nazif a03d709a52 fix(sdk): correct animation calls in examples and docs (#5247)
* fix(sdk): correct animation calls in editor examples

* docs(sdk): align entrance snippets with tween properties
2026-10-09 09:15:02 +00:00
Miguel Ángel 7a84d29df1 fix(studio): let small picks move when dragged by their middle (#5206)
* fix(studio): let small picks move when dragged by their middle

* fix(studio): keep the grabbed corner under the cursor while resizing

* fix(studio): let picks a few pixels across resize from their corner

* docs(studio): say which picks the resize guard still lets resize
2026-10-09 09:08:02 +00:00
Miguel Ángel 63a7ec692f feat(registry): eight more WebGPU shader backgrounds and a bundle with thirty new shaders (#5191)
* feat(registry): eight more WebGPU shader backgrounds and a bundle with thirty new shaders

* refactor(registry): simpler bundle copy step in the shader build

* test(registry): every shader block ships the same bundle and names a shader in it

* refactor(registry): one block loader for the shader block tests

* test(registry): name the stale block and match only shader names

* chore(registry): shorter licence line at the top of the shader bundle

* test(registry): every shader block installs the bundle's licences
2026-10-09 08:52:03 +00:00
Miguel Ángel 0576b24c75 feat(cli): models list shows which speech models transcribe can use (#5323)
* feat(cli): models list shows which speech models transcribe can use

* refactor(cli): models list and transcribe share one Parakeet runner check

* fix(cli): models list skips whisper links transcribe would download again

* style(cli): keep models list comments under the package share
2026-10-09 07:21:54 +00:00
James RussoandClaude Opus 5.5 3aa68869f7 chore: release v0.8.143 (#5302)
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
v0.8.143
2026-10-08 23:28:49 +00:00
Abdullah M. Nazif 2dd708e0a2 fix(player): honor runtime discovery and source in embeds (#5244) 2026-10-08 22:19:02 +00:00
James RussoandClaude Opus 5.5 04f2bcd67a perf(producer): extract distributed video frames in each chunk (#5290)
* perf(producer): extract distributed video frames in each chunk

Plan v2 no longer extracts long constant-frame-rate videos. It ships
each source once and every chunk extracts only the frames it shows, so
Plan time stops growing with video length (#5260).

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

* docs(aws-lambda): plan no longer bounds video length

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

* test(producer): pin deferred compiled sources to every chunk

Each chunk's page loads every <video> src during session init and a
missing file fails the chunk, so a deferred source under compiled/ must
keep reaching every chunk, as it does on main.

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-08 21:50:01 +00:00
Abdullah M. Nazif 2df897aa43 fix(sdk): preserve unquoted escapes in inline styles (#5246) 2026-10-08 21:30:16 +00:00
Abdullah M. Nazif 1449d0d2a1 fix(cli): normalize the audio passage the clip plays (#5222) 2026-10-08 21:29:17 +00:00
Abdullah M. Nazif 1fac5fb29d fix(cli): preserve literal WebVTT cue text (#5236) 2026-10-08 21:16:36 +00:00
Abdullah M. Nazif fe38e8fe12 docs(cli): explain FFmpeg setup without a package manager (#5237) 2026-10-08 20:58:47 +00:00
Abdullah M. Nazif 83b2f5608f fix(cli): bound timeline bars for negative media starts (#5239) 2026-10-08 20:36:35 +00:00
Abdullah M. Nazif b32ce10b77 fix(cli): audit text beneath transparent composition boxes (#5202) 2026-10-08 20:35:23 +00:00
Abdullah M. Nazif f802aedb5b fix(cli): recognize ancestor gradient text masks (#5207) 2026-10-08 20:30:29 +00:00
Abdullah M. Nazif ee64ebe338 fix(cli): route timeline project directories to inspection (#5240) 2026-10-08 20:27:38 +00:00
Abdullah M. Nazif 1094b8ef0e fix(cli): honor authored durations when listing compositions (#5265) 2026-10-08 20:24:39 +00:00
Abdullah M. Nazif 7faff8154f fix(cli): preserve speaker labels in WebVTT cue text (#5233) 2026-10-08 20:24:19 +00:00
Abdullah M. Nazif 9111d9f97e fix(lint): parse inline script type and source attributes (#5220) 2026-10-08 20:23:55 +00:00
Abdullah M. Nazif b4c847aca2 fix(lint): read attribute values with the HTML parser (#5209) 2026-10-08 20:23:18 +00:00
Abdullah M. Nazif c03aa9224d fix(lint): detect optional managed media calls (#5210) 2026-10-08 20:23:08 +00:00
Abdullah M. Nazif c94d992188 fix(core): seek current dotLottie players by frame (#5275) 2026-10-08 20:22:24 +00:00
Abdullah M. Nazif 00729a566d fix(slideshow): validate nested hotspot entries (#5211) 2026-10-08 20:20:56 +00:00
Abdullah M. Nazif e57d8178c4 fix(core): associate GIF delays with their image frames (#5272) 2026-10-08 20:20:44 +00:00
Abdullah M. Nazif 5a7ada63bf fix(cli): validate the complete TTS speed argument (#5264) 2026-10-08 20:20:37 +00:00
Abdullah M. Nazif c9c9f4d363 fix(cli): preserve caption text inside script blocks (#5226) 2026-10-08 20:18:26 +00:00
Abdullah M. Nazif f5aeecdbf4 fix(cli): retain WebVTT timestamps before cue settings (#5224) 2026-10-08 20:18:15 +00:00
Abdullah M. Nazif 2295ed5ea6 fix(cli): encode background-removal WebM colors as BT.709 (#5278) 2026-10-08 20:13:46 +00:00
Abdullah M. Nazif 072de48e08 fix(cli): reuse duplicate Figma nodes within asset batches (#5276) 2026-10-08 20:12:02 +00:00
Abdullah M. Nazif b1aa71d7d5 fix(cli): recover stale media cache entries (#5269) 2026-10-08 20:11:35 +00:00
Abdullah M. Nazif 320de3973b fix(cli): preserve voice placement when ducking empty transcripts (#5271) 2026-10-08 20:09:19 +00:00
Abdullah M. Nazif e6e5f68eba fix(cli): select media streams before reading adopted metadata (#5270) 2026-10-08 20:09:07 +00:00
Abdullah M. Nazif c9ddbd2d42 fix(cli): report snapshot contact sheet failures (#5196) 2026-10-08 20:08:53 +00:00
Abdullah M. Nazif 85360f370a fix(cli): explain hardware GPU screenshot fallback (#5200) 2026-10-08 20:07:01 +00:00
Abdullah M. Nazif 037f731280 fix(cli): close unused download responses before following redirects (#5261) 2026-10-08 20:06:42 +00:00
Abdullah M. Nazif 730a330800 fix(engine): invalidate cached media metadata after file changes (#5258) 2026-10-08 20:04:48 +00:00
Abdullah M. Nazif 58b7a4662d fix(cli): serve empty project assets without a stream error (#5234) 2026-10-08 20:03:36 +00:00
Abdullah M. Nazif b407178f3a fix(cli): validate cached versions in update metadata (#5214) 2026-10-08 20:02:44 +00:00
Abdullah M. Nazif 548426fef4 fix(sdk): decode scoped IDs when replaying patches (#5243) 2026-10-08 20:01:20 +00:00
Abdullah M. Nazif 95d5494baa fix(engine): preserve out-of-range HDR object positions (#5266) 2026-10-08 20:00:37 +00:00