Commit Graph
6498 Commits
Author SHA1 Message Date
Miguel Ángel ef2159fe8c fix(cli): capture retries without WebGL when the page stops answering under software GL (#6821)
* fix(cli): capture retries without WebGL when the page stops answering under software GL

* style(cli): format the capture stall retry test

* style(cli): shorten the stall watcher comment

* fix(cli): drop the comment line the comment ratchet refuses

* test(cli): the stall retry tests use a fake output path that is not a temp file
2026-10-30 13:03:12 +00:00
Miguel Ángel b20d0a62ce fix(studio): a split at a clip's edge leaves the file unchanged (#6826)
* fix(studio): a split at a clip's edge leaves the file unchanged

* fix(studio): keep the split margin's doc within the comment width

* chore(studio-server): keep the split margin's comments within the file's share
2026-10-30 13:01:29 +00:00
Miguel Ángel 88d8e5b490 fix(cli): check and snapshot load GSAP from the bundled copy, not jsDelivr (#6824)
* fix(cli): check and snapshot load GSAP from the bundled copy, not jsDelivr

* test(cli): bundled GSAP loads on a page whose own requests interception answers
2026-10-30 12:54:06 +00:00
Miguel Ángel bb2c8142fd perf(studio-server): add createProjectSignatureAsync so project open stops blocking the loop (#6825)
Same signature as the synchronous walk, with the directory walk and file reads awaited.
2026-10-30 12:26:29 +00:00
Miguel Ángel 01783f3757 feat(cli): review notes name the command that reviews the cuts inside a sub-composition (#6820)
* feat(cli): review notes name the command that reviews the cuts inside a sub-composition

* fix(cli): the review note fires only for a host with cuts inside it
2026-10-30 11:55:05 +00:00
Miguel Ángel 44ee07a2da fix(cli): check drops a request a network change cut when the file loads again (#6823)
* fix(cli): check drops a request a network change cut when the file loads again

* style(cli): format the network-change check fix

* fix(cli): drop the comment the ratchet would count

* fix(cli): a check out of time drops the requests a network change cut
2026-10-30 11:32:18 +00:00
Miguel Ángel 536209da07 fix(producer): report extract_video progress while ffmpeg extracts frames (#6822)
Frames ffmpeg has written now reach the render's stage progress, so a long source video no longer leaves the render silent between extract_video and capture.
2026-10-30 11:23:59 +00:00
Miguel Ángel d4a866d612 fix(cli): check no longer calls text occluded by a cover that a CSS mask paints through (#6818)
* fix(cli): check no longer calls text occluded by a cover that a CSS mask paints through

* fix(cli): a mask on a wrapper around both the text and the cover does not hide the cover

* style(cli): format the mask walk
2026-10-30 10:56:15 +00:00
Miguel Ángel 315969cda0 fix(cli): render names the FFmpeg that has no libx264 and how to point at another (#6819) 2026-10-30 10:52:46 +00:00
Miguel Ángel 054592c4de fix(cli): check sees an image swap even when the page cannot read the image's pixels (#6817) 2026-10-30 10:20:48 +00:00
Miguel Ángel a373071261 feat(cli): beats analyses an audio or video file given directly (#6812)
* feat(cli): beats analyses an audio or video file given directly

* docs(skills): the beats reference says a file argument is analysed directly
2026-10-30 10:09:07 +00:00
Miguel Ángel 2f8b8c47e0 fix(producer): a render that stalls before its first frame says which worker phase it was in (#6814)
* fix(producer): a render that stalls before its first frame says which worker phase it was in

* fix(producer): a retried capture's stall message no longer names the aborted attempt's workers

* fix(producer): the stall diagnostic adds no comment lines and no extra branch to the stall check
2026-10-30 10:06:58 +00:00
Miguel Ángel 279d40dcd7 test(engine): the rotated-clip fixture builds on ffmpeg older than 6 (#6811) 2026-10-30 09:27:00 +00:00
Miguel Ángel 10a4ed56cb fix(engine): a video clip starting between frames shows its media on the right frame (#6759)
* fix(engine): a video clip starting between frames shows its media on the right frame

* chore(engine): trim the helper comment to one line

* chore(engine): drop the helper comment

* test(engine): extract once per start in the off-grid clip test

* fix(engine): a looped clip keeps its loop origin when the start is off the frame grid

* test(engine): three off-grid starts cover the failure modes and keep the flake gate under its limit
2026-10-30 09:01:21 +00:00
Ular Kimsanov b239d8dea9 docs(readme): link the desktop app download for macOS, Windows and Linux (#6790) 2026-10-30 08:56:03 +00:00
Miguel Ángel 71b668010f fix(cli): the ignored-binary note names only the missing binary, and covers .hyperframes/bin (#6807) 2026-10-30 08:38:05 +00:00
Miguel Ángel 0bd1fd5972 fix(cli): add says --dir is the project root when the folder is missing (#6808) 2026-10-30 08:27:17 +00:00
Miguel Ángel 07c714ce9b fix(core): the first cut after Play starts on time instead of running ahead (#6794)
* fix(core): the first cut after Play starts on time instead of running ahead

* fix(core): learn half the start delay from Play so the first cut keeps its last frame
2026-10-30 08:24:36 +00:00
Miguel Ángel d83f276743 perf(studio): films with thousands of timed clips stop re-reading every clip each frame (#6805)
* perf(studio): films with thousands of timed clips stop re-reading every clip each frame

* perf(studio): drop the added comment lines the ratchet counts
2026-10-30 07:27:26 +00:00
Miguel Ángel b93c01c75a ci(studio): run the merge queue edit accuracy grid in 30 shards (#6804) 2026-10-30 07:05:16 +00:00
Miguel Ángel f4bbbe1074 chore: release v0.8.221 (#6802) v0.8.221 2026-10-30 06:41:36 +00:00
Miguel Ángel 47a1a92064 fix(cli): a missing registry item names the closest ones, and a blocked browser says how to allow it (#6799)
* fix(cli): a missing registry item names the closest ones, and a blocked browser says how to allow it

* fix(cli): let closestNames carry its rule in its name
2026-10-30 06:15:03 +00:00
Miguel Ángel 36cf990d99 test(studio): edit accuracy screenshots are viewport-only and taken in the confirmation re-runs (#6795)
* test(studio): edit accuracy evidence screenshots capture only the viewport

* test(studio): edit accuracy screenshots only in the gate's confirmation re-runs

* test(studio): keep the inStudio doc comment on inStudio
2026-10-30 06:07:59 +00:00
Miguel Ángel 32c01c99a1 fix(registry): caption components keep the last phrase until its last word ends (#6792)
* fix(registry): caption components keep the last phrase until its last word ends

* test(registry): caption last group stays visible until its last word ends

* test(registry): narrow the timeline lookup for strict typecheck
2026-10-30 06:07:40 +00:00
Miguel Ángel b3c47a36a2 fix(cli): snapshot probes each video clip once for all the times it is asked for (#6798)
* fix(cli): snapshot probes each video clip once for all the times it is asked for

* style(cli): drop the probe cache's added comment lines so the comment ratchet holds
2026-10-30 06:07:40 +00:00
Miguel Ángel 3e795ece0f fix(cli): preview stops at once on Ctrl+C after Studio was open (#6782)
* fix(cli): preview stops at once on Ctrl+C while a Studio tab is open

* fix(cli): a closed Studio tab leaves no timer that holds a stopping preview open

* fix(cli): name the tab-closed wait instead of commenting it

* test(cli): the tab-disconnect test checks the route's own keep-alive timer, not every timer
2026-10-30 05:58:35 +00:00
Miguel Ángel f43bec76e7 docs(studio-app): pending video edits have no cap of 10 (#6797) 2026-10-30 05:54:19 +00:00
Miguel Ángel 27e16becb1 test(cli): a failed late-image snapshot reports why it failed (#6793)
* test(cli): a failed late-image snapshot reports why

* test(cli): the late-image failure message includes the JSON the command printed
2026-10-30 05:45:03 +00:00
Miguel Ángel 7f7a4af7c4 fix(cli): add takes several names in one call, and adopted audio is labelled voice or sfx (#6791)
* fix(cli): adopted audio is labelled voice or sfx by its folder or file name, not always bgm

* fix(cli): let the audio kind helper's name carry the rule

* feat(cli): add installs several named items in one call

* fix(cli): split add's per-item install, and keep soundfx folders as sfx
2026-10-30 05:35:50 +00:00
Miguel Ángel 2a9dd05983 ci(studio): split edit accuracy into 15 PR shards packed by measured case time (#6784)
* ci(studio): run the pull request edit accuracy slice in 10 shards

* ci(studio): run the pull request edit accuracy slice in 15 shards

* ci(studio): pack edit accuracy shards by measured case time so they finish together

* ci(studio): load shard timings with require so happy-dom tests can import the grid

* ci(studio): the slow runner stop judges runner speed, not how long a shard's first cases are

* ci(studio): keep the slow runner comment on one line under 120 characters
2026-10-30 05:11:50 +00:00
Miguel Ángel 8c36f3254f fix(cli): check no longer flags a hidden scene child or a small animated sprite (#6783)
* fix(lint): a scene child hidden at zero through a scoped query is not an overlay that starts visible

* fix(lint): a descendant selector inside a scoped query hides the overlay too

* fix(cli): check sees a small sprite move across a large canvas

* style(cli): wrap the media pixel channel comment

* fix(cli): only the liveness signature samples canvases finely, the sweep guard stays coarse
2026-10-30 05:11:06 +00:00
Miguel Ángel 9fd90d23c4 fix(core): long cut-list edits play every cut without dropped or late frames (#6785)
* fix(core): a video plays to the last frame before its out-point instead of stopping a frame early

* fix(core): a dropped frame before an out-point no longer lets the out-point's frame show

* perf(core): a video edit with no animation timeline stops rewriting every clip each frame

* refactor(core): drop the comments the comment ratchet counts

* fix(core): a clip that has fully downloaded stays loaded and plays on time

* refactor(core): drop the comments the comment ratchet counts
2026-10-30 05:01:56 +00:00
Miguel Ángel 21eefcd006 fix(cli): hyperframes docs motion-blur shows the motion blur guide (#6779)
* fix(cli): hyperframes docs motion-blur shows the motion blur guide

* docs(cli): list the motion-blur topic in the docs command reference
2026-10-30 03:55:29 +00:00
Miguel Ángel 360ca9cf61 chore: release v0.8.220 (#6781) v0.8.220 2026-10-30 03:37:22 +00:00
Miguel Ángel 6b7e2c96eb ci(windows): split the engine-cli test lane into two shards (#6670)
* ci(windows): split the engine-cli test lane into two shards

* test(cli): the agent-mode test runs alone, after the files it starved
2026-10-30 03:37:15 +00:00
Miguel Ángel 6c78dee993 perf(studio): a long project's timeline stops redrawing every clip when its elements change (#6773) 2026-10-30 03:24:28 +00:00
Miguel Ángel c922591c6c ci: edit accuracy shards start once the CLI is built, not after all of Build (#6777) 2026-10-30 03:06:12 +00:00
Miguel Ángel 54c98b5906 fix(engine): a video on a non-square pixel grid renders at its display shape (#6772)
* fix(engine): a video on a non-square pixel grid renders at its display shape

* chore(engine): drop comments the names already carry

* fix(engine): a rotated clip with a non-square pixel grid keeps its display shape

* test(engine): the frame probes end their options with -- like every ffprobe call
2026-10-30 03:00:25 +00:00
Miguel Ángel a66b2c8035 fix(cli): anonymous hosts and host in-points move a caption word's lifetime window (#6774)
* fix(cli): anonymous hosts and host in-points move a caption word's lifetime window

* fix(cli): a host's end and playback-start are read like the runtime reads them
2026-10-30 02:56:28 +00:00
Miguel Ángel 8fb08f2a7c fix(engine): a render no longer waits for a sub-composition timeline no script can register (#6764)
* fix(engine): a render no longer waits for a sub-composition timeline no script can register

* fix(engine): the timeline wait matches a twice-mounted id and a template-literal key
2026-10-30 02:56:22 +00:00
Miguel Ángel 0a18d8c350 fix(cli): browser clear reports a browser folder Windows still holds (#6776)
* fix(cli): browser clear still reports a folder Windows holds, and the EBUSY test covers EPERM

* fix(cli): browser clear reports a locked browser folder, with a test that fails if it does not
2026-10-30 02:38:16 +00:00
Miguel Ángel d1c0593717 fix(cli): text-to-speech ignores a foreign PYTHONPATH when it looks for kokoro-onnx (#6769)
* fix(cli): text-to-speech ignores a foreign PYTHONPATH when it looks for kokoro-onnx

* fix(cli): shorten the pythonEnv comment

* fix(cli): text-to-speech keeps a deliberate PYTHONPATH unless the packages fail with it

* fix(cli): drop the python.ts comments the names already say
2026-10-30 02:25:39 +00:00
Miguel Ángel 471d60a8ac fix(core): the playhead keeps moving at a cut while the incoming take has not started (#6768)
* fix(core): the playhead keeps moving at a cut while the incoming take has not started

* fix(core): shorten a comment in the clock

* fix(player): keep the WebKit stops script out of the type check

* fix(core): cut two comments from the clock
2026-10-30 02:25:26 +00:00
Miguel Ángel a30a520970 chore: release v0.8.219 (#6775) v0.8.219 2026-10-30 02:07:39 +00:00
Miguel Ángel c5a52037c9 fix(core): a still sub-composition's data-no-timeline on its template root skips the timeline wait (#6762)
* fix(core): a still sub-composition's data-no-timeline on its template root skips the timeline wait

* chore(core): drop a comment the copy already says
2026-10-30 01:48:17 +00:00
Miguel Ángel f523ee2fca fix(cli): check flags caption words hidden behind a cut-out and ignores a mostly transparent cover (#6770)
* fix(cli): check flags caption words hidden behind a cut-out and ignores a mostly transparent cover

* fix(cli): a caption word's lifetime is shifted only by its composition hosts
2026-10-30 01:47:19 +00:00
Miguel Ángel 6874cc2890 fix(cli): a locked Chrome debug.log on Windows no longer fails check, snapshot or render (#6771) 2026-10-30 01:27:29 +00:00
Miguel Ángel 9c01e2e121 fix(cli): normalize-audio never cuts a clip that is quieter than the target (#6767)
* fix(cli): normalize-audio never cuts a clip that is quieter than the target

* fix(cli): carry the boost-hold rule in a name, not a comment

* fix(cli): normalize-audio no longer says a clip is matched when a limit holds it short of the target

* fix(cli): format normalize-audio, drop the extra comment, and say a held clip is held
2026-10-30 01:21:53 +00:00
Miguel Ángel aa094f3858 fix(cli): render with no -o writes to the project's renders folder from any directory (#6766) 2026-10-30 00:47:28 +00:00
James Russo f7db6ba40c chore: release v0.8.218 (#6758) v0.8.218 2026-10-29 23:31:55 +00:00