Ethanfel
3d6469c60c
feat: add Dockerfile and docker-compose for server deployment
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:49:43 +02:00
Ethanfel
6a4ac8b8ed
feat: add hidden files API endpoints
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:49:30 +02:00
Ethanfel
1f6906c946
feat: add export endpoint with WebSocket progress
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:49:16 +02:00
Ethanfel
dfba88a601
feat: add markers/profiles/labels API endpoints
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:48:33 +02:00
Ethanfel
e94c088df0
feat: add video streaming with transcode cache and audio extraction
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:48:06 +02:00
Ethanfel
9569103edd
feat: add FastAPI app with file listing endpoint
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:47:23 +02:00
Ethanfel
079afeee7c
feat: create server/config with env var settings and quality presets
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:44:31 +02:00
Ethanfel
fbbfa6fdce
refactor: import shared logic from core/ instead of inline definitions
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:43:44 +02:00
Ethanfel
56920a5247
feat: create core/tracking module with YOLO subject tracking
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:39:52 +02:00
Ethanfel
08c1dd8b33
feat: create core/export module with ExportRunner
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:39:24 +02:00
Ethanfel
2b63ad1857
feat: create core/annotations module
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:38:47 +02:00
Ethanfel
72f6a4e8f5
feat: create core/db module with ProcessedDB
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:38:20 +02:00
Ethanfel
799a2ab353
feat: create core/ffmpeg module with ffmpeg helpers
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:34:59 +02:00
Ethanfel
066f4431ba
feat: create core/paths module with shared path helpers
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:34:17 +02:00
Ethanfel
97f9ef7073
fix: correct bugs in server API implementation plan
...
- Fix line range 38→36 for _frozen_path extraction
- Clarify line ranges for ffmpeg vs annotation functions
- Remove unused imports (_frozen_path, build_annotation_json_path) from main.py import list
- Add step to clean up dead stdlib imports (re, json, sqlite3, tempfile, datetime)
- Add explicit stub router code for stream, markers, export, hidden
- Add server/__init__.py and server/routes/__init__.py content
- Add _DBWorker and FrameGrabber to "keep in main.py" list
- Note optional tracking deps in Dockerfile
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:33:36 +02:00
Ethanfel
592e40c1a6
docs: add server API implementation plan
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:24:03 +02:00
Ethanfel
73dd7a1569
docs: add server API design for remote editing via Tauri client
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:20:13 +02:00
Ethanfel
7abf0b4d4c
feat: autoclip, play/pause improvements, number key exports, focus fix
...
- Autoclip (A): adjusts clip count to fit current pause position
- Pause no longer resets playback position — stays where paused
- Play resumes from pause point instead of restarting
- Spread/clips changes update loop end without restarting playback
- Number keys 1-9 export to subprofiles
- Click-away clears focus from spinboxes so hotkeys work again
- Lock mode: double-click marker jumps cursor to end of clip span
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-16 13:19:21 +02:00
Ethanfel
9e5bd4a8ec
feat: add subprofiles, live play loop update, fix lock mode scrub
...
- Subprofiles: lightweight export variants that append a suffix to the
export folder (e.g. _soft, _intense). Each gets its own export button
in the transport row. Managed via "+" menu, persisted in QSettings.
- Play loop now updates immediately when spread/clips spinboxes change.
- Lock mode: ignore stale mpv position updates while user is dragging
to prevent the play position from jumping back.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-15 23:58:26 +02:00
Ethanfel
c5dd2d00a0
fix: use noarchive mode and enable console to debug PYZ TOC error
...
Build & Release / windows (push) Has been cancelled
Build & Release / macos (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Bypasses PYZ archive entirely — modules stored as individual .pyc files.
Console enabled temporarily to capture error output.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v0.9.0
2026-04-14 23:12:58 +02:00
Ethanfel
34d8ad1dc7
feat: add Windows setup script and launcher for running from source
...
- setup-windows.ps1: downloads libmpv DLL and ffmpeg, installs pip deps
- 8cut.bat: double-click launcher
- main.py: add_dll_directory for libmpv next to script (not just frozen)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 23:08:17 +02:00
Ethanfel
46bd617f0a
fix: disable UPX compression to prevent PYZ archive corruption
...
Build & Release / windows (push) Has been cancelled
Build & Release / macos (push) Has been cancelled
Build & Release / release (push) Has been cancelled
UPX can corrupt Python bytecode in PyInstaller bundles, causing
"PYZ archive entry not found in the TOC" on Windows.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 23:06:30 +02:00
Ethanfel
e8ecfc0525
ci: publish release automatically, re-enable macOS build
...
Build & Release / windows (push) Has been cancelled
Build & Release / macos (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:59:29 +02:00
Ethanfel
198ec68382
ci: temporarily disable macOS job while debugging Windows build
...
Build & Release / windows (push) Has been cancelled
Build & Release / macos (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:49:08 +02:00
Ethanfel
920f724dbd
fix: find libmpv asset by name pattern instead of constructing URL
...
Build & Release / windows (push) Has been cancelled
Build & Release / macos (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Asset filenames include a git hash that can't be predicted from the tag
alone. Use the API assets list to find the correct download URL.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:48:08 +02:00
Ethanfel
94ea4c63ca
fix: use GitHub API to fetch latest libmpv tag instead of redirect
...
Build & Release / windows (push) Has been cancelled
Build & Release / macos (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Invoke-WebRequest fails on 302 redirects in newer PowerShell.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:45:44 +02:00
Ethanfel
653e4a5e13
refactor: split Windows and macOS into separate jobs
...
Build & Release / windows (push) Has been cancelled
Build & Release / macos (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Release is created if at least one platform succeeds, so a failure
on one doesn't block the other.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:44:13 +02:00
Ethanfel
cd50b3ae0c
fix: quote PowerShell path interpolation in ffmpeg copy step
...
Build & Release / build (8cut-macos-arm64, macos-latest) (push) Has been cancelled
Build & Release / build (8cut-windows, windows-latest) (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:43:03 +02:00
Ethanfel
10b77e79f7
fix: drop macos-13 runner (no longer available)
...
Build & Release / build (8cut-macos-arm64, macos-latest) (push) Has been cancelled
Build & Release / build (8cut-windows, windows-latest) (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:42:36 +02:00
Ethanfel
5b4e4bf818
feat: add PyInstaller spec and GitHub Actions release workflow
...
Build & Release / build (8cut-macos-arm64, macos-latest) (push) Has been cancelled
Build & Release / build (8cut-macos-x86_64, macos-13) (push) Has been cancelled
Build & Release / build (8cut-windows, windows-latest) (push) Has been cancelled
Build & Release / release (push) Has been cancelled
Enables cross-platform builds for Windows and macOS. Adds _bin() helper
to resolve bundled ffmpeg in frozen builds, and configures ctypes library
path for bundled libmpv.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 22:40:44 +02:00
Ethanfel
bd4e97c45a
fix: lock mode seek falls back to cursor instead of jumping to start
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 19:15:01 +02:00
Ethanfel
1aeaad7f6d
fix: skip keyframe creation at frame 0 where base state applies
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:56:48 +02:00
Ethanfel
874632dffa
fix: keep export complete message visible until next action
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:52:37 +02:00
Ethanfel
86055f2072
fix: defer preview follow so geometry is up-to-date after main window move
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:51:27 +02:00
Ethanfel
5fddb06354
fix: add right margin to panel, make Hide exported a QPushButton
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:48:51 +02:00
Ethanfel
e60263548d
feat: move status messages to inline label on settings row
...
Replace the bottom status bar with a right-aligned label on the
settings row, saving vertical space. Add "Export complete" message
when a batch finishes.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:45:10 +02:00
Ethanfel
86f447f3d6
feat: add Show Hidden button to reveal and unhide playlist files
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:39:22 +02:00
Ethanfel
1d5b8023a2
feat: auto-create/remove keyframes when toggling random crop in lock mode
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:29:11 +02:00
Ethanfel
cb4392125d
fix: scrub preview fallback before first keyframe + document overwrite behavior
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:08:35 +02:00
Ethanfel
328c800d60
feat: apply keyframe crop modes in overwrite exports too
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:05:20 +02:00
Ethanfel
7a35e8268b
feat: preview effective keyframe crop state during lock-mode scrub
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:05:08 +02:00
Ethanfel
465894af51
feat: color-code keyframe diamonds by crop mode
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 16:04:53 +02:00
Ethanfel
1004bd0a28
feat: rewrite export to use per-keyframe crop modes
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 15:58:01 +02:00
Ethanfel
279aee14cb
feat: add apply_keyframes_to_jobs helper
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 15:57:27 +02:00
Ethanfel
4f15f77175
feat: snapshot ratio and random flags into crop keyframes
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 15:52:25 +02:00
Ethanfel
17e42c44b3
refactor: widen keyframe tuple to carry ratio and random flags
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 15:52:04 +02:00
Ethanfel
8e8c8b9774
feat: add resolve_keyframe helper to extract sorted-keyframe lookup
...
Adds a pure function that returns the latest keyframe at or before a
given time (with tolerance), replacing the inline lookup pattern that
appears multiple times in main.py. Includes 6 tests covering empty
list, before-first, exact match, between, after-last, and tolerance.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 15:48:00 +02:00
Ethanfel
b9e9fa927e
chore: add .worktrees/ to .gitignore
2026-04-14 15:45:26 +02:00
Ethanfel
5916b498b1
docs: add keyframe crop modes implementation plan
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 15:30:46 +02:00
Ethanfel
bda423e8b5
docs: add keyframe crop modes design
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-04-14 15:28:40 +02:00