mirror of
https://github.com/storytold/filmcraft.git
synced 2026-10-24 10:10:05 -06:00
Desktop/shared: - Frame workers catch panics per job: a failing decode/render no longer kills the worker or leaves its frame in flight forever (blank monitors). Counted as perf.stats failedJobs. - UI pass catches panics and shows a "FilmCraft hit an error" window (Save Project / Continue) instead of closing the app. - Panic hook writes <data dir>/Logs/crash-<day>.log with thread, location and backtrace; a window that can't start shows an error dialog instead of exiting silently. - GPU compositor only on adapters that render/blend Rgba16Float with >= 4096 textures; GPU validation errors and oversize frames switch to the CPU compositor instead of wgpu's default panic. - Dock layout and Media Browser splitter no longer panic on tiny panels/windows. Web: - Export mode / previews / voice-over / log reveal no longer call std::env::temp_dir (panics on wasm32): new filmcraft_engine::temp_dir(); default export dir /exports. - Fatal-error overlay with Reload; WebGPU device failure retries on WebGL2 (?webgl); cache-busted wasm/glue URLs; webcodecs entries[0] guard. Tests: robustness_ui (worker survives injected panics, UI panic recovery, tiny windows), crash hook, dock split, GPU plan size, default export dir; web smoke test extended. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>