Patch release — two user-reported CEP panel bugs fixed
Fixed
1. Imported media not detected
The ExtendScript walker used an item.type === 2 + !item.getMediaPath heuristic that broke silently on Premiere 25.x, where most bins expose getMediaPath as a function (so the fallback evaluated false and nested media was never recorded). Replaced with a getMediaPath()-first discriminator: non-empty path → record; else has-children → walk as bin; else skip (sequence / offline / exotic). Works across every Premiere version 14–25+.
2. Processed output landing next to source clip instead of in the project folder
Two causes compounded:
getProjectMedia()only returned aprojectFolderwhenapp.project.pathwas non-empty (i.e. the.prprojhad been saved). Unsaved projects returned""and the backend fell back to the source clip's directory — for media imported fromDownloads/or a network share this was never what the user wanted. Added a three-step fallback chain: saved project path → directory of the first imported media → scratch disk path → empty. A newprojectFolderSourcefield in the response tells the panel which fallback fired.- The panel's Settings → Output directory preference was saved to
localStoragebut never threaded into theoutput_dirpayload at job time. Added_recomputeEffectiveOutputDir()that layers the user pref on top of the detected project folder and recomputes on settings save + every media-list refresh. All 77 existingoutput_dir: projectFoldercall sites now honour the priority chain automatically.
Gotchas for extension developers
- JSX walker is
getMediaPath-first. Sequences and offline media both return emptygetMediaPath(); the difference is sequences have 0 children. Both are skipped cleanly. Bins withtypereported asundefined/0/3on newer Premiere builds are now walked via the "has children" fallback. projectFolderis now the effective output dir, not the raw detected value. The JSX-detected folder lives panel-side in_detectedProjectFolderfor anything that needs the raw value.
Installer (Windows): OpenCut-Setup-1.25.1.exe — handles server, FFmpeg, CEP extension, registry, and optional model downloads. No Python required.
Server tarballs (built + attached by CI on tag push):
OpenCut-Server-Windows.tar.gzOpenCut-Server-macOS.tar.gzOpenCut-Server-Linux.tar.gz
Docker: docker-compose up (CPU) or docker-compose -f docker-compose.gpu.yml up (GPU).
Route surface
No new routes in v1.25.1. Total still 1,275 routes across 89 blueprints. Full Wave H feature set from v1.25.0 remains available. Next planned release is v1.26.0 (Wave I — panel polish + agentic script-to-sequence); full roadmap at ROADMAP-NEXT.md.