Commit Graph
852 Commits
Author SHA1 Message Date
webadderall 41142af68f Merge remote-tracking branch 'origin/main' into feat/settings-extensions
# Conflicts:
#	src/components/video-editor/timeline/TimelineEditor.tsx
2026-04-17 14:07:46 +10:00
webadderall 0313dfd954 Merge pull request #248 from webadderall/feat/timeline-editor
feat: overhaul timeline drag/resize, zoom playback, and recording hooks
2026-04-17 14:00:20 +10:00
webadderall d9b06bcfd9 Merge remote-tracking branch 'origin/main' into feat/settings-extensions
# Conflicts:
#	src/components/video-editor/ExtensionManager.tsx
#	src/components/video-editor/SettingsPanel.tsx
#	src/components/video-editor/TutorialHelp.tsx
#	src/components/video-editor/VideoEditor.tsx
#	src/components/video-editor/index.ts
#	src/components/video-editor/projectPersistence.ts
#	src/components/video-editor/timeline/TimelineEditor.tsx
#	src/components/video-editor/types.ts
#	src/i18n/locales/nl/launch.json
2026-04-17 13:58:36 +10:00
webadderall fdb8389883 Merge remote-tracking branch 'origin/main' into feat/timeline-editor
# Conflicts:
#	src/components/video-editor/timeline/Item.tsx
#	src/components/video-editor/timeline/TimelineEditor.tsx
2026-04-17 13:54:19 +10:00
webadderall e66a3aa583 Merge pull request #247 from webadderall/feat/export-pipeline
feat: add H.264 stream-copy export, overhaul exporter pipeline, rename native binaries
2026-04-17 13:48:40 +10:00
webadderall 8d925281fc Merge remote-tracking branch 'origin/main' into feat/export-pipeline
# Conflicts:
#	electron/electron-env.d.ts
#	electron/ipc/handlers.ts
2026-04-17 13:47:15 +10:00
webadderall ab2cbd9202 Merge pull request #246 from webadderall/feat/ui-overhaul
feat: ui overhaul — Phosphor icons, redesigned launcher, editor layout, and component refresh
2026-04-17 13:36:28 +10:00
webadderall ec4d4318d4 fix: clear annotation selection for zoom edits 2026-04-17 12:03:37 +10:00
webadderall ff2b19a61b fix: finish remaining settings review items 2026-04-17 12:00:42 +10:00
webadderall 6861a41ff9 fix: address remaining CodeRabbit feedback 2026-04-17 11:56:31 +10:00
webadderall c7ed81129e fix: stabilize editor settings and extension UI 2026-04-17 01:50:14 +10:00
webadderall 0206e38e2c fix: address remaining settings review feedback 2026-04-17 01:03:24 +10:00
webadderall cf51e713e7 fix: address remaining zoom timing review feedback 2026-04-17 00:47:30 +10:00
webadderall e6ce742f58 fix: address final export pipeline review follow-ups 2026-04-17 00:41:32 +10:00
webadderall ae6ac0d81e fix: address remaining ui overhaul review feedback 2026-04-17 00:27:46 +10:00
webadderall f91e29abba fix: address remaining timeline review feedback 2026-04-17 00:23:52 +10:00
webadderall aa27e7cbd1 fix: address remaining export pipeline review feedback 2026-04-17 00:17:54 +10:00
webadderall 8071c6bb0e fix: address remaining ui overhaul review feedback 2026-04-16 23:39:27 +10:00
webadderall a83a58c671 fix: address ui overhaul review feedback 2026-04-16 22:36:23 +10:00
webadderall 1dc758e535 fix: address timeline editor review feedback 2026-04-16 19:34:02 +10:00
webadderall 993c7aff9c fix: address settings and extensions review feedback 2026-04-16 19:16:20 +10:00
webadderall f81a740614 fix: address export pipeline review feedback 2026-04-16 18:49:01 +10:00
webadderall 9a5ff5c0a2 feat: ui overhaul — Phosphor icons, redesigned launcher, editor layout, and component refresh
- Replace all lucide-react imports with @phosphor-icons/react across every
  component (LaunchWindow, AnnotationSettingsPanel, ExtensionManager,
  ExtensionIcon, VideoPlayback, AnnotationOverlay, CropControl, TutorialHelp,
  PlaybackControls, all shadcn ui/ primitives, etc.)
- ExtensionIcon: new Phosphor-based resolver with Lucide name alias map for
  backwards-compatible extension manifests
- LaunchWindow / SourceSelector: full redesign — new icon rail layout,
  updated backgrounds, improved source selection UX, audio/video controls,
  countdown overlay
- VideoPlayback: overhaul playback controls and preview panel layout
- Timeline items: border-radius 16px→8px, cyan→blue unification, pill height
  85% for breathing room, resize handle vertical centering
