Repository navigation
Make CLI downloads match the Assembly's results #593
Description
Why
Writing blog posts around one-command CLI examples (2025 ship-audit sweep) hit these output problems in @transloadit/node@6.1.2. Each makes a documented example fail or produce unusable files. File extensions are tracked separately in #587.
- HLS output doesn't play after download: results are written flat, so
master.m3u8points at640x360_…/640x360_….m3u8that isn't there. Repro:/video/encodehls/360p→/video/adaptivetechnique: hls,bundle_steps: true,-o out/. Keep the result paths. -
-o dir/without-i(import-only or prompt-only Assemblies, e.g./vimeo/import,/image/generate) fails with "You must provide an input to output to a directory" plus a stack trace. -
-i <URL>fails withENOENT … stat 'https://…'although--helpsays URLs are accepted. - Non-TTY stdin without
-i(agent shells, CI) crashes with an unhandledENXIOon/dev/stdin. - Bundled outputs are named after the last input (a bundled
/image/generateresult landed aslogo.png). - Input folders leak into the output tree (deferred to Offer an opt-in CLI layout without input parent folders #621 to preserve compatibility):
-i ../inputs/x.jpg -o out/writesout/inputs/x/<step>/…;<dir>/in/filelands inout/in/file.
Verified on current main: #595 fixed directory downloads without uploads and the non-TTY stdin crash. Live CLI imports succeeded with /dev/null and socket-backed fd 0; the existing stdin command regression tests pass.
Implementation is in #611, rebased onto main after #610 and #612 merged. Kevin’s 2026-10-23 decision keeps existing working directory layouts and time-based skipping, and ships the fixes as a minor release. HLS paths, result names/extensions (#587), URL inputs, and stdin are covered. Removing input parent folders is deferred to #621 as an opt-in layout. Local checks, two live freshness tests, and the live JPEG extension check pass. Final CI passes all 14 checks on 1d5bb2aa; the single blocking watch exited 0. Local checks pass with 1,119 Node tests and 60 download-layout cases.
The two authorized scoped rework review rounds are complete (DSP-473, option B, 2026-10-23), with all four retained findings fixed using red-then-green behavior tests. These preserve intent input folders, omit transient staging paths, retain watch updates, and restore stable mapped-output freshness after input changes. No further round was run. Broader follow-ups are #615, #619, and #621. Unmerged implementation items stay unchecked until #611 merges.
🤖 Claimed by kvz on studio1/node-sdk since 2026-10-23 · resume: codex resume 01a16a73-d73f-7e11-83fe-db48d62fa526
Activity