Commit Graph

51 Commits

Author SHA1 Message Date
c00c215d33 fix: adjustShuttle reads live rate with 0.25 step, fullscreen targets documentElement
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:45:50 -04:00
711f18ffe5 fix: add tabindex to seek bar slider role, remove dead handleVideoClick
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:16:04 -04:00
1a86a34152 feat: add FLIP transitions for Clipper/Player mode switching
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:12:26 -04:00
3e219b7760 feat: conditional CC rendering and click-to-play in Player mode
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:10:43 -04:00
56686a36e6 feat: add PlayerTimeline simplified waveform component
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:06:32 -04:00
f717687b1b feat: add PlayerControls floating overlay component
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:05:03 -04:00
bb5fa4bd63 feat: add SpeedSelector popup component
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:03:46 -04:00
d9f58747a4 feat: add PiP, fullscreen, and playbackRate helpers to playback module
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:02:03 -04:00
bd96da4dc9 feat: add appMode preference (clipper/player) with persistence
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 19:00:34 -04:00
c90b6765b7 fix: timeline resize regression + dynamic lane alignment
- Remove splitAreaEl dependency from handleResizeMove; use fixed 40-500 clamp
- Add computeLanes() + LaneLayout for dynamic lane height computation
- Update clipRenderer to accept LaneLayout instead of hardcoded constants
- Tighten CONTROLS_HEIGHT (30→22) and CLIP_HEIGHT (30→20) to reduce gaps
- Tighten label baseline offset (14→10) for better waveform-to-tick alignment

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 18:15:19 -04:00
23b30be357 fix: CSS-grid layout to preserve video on toggle + magnification enhancements (brighter, larger, minor ticks)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:30:47 -04:00
124542b4c4 fix: post-smoke-test polish — preserve playhead, clip list redesign, play-clip action, 1100x750 default
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 17:15:28 -04:00
8c271773bd feat: timeline right-click context menu with mark/seek/delete actions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 16:53:43 -04:00
27c199e090 feat: larger timeline timestamps with mouse-proximity magnification
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 16:51:56 -04:00
923c7b0e23 fix: clip list width edge cases (falsy check, narrow-window clamp)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 16:50:57 -04:00
b371ec6c3e feat: adjustable clip list layout (bottom/left sidebar)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 16:49:35 -04:00
9499d776fd fix: about dialog, cache paths, keyframes, reprocess always uses low-res
- Replace native macOS About menu with custom Svelte dialog via Tauri event
- Inline SVG icon in AboutDialog (fixes broken image in webview)
- Align cache directory with Tauri $APPDATA, add to asset protocol scope
- Fix ffprobe 8.x keyframe parsing (skip_frame nokey, flexible parser)
- Copy caption files into cache dir when outside cache path
- Add -y flag to ffmpeg thumbnail extraction (prevent hang on re-extract)
- Reprocess always uses preview (low-res) file, never HQ export
- Prefer cached preview file for analysis even when HQ is cached
- Guard upgrade toast when already on HQ

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 16:16:00 -04:00
36ff3094b6 feat: add per-video reprocess button to status bar
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:48:26 -04:00
2c3d035d1f feat: add cache management section to Preferences panel
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:47:29 -04:00
b180d4324c feat: integrate analysis cache into video session processing
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:45:37 -04:00
b7a5caf4ae feat: add TypeScript bindings for cache IPC commands
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:44:24 -04:00
6818938cb0 feat: add optional output_dir param to extract_thumbnails
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:43:24 -04:00
8bd2b34103 feat: auto-use cached HQ video file without upgrade prompt
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:36:33 -04:00
90f598050c fix: show empty timeline lanes when no video is loaded
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 14:34:58 -04:00
9d1f1cfcf3 fix: resolve all Svelte a11y warnings
- Associate labels with controls in CaptionSettingsPanel (9 warnings)
- Add tabindex and keyboard handlers to dialog overlays (8 warnings)
- Add <track> to video element for caption accessibility
- Add keyboard support to resize handle separator

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 13:30:27 -04:00
05c4b4713a feat: add About dialog with version, author, and license info
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 12:40:32 -04:00
30fb83c623 chore: replace placeholder metadata with real project values
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 12:36:06 -04:00
8ad2f1c800 chore: stage all pending work — caption styling, media server, processing modal, docs, summaries
Includes:
- Extended caption styling (font, shadow, dimmed color, bg toggle)
- Media server, subtitle downloader, VTT parser, processing modal
- Waveform tiers, thumbnail/timeline improvements, transport controls
- Hybrid download model, dependency management, clip export enhancements
- 21 chat summaries, 2 implementation plans, 2 design specs

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 10:48:16 -04:00
fd05ae19b5 feat(captions): expand settings panel with font, shadow, dimmed color, bg toggle controls
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 10:36:37 -04:00
517f45e8fd feat(captions): use font, shadow, dimmed color, bg toggle in preview captions
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 10:35:22 -04:00
a6277f0aa5 feat(captions): add list_system_fonts command with fc-list + fallback
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 10:31:30 -04:00
cc0ca95846 feat(captions): extend data model with font, shadow, dimmed color, bg toggle fields
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-22 10:29:22 -04:00
6ffeed8419 fix: double-paste bug, show actual yt-dlp errors in UI
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:57:08 -04:00
149ce3da21 fix: address final review findings (clip reset, codecs, paths, timeline)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:25:28 -04:00
8a83c36cad feat: add clip export with lossless/precise modes and export dialog
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:20:32 -04:00
8013ef7c55 fix: clear thumbnail cache and temp dirs on new session
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:18:14 -04:00
ab053edd14 feat: add thumbnail extraction and timeline display
Wire ffmpeg frame extraction into post-download processing and render
adaptive thumbnail strips on the timeline via the asset protocol.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:16:10 -04:00
63a89ed433 fix: clear analysis data when starting new download
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:13:45 -04:00
e05e83f62f feat: add waveform generation and timeline display
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:12:36 -04:00
c96b0cedc9 feat: add keyframe index extraction and frame/keyframe navigation
Wire ffprobe-based keyframe indexing through Tauri and auto-load positions after download completes.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:10:20 -04:00
2f25db3cc5 feat: add transport controls and keyboard shortcuts
Centralize seek/play/frame/shuttle in playback helpers, wire the transport bar, and handle global shortcuts from App.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:08:16 -04:00
c13755e5d1 feat: add clip management with I/O marking, timeline markers, and clip list
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:05:45 -04:00
36701feb9e feat: add canvas-based timeline with playhead, scrubbing, and zoom
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:03:24 -04:00
088def2ee4 feat: add background download manager with progress reporting
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 11:00:46 -04:00
3e469a931f fix: validate stream_url and clear stale session on error
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 10:59:10 -04:00
16812447ef feat: add video resolver, URL input, and video player
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 10:57:43 -04:00
820b451514 fix: guard preferences save against uninitialized store
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 10:56:08 -04:00
f74eb17039 feat: add preferences store with cookie source and output directory
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 10:54:42 -04:00
a62cd05f6c fix: address Task 2 review findings (stderr + cookie flags)
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 10:52:30 -04:00
e76254912a feat: add dependency manager and setup wizard
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-21 10:50:24 -04:00