- shadcn ui/: refresh accordion, dialog, dropdown, select, slider, switch,
  tabs, toggle, popover, button, card, input, label, sonner, content-clamp,
  audio-level-meter
- App.tsx / index.css / App.css / tailwind.config: global style updates
- types.ts, captionLayout.ts, captionStyle.ts, webcamOverlay.ts: data model
  updates to support new timeline and export features
- package.json: add @phosphor-icons/react, bump dependencies
- scripts/, .eslintrc, biome, tsconfig, vite.config: tooling alignment
- extension-sources: update built-in extension bundles
2026-04-16 18:01:04 +10:00
webadderall 8cdf21e125 feat: overhaul timeline drag/resize, zoom playback, and recording hooks
- TimelineEditor: rewrite drag/resize with neighbour clamping — items cannot
  overlap; drag preserves original duration; resize clamps to adjacent item
  boundaries instead of rejecting; floating drag/resize tooltip via direct
  DOM (no re-renders)
- TimelineWrapper: new wrapper component for cleaner TimelineContext wiring
- Track: extract Track component with empty-row hint slot
- AudioWaveform, Row, Subrow, KeyframeMarkers, Timeline.module.css: dark
  theme timeline overhaul
- zoomSuggestionUtils: smarter auto-zoom region suggestion from cursor telemetry
- videoPlayback (zoom): fix zoomRegionUtils edge cases at timeline bounds;
  rework zoomTransform for cursor-follow camera
- videoPlayback (cursor): cursorFollowCamera, cursorSway, cursorLoopTelemetry,
  cursorViewport — new cursor motion and snapping pipeline
- videoPlayback (layout): layoutUtils, overlayUtils, focusUtils, motionSmoothing
- useScreenRecorder: hardened recording lifecycle, pause segment tracking,
  improved WGC and SCK integration
- useVideoDevices / useMicrophoneDevices / useAudioLevelMeter improvements
2026-04-16 17:53:51 +10:00
webadderall 48cdb5c203 feat: settings tab with language picker, extension fixes, and i18n expansion
- SettingsPanel: new 'settings' section — in-app language picker (all 5
  locales), auto-apply fresh recording zooms toggle, connect-neighboring-
  zooms toggle, keybinds shortcut into KeyboardShortcutsDialog
- VideoEditor: wire autoApplyFreshRecordingAutoZooms preference through to
  SettingsPanel; connect zoom settings into new section
- editorPreferences: add autoApplyFreshRecordingAutoZooms field; update tests
- extensionMarketplace: filter __MACOSX sidecar dirs when unzipping extensions
  uploaded from macOS Finder (fixes manifest-not-found on Finder zips)
- useExtensions: guard window.electronAPI for SSR safety; reformat to tabs
- I18nContext: expose setLocale; persist locale preference
- ShortcutsContext: shortcut registration improvements
- lib/extensions: renderHooks, extensionHost, fileUrls, cursorCoordinates
  updated for new extension capability surface
- i18n: expand extension locale strings across all 5 supported languages
2026-04-16 17:52:53 +10:00
webadderall 8abceaa914 feat: add H.264 stream-copy export, overhaul exporter pipeline, rename native binaries
- IPC: new inputMode 'h264-stream' — browser VideoEncoder output stream-copied
  into MP4 via ffmpeg rather than piping raw RGBA frames, cuts memory usage
- Security: replace flat approvedLocalReadPaths with userApprovedPaths fed from
  dialog pickers and project load; isAllowedLocalReadPath uses it alongside
  dir prefix / existsSync checks
- nativeVideoExport: add buildNativeH264StreamExportArgs for stream-copy path
- frameRenderer / modernFrameRenderer: cursor-follow camera integration,
  annotation blur post-processing, shadow profile, squircle geometry
- audioEncoder / streamingDecoder / gifExporter / muxer: full pipeline
  hardening — drift correction, backpressure, proper teardown
- Rename native helpers openscreen-* → recordly-* on darwin-arm64 and
  darwin-x64; update helpers-manifest.json for win32-x64
- electron/main, windows, updater, rendererServer: startup and window
  lifecycle improvements
