render: --variables-file (and --variables <path>) fails with "io.readFile is not a function" since 0.8.212
Los mantenedores suelen responder en 1 día
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 76/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- node.js, typescript
- Área
- cli
Línea de trabajo
Sigue render --variables-file, --variables <path> y --variables - hasta resolveVariablesArg y parseVariablesArg; la incidencia señala cómo los callbacks de E/S indefinidos sobrescriben los valores predeterminados en readJsonFlagText. Lee la implementación pertinente de CLI y sus pruebas, y luego ejecuta pruebas específicas para las entradas desde archivo y stdin. El trabajo estará terminado cuando esas entradas se analicen correctamente y el comportamiento de inline JSON y --batch siga funcionando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
hyperframes render --variables-file <file> fails before rendering on every version from 0.8.212 to 0.8.221 (latest at the time of writing). The same failure hits --variables <path> and --variables - (stdin). Inline JSON (--variables '{"title":"x"}') and --batch <file> still work.
Minimal reproduction
Any project with data-composition-variables:
echo '{}' > /tmp/vars.json
npx -y [email protected] render . --variables-file /tmp/vars.json -o /tmp/out.mp4
✗ Could not read the variables JSON
/tmp/vars.json: io.readFile is not a function
| Version | --variables-file |
|---|---|
| 0.8.210, 0.8.211 | reads the file, render proceeds |
| 0.8.212, 0.8.213, 0.8.216, 0.8.221 | io.readFile is not a function |
Linux (WSL2 Ubuntu), Node 24.19.0.
Cause (from the published dist of 0.8.221)
resolveVariablesArg(inline, filePath) calls parseVariablesArg(inline, filePath) with no readFile / readStdin, so it passes { readFile: undefined, readStdin: undefined } to readJsonFlagText:
function readJsonFlagText(value, partialIo = {}) {
const io = { ...defaultIO, ...partialIo }; // undefined overrides the defaults
...
return trimmed === "-" ? io.readStdin() : io.readFile(value);
An object spread copies keys whose value is undefined, so io.readFile is undefined.
Steps to reproduce
echo '{}' > /tmp/vars.json
npx -y [email protected] render . --variables-file /tmp/vars.json -o /tmp/out.mp4
Expected behavior
A rendered mp4 using the variables file is created
Actual behavior
◆ Rendering variables-fixture → C:\node_projects\hftemptest\out.mp4
30fps · standard · auto workers (16 cores detected)
GPU: browser GPU (auto-detect)
✗ Could not read the variables JSON
vars.json: io.readFile is not a function
Environment
The failed checks (unzip, FFmpeg, optional tools) are unrelated: the error is thrown while the flag is parsed, before any browser or encoder is touched.
hyperframes doctor
✓ Version 0.8.221 (latest)
✓ Node.js v24.19.0 (linux x64)
✓ CPU 16 cores · Intel(R) Core(TM) Ultra 7 265H
✓ Memory 15.6 GB total · 6.0 GB available
✓ Disk 925.5 GB free
✓ Frames cache /tmp/hyperframes-extract-cache-1000 · 925.5 GB free at /tmp · default
✗ Archive extractor Not found
✓ Settings lock Not locked
✓ /dev/shm 7995 MB
✓ Environment WSL · non-TTY
✗ whisper-cpp Not found (optional — needed for transcription)
✗ TTS (Kokoro) Not installed (optional — local voice fallback)
✗ BGM (MusicGen) Not installed (optional — local music fallback)
✓ onnxruntime-node Not installed (installs on first use)
✓ @google/genai Not installed (installs on first use)
✗ FFmpeg FFmpeg is required to encode video.
✗ FFprobe FFprobe is required to probe media assets.
✓ Chrome cache: ~/.cache/hyperframes/chrome/chrome-headless-shell/linux-152.0.7977.30/...
✓ Docker Docker version 29.6.2, build dfc4efb
✗ Docker running Not running
Additional context
No response
- Lenguaje dominante
- TypeScript
- Estrellas
- 54.1k
- Forks
- 4.9k
- Merge medio
- 8 h 46 min
- PR fusionados (30 d)
- 781
Preparar el entorno
Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de heygen-com/hyperframes
-
`motionContextToDocs`: `y` track copies `opacity` when a node animates both (key lookup has no word boundary)Posiblemente ocupada @Muzzy5150 la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
heygen-com/hyperframes#6756 ·
Los mantenedores suelen responder en 1 día
-
Batch rendering rejects JSON files saved with a byte order markPosiblemente ocupada @AksharP5 la tomó hace 2 días. Abiertobug triage/ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
heygen-com/hyperframes#6604 ·
Los mantenedores suelen responder en 1 día
-
bug difficulty/easy triage/ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
heygen-com/hyperframes#6481 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Timeline: show a clip's full name when its label is cut offPosiblemente ocupada @DanielMcSheehy la tomó hace 12 días. Abiertodesktop-candidate difficulty/easy enhancement good first issue help wanted triage/ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 85/100
heygen-com/hyperframes#5582 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
Studio: press ? to open the keyboard shortcuts panelPosiblemente ocupada @B-Payal la tomó hace 16 días. Abiertodesktop-candidate difficulty/easy enhancement good first issue help wanted triage/ready
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
heygen-com/hyperframes#5580 · 1 comentario ·
Los mantenedores suelen responder en 1 día
Todos los issues de heygen-com/hyperframes
Issues similares
-
bug ready-for-agent
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
PhyberApex/kuroshiro#1687 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
microsoft/monaco-editor#5563 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 1/5 Menos de una hora Aptitud para principiantes 86/100
awslabs/visual-asset-management-system#937 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100