Skip to content

Commit ff84909

Browse files
committed
feat: v1.8.0 — workflow engine, job persistence, i18n, Docker, 10 themes
Workflow engine chains multi-step processing with inter-step cancellation. SQLite job persistence survives restarts with interrupted job recovery. Structured error taxonomy with recovery suggestions for all error types. Frontend gains keyboard shortcuts, cut review panel, status bar, quick action buttons, project templates, preset export/import, responsive layout (4 breakpoints), and i18n system. 4 new light themes (10 total). Docker multi-stage build with GPU variant. Vite build pipeline config. Job-ID log correlation for debugging. Log viewer endpoint.
1 parent 1bc4572 commit ff84909

46 files changed

Lines changed: 6074 additions & 517 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.dockerignore

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
.git
2+
.github
3+
__pycache__
4+
*.pyc
5+
*.pyo
6+
.pytest_cache
7+
.ruff_cache
8+
dist/
9+
build/
10+
*.egg-info
11+
installer/
12+
docs/
13+
img/
14+
*.md
15+
!requirements.txt
16+
node_modules
17+
.venv
18+
venv
19+
*.spec
20+
.pre-commit-config.yaml
21+
.editorconfig
22+
tests/
23+
extension/
24+
ffmpeg/

CLAUDE.md

Lines changed: 89 additions & 14 deletions
Large diffs are not rendered by default.