- preload: expose inputMode and new IPC surface to renderer
2026-04-16 17:51:41 +10:00
webadderall 0eee64310b Update EXTENSIONS.md 2026-04-15 20:55:56 +10:00
webadderall 38e54e2b12 fix: allow local export media files v1.1.23 2026-04-15 18:02:46 +10:00
webadderall 60d364a4ed fix: hotfix export regressions 2026-04-15 17:19:49 +10:00
webadderall 0026698b17 chore: apply low-risk lint cleanup 2026-04-15 14:59:02 +10:00
webadderall 71e557c325 docs: sync Chinese README with English version 2026-04-15 14:42:43 +10:00
webadderall e34881fec4 fix(export): remove output path restriction v1.1.22 2026-04-14 22:28:30 +10:00
webadderall cb61814e78 Merge pull request #228 from Wing900/fix/silent-mp4-exports
Fix silent MP4 exports with FFmpeg audio fallback
2026-04-13 20:38:45 +10:00
webadderall 8f50cc1010 Merge pull request #224 from afostr/feature/preserve-hud-position
fix(hud): preserve user-dragged position across recording state changes
2026-04-13 20:37:26 +10:00
Wing900 654ed79ba8 Fix silent MP4 exports with FFmpeg audio fallback 2026-04-12 20:55:34 +08:00
webadderall 3017d8fc9a Add Francesco to the list of supporters 2026-04-12 20:37:34 +10:00
webadderall 443fcda886 Update README.md 2026-04-12 20:34:58 +10:00
webadderall 4455bef9d6 Update README.md 2026-04-12 20:14:09 +10:00
webadderall bc5909613d Update README for new video
Refactor README to enhance clarity and encourage contributions.
2026-04-12 20:11:55 +10:00
webadderall 86784f5707 Add files via upload 2026-04-12 19:43:18 +10:00
webadderall e7a62f5fa8 chore: bump version to 1.1.21 v1.1.21 2026-04-12 18:08:30 +10:00
webadderall b2342090b2 feat(editor): full-width timeline, extension i18n, lifecycle fixes
- Move timeline below preview+settings so it spans full editor width
- Remove react-resizable-panels vertical split
- Add scoped i18n for ExtensionManager (en/zh/ko/ja/es)
- Fix stale extension activation cleanup and deactivation on uninstall
- Cache-bust extension module URLs on reinstall
- Move bundled cursor packs to extension-sources/ for marketplace upload
- Track marketplace download counts (fire-and-forget POST)
2026-04-12 16:59:07 +10:00
webadderall 6296a05115 fix(audio): add browser microphone fallback for macOS < 14
On macOS versions before Sonoma (14.0), SCStreamConfiguration does not
support the captureMicrophone/microphoneCaptureDeviceID selectors. The
native helper was throwing a fatal error, blocking recording entirely
when microphone was enabled.

Now the Swift helper logs MICROPHONE_CAPTURE_UNAVAILABLE and continues
capture without microphone. The Node handler detects this signal and
returns microphoneFallbackRequired to the renderer, which starts a
browser-side MediaRecorder capturing the mic via getUserMedia. On stop,
the audio blob is saved as a .mic.webm sidecar alongside the native
recording, where the existing companion audio detection picks it up.

Fixes: 'Native microphone capture is unavailable on this macOS/Xcode
runtime' error on older macOS versions.
2026-04-12 16:59:06 +10:00
webadderall 1e67f3f2eb Merge pull request #163 from longmaba/feat/webcam-preview-floating-overlay
feat(launch): add draggable floating webcam preview overlay
2026-04-12 13:13:13 +10:00
Long 79de74a2c0 Merge main into feature branch and resolve LaunchWindow conflict.
Keep the floating webcam preview container and pointer-drag behavior while integrating latest main changes.

Made-with: Cursor
2026-04-12 00:57:52 +07:00
Andrew Foster dc39031990 resolve coderabbit nitpick listeners 2026-04-11 12:10:19 -05:00
Andrew Foster 192947cfed resolve coderabbit feedback on applyHudOverlayBounds 2026-04-11 12:10:19 -05:00
Andrew Foster a78f7d45d4 fix(hud): preserve user-dragged position across recording state changes
The HUD overlay snaps back to the centered default position whenever
recording starts because the idle-to-recording UI swap triggers a
resize, and applyHudOverlayBounds() always recomputes a centered
location. This is disruptive when the user has intentionally moved
the bar out of the way before a timed recording.

Remember the position after a drag ends and reuse it for subsequent
bounds updates, clamped to the current work area. The position resets
on app restart or when displays change so the bar cannot get stranded
off-screen.
2026-04-11 12:10:19 -05:00
webadderall d6f1225e45 feat(extensions): marketplace integration, wallpaper thumbnails, cursor packs, and bug fixes
- Extension marketplace UI with browsing, installing, screenshot gallery
- Wallpaper & cursor style registration API for extensions
- Wallpaper thumbnail system (nativeImage resize + disk cache, OOM-safe)
- Fix HUD crash: check configurable before redefining electronAPI
- Fix zip-slip false positive on macOS (fs.realpath for symlinks)
- Extension icon sizing and description truncation improvements
- Eager extension activation in SettingsPanel
2026-04-12 01:38:36 +10:00
webadderall 6f46878ca8 feat(editor): wire extension lifecycle and update docs
- Connect extension activation/deactivation in VideoEditor
- Update CONTRIBUTING.md and README.md with extension development info
2026-04-12 01:38:36 +10:00