Repository navigation
fix(cli): render with no -o writes to the project's renders folder from any directory - #6766
Conversation
There was a problem hiding this comment.
Verdict: APPROVE · 0 blocker · 0 important · 0 nits · head 266a6224
The fails without the fix: line holds. With resolve("renders") restored, the new test fails with Received: "/renders" and so does the HLS default-path test. 41/41 pass at the head. The default now matches the folder Studio (studioServer.ts:626) and clean already use. Note the visible change: hyperframes render ./proj started from the parent directory now writes to proj/renders/ instead of ./renders/.
Scope / CI
Grepped every other "renders" default in cli and studio-server. cloud render still writes under the working directory, as the body says; batchRender.ts:160 affects only the empty-batch fallback. All CI is green. The required Windows engine-cli lane first hit the known audio/read/read.test.ts 20 s timeout in an untouched test, and rerun --failed passed.
What
hyperframes renderwith no-onow writes to<project>/renders/, whatever directory the command was started from.Why
The default output folder was
resolve("renders"), relative to the process working directory. Started from a directory that is not the project (a launcher whose cwd is/), the banner showed/renders/<project>_<timestamp>.mp4and the render failed withENOENT: mkdir '/renders'.Related work
No open PR touches the default output path.
How
createRenderPlanbuilds the default directory fromproject.dir, the same folder Studio andcleanalready treat as the renders folder. Run from inside the project the path is unchanged.Test plan
fails without the fix: with
resolve("renders")restored, the new testwrites the default output under the project's renders folder whatever the cwd isfails withReceived: "/renders", and the HLS default-path test fails too.What I measured
plan.test.ts: 41 passed with the fix; 2 failed with it reverted (above). oxlint and oxfmt clean on the changed files.What I did NOT execute
A full
hyperframes renderend to end, andhyperframes cloud render, which still defaults to./rendersof the working directory.Size
Under 100 lines on purpose: a render with no output path fails today, so this ships alone rather than waiting for a larger change to carry it.