fix(render): consolidate preflight and local recovery (#2403)

* fix(render): fall back when libx264 is unavailable

* fix(render): recover orphaned browsers before retry

* fix(render): check disk space on write volumes

* test(engine): accept resolved ffmpeg binary paths

* fix(render): harden H.264 capability fallback

* chore(ci): scope inherited Fallow findings

* fix(render): diagnose encoder probe failures
This commit is contained in:
Miguel Ángel
2026-07-14 21:55:39 -04:00
committed by GitHub
parent 15ca6fd129
commit 5d3a7404fa
9 changed files with 224 additions and 15 deletions
+4 -4
View File
@@ -1,7 +1,7 @@
// fallow-ignore-file code-duplication
import { EventEmitter } from "events";
import { readFileSync } from "fs";
import { resolve } from "path";
import { basename, resolve } from "path";
import { afterEach, describe, expect, it, vi } from "vitest";
import { extractMediaMetadata, extractPngMetadataFromBuffer } from "./ffprobe.js";
@@ -217,7 +217,7 @@ describe("ffprobe missing-binary fallback", () => {
const meta = await extractMediaMetadataMocked(fixture);
expect(calls.length).toBe(1);
expect(calls[0]?.command).toBe("ffprobe");
expect(basename(calls[0]?.command ?? "")).toMatch(/^ffprobe(?:\.exe)?$/);
expect(meta.videoCodec).toBe("png");
expect(meta.durationSeconds).toBe(0);
expect(meta.fps).toBe(0);
@@ -323,7 +323,7 @@ describe("ffprobe missing-binary fallback", () => {
/ffprobe not found/,
);
expect(calls.length).toBe(1);
expect(calls[0]?.command).toBe("ffprobe");
expect(basename(calls[0]?.command ?? "")).toMatch(/^ffprobe(?:\.exe)?$/);
});
it("analyzeKeyframeIntervals surfaces a ffprobe-missing error verbatim", async () => {
@@ -338,7 +338,7 @@ describe("ffprobe missing-binary fallback", () => {
/ffprobe not found/,
);
expect(calls.length).toBe(1);
expect(calls[0]?.command).toBe("ffprobe");
expect(basename(calls[0]?.command ?? "")).toMatch(/^ffprobe(?:\.exe)?$/);
});
it("ffprobe-missing error message includes install hint", async () => {