Dockerfile

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# ============================================================
2+
# OpenCut Server — Docker Image
3+
# Multi-stage build for minimal final image
4+
# ============================================================
5+
6+
# Stage 1: Base with Python and system deps
7+
FROM python:3.12-slim AS base
8+
9+
# System dependencies for FFmpeg, OpenCV, and audio processing
10+
RUN apt-get update && apt-get install -y --no-install-recommends \
11+
ffmpeg \
12+
libsndfile1 \
13+
libgl1-mesa-glx \
14+
libglib2.0-0 \
15+
curl \
16+
&& rm -rf /var/lib/apt/lists/*
17+
18+
WORKDIR /app
19+
20+
# Stage 2: Install Python dependencies
21+
FROM base AS deps
22+
23+
COPY requirements.txt pyproject.toml ./
24+
COPY opencut/__init__.py opencut/__init__.py
25+
26+
# Install core dependencies first (cached layer)
27+
RUN pip install --no-cache-dir flask flask-cors click rich
28+
29+
# Install standard optional dependencies
30+
RUN pip install --no-cache-dir \
31+
faster-whisper \
32+
opencv-python-headless \
33+
Pillow \
34+
numpy \
35+
librosa \
36+
pydub \
37+
noisereduce \
38+
deep-translator \
39+
scenedetect[opencv] \
40+
|| echo "Some optional deps failed — continuing"
41+
42+
# Stage 3: Final image
43+
FROM base AS final
44+
45+
# Copy installed packages from deps stage
46+
COPY --from=deps /usr/local/lib/python3.12/site-packages /usr/local/lib/python3.12/site-packages
47+
COPY --from=deps /usr/local/bin /usr/local/bin
48+
49+
# Copy application code
50+
COPY . /app
51+
52+
# Create data directories
53+
RUN mkdir -p /root/.opencut/packages /root/.opencut/models
54+
55+
# Expose server port
56+
EXPOSE 5679
57+
58+
# Health check
59+
HEALTHCHECK --interval=30s --timeout=5s --retries=3 \
60+
CMD curl -f http://localhost:5679/health || exit 1
61+
62+
# Environment
63+
ENV OPENCUT_BUNDLED=false
64+
ENV PYTHONUNBUFFERED=1
65+
66+
# Entrypoint
67+
ENTRYPOINT ["python", "-m", "opencut.server"]
68+
CMD ["--host", "0.0.0.0", "--port", "5679"]

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.7.2" -ForegroundColor DarkGray
158+
Write-Host " Installer v1.8.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.7.2"
5+
#define MyAppVersion "1.8.0"
66
#define MyAppPublisher "SysAdminDoc"
77
#define MyAppURL "https://github.com/SysAdminDoc/OpenCut"
88

README.md

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# OpenCut
22

3-
![Version](https://img.shields.io/badge/version-1.7.2-blue)
3+
![Version](https://img.shields.io/badge/version-1.8.0-blue)
44
![License](https://img.shields.io/badge/license-MIT-green)
55
![Platform](https://img.shields.io/badge/platform-Windows%2010%2F11-0078D4)
66
![Python](https://img.shields.io/badge/Python-3.9+-3776AB?logo=python&logoColor=white)
@@ -20,7 +20,7 @@
2020

2121
**Option A -- Installer exe (recommended):**
2222

23-
Download `OpenCut-Setup-1.7.2.exe` from [Releases](https://github.com/SysAdminDoc/OpenCut/releases) and run it. The installer handles everything: server exe, FFmpeg, CEP extension deployment, registry keys, desktop shortcut, and optional Whisper model download. **No Python or FFmpeg needed.**
23+
Download `OpenCut-Setup-1.8.0.exe` from [Releases](https://github.com/SysAdminDoc/OpenCut/releases) and run it. The installer handles everything: server exe, FFmpeg, CEP extension deployment, registry keys, desktop shortcut, and optional Whisper model download. **No Python or FFmpeg needed.**
2424

2525
**Option B -- From source (requires Python 3.9+ and [FFmpeg](https://ffmpeg.org/download.html) on PATH):**
2626

@@ -47,7 +47,7 @@ Clone the repo and run `Install.bat` as Administrator. It handles FFmpeg check,
4747

4848
## Features
4949

50-
OpenCut v1.5.0 includes **142 API routes**, **7 panel tabs** with **50+ sub-tabs**, and covers every major video editing automation task — now with ~20 new capabilities including Timeline Integration, AI-powered NLP commands, footage search, post-production deliverables, and a UXP panel for Premiere Pro 25.6+.
50+
OpenCut v1.8.0 includes **142+ API routes**, **8 panel tabs** with **50+ sub-tabs**, and covers every major video editing automation task — with workflow automation, project templates, i18n, Docker support, SQLite job persistence, 10 themes, keyboard shortcuts, and a UXP panel for Premiere Pro 25.6+.
5151

5252
### Cut & Clean
5353

@@ -160,9 +160,18 @@ OpenCut v1.5.0 includes **142 API routes**, **7 panel tabs** with **50+ sub-tabs
160160
| Per-Operation Presets | Save/load settings per operation |
161161
| Settings Import/Export | Bundle all settings as JSON for backup or sharing |
162162
| Server Health Monitor | Auto-reconnect banner when backend goes offline |
163-
| 6 Dark Themes | Cyberpunk, Midnight OLED, Catppuccin Mocha, GitHub Dark, Stealth, Ember |
163+
| 10 Themes | 6 dark (Cyberpunk, Midnight OLED, Catppuccin Mocha, GitHub Dark, Stealth, Ember) + 4 light (Snowlight, Latte, Solarized, Paper) |
164164
| Premiere Theme Sync | Auto-detect Premiere's UI brightness |
165165
| Toast Notifications | Non-intrusive slide-in alerts for job completion |
166+
| Keyboard Shortcuts | Configurable shortcuts with reference card |
167+
| Quick Action Buttons | One-click workflows on Cut, Captions, Audio, and Video tabs |
168+
| Cut Review Panel | Review and approve/reject cuts before applying |
169+
| Status Bar | Live system health, GPU usage, and job count |
170+
| i18n | Internationalization system with English locale, extensible to other languages |
171+
| Project Templates | 6 built-in templates (YouTube, Shorts, TikTok/Reels, Podcast, Cinema, Broadcast) |
172+
| Workflow Presets | 6 built-in chained workflows (Clean Interview, Podcast Polish, Social Clip, etc.) |
173+
| Preset Export/Import | Share presets and settings as JSON files |
174+
| Responsive Layout | 4 breakpoints for compact panels (800px, 480px, 440px, 380px) |
166175

167176
### Backend Infrastructure
168177

@@ -177,6 +186,13 @@ OpenCut v1.5.0 includes **142 API routes**, **7 panel tabs** with **50+ sub-tabs
177186
| Dependency Dashboard | Grid view of all 24 optional deps with install status |
178187
| GPU Auto-Detection | Recommend optimal settings based on detected GPU VRAM |
179188
| AI Model Manager | View/delete downloaded models to free disk space |
189+
| Job Persistence | SQLite-backed job history survives server restarts |
190+
| Job Recovery | Detects and reports interrupted jobs on startup |
191+
| Structured Errors | Error taxonomy with machine-readable codes and recovery suggestions |
192+
| Job-ID Log Correlation | Every log line tagged with job ID for debugging |
193+
| Workflow Engine | Chain multi-step processing with cancellation between steps |
194+
| Docker Support | Multi-stage Dockerfile + docker-compose with GPU variant |
195+
| Log Viewer | Filtered log tail endpoint for real-time debugging |
180196

181197
---
182198

@@ -241,9 +257,9 @@ A parallel panel (`com.opencut.uxp`) is available for Premiere Pro 25.6+ using A
241257
| Premiere Pro CEP | <================> | OpenCut Server |
242258
| Panel (HTML/JS) | localhost:5679 | (Python/Flask) |
243259
| | | |
244-
| 6 tabs, 43 sub-tabs | | 142 API routes |
245-
| Dark theme, 6 color | | Async job queue |
246-
| schemes | | SSE + polling |
260+
| 8 tabs, 50+ sub-tabs | | 142+ API routes |
261+
| 10 themes, i18n | | Async job queue |
262+
| Keyboard shortcuts | | SSE + polling |
247263
+-----------------------+ +-----------+-----------+
248264
|
249265
+-----------+-----------+

0 commit comments

Comments
 (0)