Commit Graph
6484 Commits
Author SHA1 Message Date
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
Miguel Ángel d81099b1ff fix(cli): Apple Silicon skips an ffprobe or ffmpeg that cannot run and names it (#6760)
* fix(cli): Apple Silicon Macs without ffmpeg get working arm64 ffprobe and ffmpeg

* fix(cli): drop the bundled ffmpeg installers, name the x86-only binary it skipped
2026-10-29 23:20:11 +00:00
James Russo 3e462f4277 feat(cli): use dedicated HyperFrames OAuth clients (#6687)
* feat(cli): use dedicated HyperFrames OAuth clients

* docs(cli): shorten credential store contract comment

* fix(cli): respect Windows modes in OAuth media test

* fix(cli): keep media workflows on HyperFrames OAuth

* test(cli): scope billing status assertions to wallet rows

* test(cli): align telemetry fixtures and CI auth inputs
2026-10-29 21:25:20 +00:00
Miguel Ángel 4e2a1c215a chore: release v0.8.217 (#6751) v0.8.217 2026-10-29 15:13:36 +00:00
Miguel Ángel b320a66d51 test(cli): a stalled download times out once its bytes are on disk, not on a clock (#6750)
* test(cli): stalled-download tests give each stall time for its bytes to reach disk

* test(cli): a stalled download times out once its bytes are on disk, not on a clock
2026-10-29 14:59:11 +00:00
Miguel Ángel 17ffe479dc feat(studio): a preview reload that gives up on the runtime says how far the page got (#6747)
* feat(studio): a preview reload that gives up on the runtime says how far the page got

* refactor(studio): read the reload's page phase in one place, before the frame is let go

* test(studio): every reload page phase is covered, and the hook gains no branch for it

* refactor(studio): the reload page phase reads the window only once the frame has a document
2026-10-29 14:37:08 +00:00
Miguel Ángel 558097ed70 fix(cli): check no longer calls a redrawn WebGL canvas a dead stretch (#6749)
* fix(cli): check no longer calls a redrawn WebGL canvas a dead stretch

* fix(cli): keep the seek comment under the line limit
2026-10-29 14:34:07 +00:00
Miguel Ángel a3ff1c4902 revert(engine): late-starting videos play to their last frame (#6746)
Reverts #6736. Its end-of-clip read fails intermittently on Windows, and the fallback
then expects frames past the clip's end.
2026-10-29 14:14:21 +00:00
Miguel Ángel 838f8782c4 fix(cli): a project .env only sets the CLI's own settings (#6565)
* fix(cli): a project .env only sets the CLI's own settings

The .env in the working directory could set any environment variable for every
command except capture. It now sets only the keys the CLI reads from a project:
the HeyGen, ElevenLabs and Figma credentials and the vision keys, models, Vertex
settings and timeout. Other keys are ignored, and one stderr line names them.

* test(cli): the startup test and comment budget follow the single project .env key list

* fix(cli): a project .env can still turn telemetry off
2026-10-29 12:41:46 +00:00
Miguel Ángel 22b53c0115 fix(engine): late-starting videos play to their last frame (#6736)
* fix(engine): late-starting videos play to their last frame

A video whose first frame is after timestamp 0 could end early (frozen
tail) or late: ffprobe's stream duration does not run from the first
frame in every container (fragmented MP4, Matroska). Such a video's end
is now read from its last packet, once, where its facts are probed.

* test(engine): the WebM-with-audio case measures its first frame from the file

* test(engine): the first-frame probe ends its arguments with the input file
2026-10-29 12:05:27 +00:00
Miguel Ángel 93f3d3dcbb fix(core): the preview's scene window settles when a scene can't unmount instead of hanging the page (#6740)
* fix(core): the preview's scene window settles when a scene can't unmount instead of hanging the page

* refactor(core): name the scene window's stuck step instead of commenting it
2026-10-29 12:04:12 +00:00
Miguel Ángel 943849025a feat(cli): a render that finds a file missing says which kind of file, never its path (#6742) 2026-10-29 12:03:09 +00:00
Miguel Ángel 1a80b5407d fix(cli): allow-occlusion on the covering element silences text_occluded (#6741)
* fix(cli): allow-occlusion on the covering element silences text_occluded

* fix(cli): allow-occlusion also works on graded video and does not excuse a card's own text
2026-10-29 12:00:55 +00:00
Miguel Ángel e1a8c7f173 fix(engine): long films show progress during the effect check and never wait minutes on it (#6697)
* fix(engine): long films start capturing at once instead of after a full effect scan

* fix(engine): give the effect scan two minutes, under the app's stall limit

* fix(engine): show effect scan progress so a long scan reads as preparing, not stalled
2026-10-29 10:35:12 +00:00
Miguel Ángel 0da46832ef fix(cli): a failed render's code comes only from the producer's list of safe codes (#6737) 2026-10-29 10:31:22 +00:00