Skip to content

Commit 9ec409f

Browse files
committed
feat: v1.6.0 Phase 1 — schemas, CSRF rotation, GPU context, FFmpeg cache
New modules: - opencut/schemas.py — 15 dataclass response schemas (JobResponse, SilenceResult, LoudnessMatchResult, ColorMatchResult, AutoZoomResult, MulticamResult, ChaptersResult, RepeatDetectResult, SearchResult, DeliverableResult, BeatMarkersResult, ExportMarkersResult, IndexResult, UpdateCheckResult). All have to_dict() with None filtering. Prevents the field-name mismatch bug class that caused ~40 bugs in batches 30-32. - opencut/gpu.py — GPUContext context manager for automatic VRAM cleanup. register() tracks models, __exit__ does del + torch.cuda.empty_cache(). check_vram(min_gb) for preflight. get_device() for cuda/cpu detection. All torch imports defensive (try/except). Replaces 46 scattered try/finally/del/empty_cache patterns across 12 core modules. Security: - CSRF token rotation with 1-hour TTL. Rotating pool of up to 10 tokens. New tokens generated when oldest passes half-life. require_csrf accepts any non-expired token (grace window). Constant-time comparison via hmac.compare_digest. Replaces static token that was valid forever. Performance: - FFmpeg/FFprobe path caching — get_ffmpeg_path() and get_ffprobe_path() do shutil.which() once and cache. All run_ffmpeg(), FFmpegCmd.build(), get_video_info() use cached paths. Pre-warmed on server startup after PATH is configured.
1 parent bd25be0 commit 9ec409f

21 files changed

Lines changed: 480 additions & 32 deletions

File tree

Install.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ Write-Host " \___/| .__/ \___|_| |_|\____\__,_|\__|" -ForegroundColor Cyan
155155
Write-Host " |_| " -ForegroundColor Cyan
156156
Write-Host ""
157157
Write-Host " Open Source Video Editing Automation" -ForegroundColor DarkGray
158-
Write-Host " Installer v1.5.6" -ForegroundColor DarkGray
158+
Write-Host " Installer v1.6.0" -ForegroundColor DarkGray
159159

160160
$isAdmin = Test-IsAdmin
161161
if ($isAdmin) {

OpenCut.iss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
; Fully self-contained installer — bundles server exe, ffmpeg, and CEP extension
33

44
#define MyAppName "OpenCut"
5-
#define MyAppVersion "1.5.6"
5+
#define MyAppVersion "1.6.0"
66
#define MyAppPublisher "SysAdminDoc"
77
#define MyAppURL "https://github.com/SysAdminDoc/OpenCut"
88

extension/com.opencut.panel/CSXS/manifest.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
<ExtensionManifest xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
33
Version="7.0"
44
ExtensionBundleId="com.opencut.panel"
5-
ExtensionBundleVersion="1.5.6"
5+
ExtensionBundleVersion="1.6.0"
66
ExtensionBundleName="OpenCut">
77

88
<ExtensionList>
9-
<Extension Id="com.opencut.panel.main" Version="1.5.6" />
9+
<Extension Id="com.opencut.panel.main" Version="1.6.0" />
1010
</ExtensionList>
1111

1212
<ExecutionEnvironment>

extension/com.opencut.panel/client/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2943,7 +2943,7 @@ <h1 class="content-title" id="contentTitle">Cut & Clean</h1>
29432943
<div class="card-header"><div class="card-title">About OpenCut</div></div>
29442944
<div class="settings-row">
29452945
<span class="settings-label">Version</span>
2946-
<span class="settings-value">1.5.6</span>
2946+
<span class="settings-value">1.6.0</span>
29472947
</div>
29482948
<div class="about-links">
29492949
<a href="https://github.com/SysAdminDoc/opencut" class="about-link" target="_blank">GitHub</a>

extension/com.opencut.panel/client/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* ============================================================
2-
OpenCut CEP Panel - Main Controller v1.5.6
2+
OpenCut CEP Panel - Main Controller v1.6.0
33
6-Tab Professional Toolkit
44
============================================================ */
55
(function () {

extension/com.opencut.panel/client/style.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/* ============================================================
2-
OpenCut CEP Panel v1.5.6 - ULTRA PREMIUM EDITION
2+
OpenCut CEP Panel v1.6.0 - ULTRA PREMIUM EDITION
33
Next-Generation AI Editing Suite for Adobe Premiere Pro
44
============================================================ */
55

extension/com.opencut.uxp/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
<path d="M4 2.5a3 3 0 00-1.76 5.43L7.33 11l-5.09 3.07A3 3 0 104.8 19.5a3 3 0 001.76-5.43L8.93 12.6 16.5 17V5L8.93 9.4 6.56 7.93A3 3 0 004 2.5z" fill="var(--accent)"/>
1717
</svg>
1818
<span class="oc-logo">OpenCut</span>
19-
<span class="oc-version">v1.5.6</span>
19+
<span class="oc-version">v1.6.0</span>
2020
</div>
2121
<div class="oc-header-right">
2222
<div class="oc-connection" id="connectionStatus" title="Backend connection status">

extension/com.opencut.uxp/main.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ const BACKEND_DEFAULT = "http://127.0.0.1:5679";
2323
const BACKEND_MAX_PORT = 5689;
2424
const POLL_INTERVAL_MS = 1200;
2525
const HEALTH_CHECK_MS = 8000;
26-
const VERSION = "1.5.6";
26+
const VERSION = "1.6.0";
2727

2828
async function detectBackend() {
2929
// Try ports 5679-5689 like CEP panel does

extension/com.opencut.uxp/manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"id": "com.opencut.uxp",
33
"name": "OpenCut UXP",
4-
"version": "1.5.6",
4+
"version": "1.6.0",
55
"main": "index.html",
66
"host": [
77
{

install.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
import subprocess
1111
import platform
1212

13-
VERS = "1.5.6"
13+
VERS = "1.6.0"
1414
CEP_EXT = "com.opencut.panel"
1515
WIN_CEP_DIR = os.path.expandvars(r"%APPDATA%\Adobe\CEP\extensions")
1616
MAC_CEP_DIR = os.path.expanduser("~/Library/Application Support/Adobe/CEP/extensions")

0 commit comments

Comments
 (0)