Commit Graph
105 Commits
Author SHA1 Message Date
webadderall 03f13e754e fix windows passthrough 2026-08-27 20:53:13 +10:00
webadderall f3b0fdf8c8 Address taskbar and rendering review feedback 2026-08-25 20:59:28 +10:00
webadderall f874297ad3 Show Recordly in the Windows taskbar 2026-08-25 19:23:15 +10:00
young 72688f4fcb Show Recordly in the macOS Dock 2026-08-25 19:04:38 +10:00
young 13dd5ec412 fix: stabilize macOS countdown capture 2026-08-24 10:29:43 +10:00
wiiiii123 f8ccb5cbcc fix(recording): keep live webcam preview visible 2026-07-11 02:02:24 +07:00
webadderall f23a41934f Revert "fix(recording): preserve webcam preview HUD bounds"
This reverts commit 46810c5cdb.
2026-06-05 10:32:28 +10:00
webadderall d2796fbf84 Revert "fix(linux): expand HUD fallback for menus"
This reverts commit e2802bffad.
2026-06-05 10:32:11 +10:00
webadderall 79f1356652 Revert "fix(linux): route X11 capture through real sources"
This reverts commit 067070d405.
2026-06-05 10:31:28 +10:00
wiiiii123 c0627d0e8c fix(linux): stabilize portal selection HUD 2026-05-29 23:20:22 +07:00
wiiiii123 0a5519382b fix(hud): restore clickability after webcam preview 2026-05-29 02:53:33 +07:00
wiiiii123 21f6d793ca Merge remote-tracking branch 'origin/main' into fix/linux-hud-menu-bounds
# Conflicts:
#	electron/hudOverlayBounds.test.ts
#	electron/hudOverlayBounds.ts
#	electron/windows.ts
2026-05-29 01:20:24 +07:00
wiiiii123 e2802bffad fix(linux): expand HUD fallback for menus 2026-05-29 00:32:07 +07:00
wiiiii123 46810c5cdb fix(recording): preserve webcam preview HUD bounds 2026-05-29 00:18:17 +07:00
wiiiii123 fe828433ad fix(recording): stabilize capture quality and CUDA export canvas 2026-05-27 18:12:21 +07:00
wiiiii123 31d1022fef fix(capture): stabilize platform source handling 2026-05-26 23:12:01 +07:00
wiiiii123 ca05922d47 fix(recording): preserve compact HUD drag position 2026-05-24 20:59:03 +07:00
wiiiii123 513e79a8be fix(recording): compact HUD fallback on non-passthrough Windows 2026-05-24 20:50:49 +07:00
webadderall 95dc2a4d4c Update Recordly app branding assets 2026-05-11 19:20:21 +10:00
webadderall 304d3b1eab Merge pull request #491 from ExtraBinoss/fix/video-editor-loading-time
Fix/video editor loading time
2026-05-11 19:06:38 +10:00
Alan Trebugeais 3d8ae1942a add: 20 seconds -> 2 seconds fix, for now behind a flag to be sure to be able to revert. 2026-05-10 13:01:45 +02:00
Alan Trebugeais 13e3d2bc24 fix: mouse passthrough on windows and other oses 2026-05-09 23:42:49 +02:00
wiiiii123 1efc9f1706 fix(electron): avoid cjs dirname binding collision 2026-05-08 20:07:36 +07:00
wiiiii123 211d6165f9 merge main into beta/pr410-native-gpu-export-test
# Conflicts:
#	electron/ipc/project/manager.ts
#	electron/ipc/register/export.ts
#	src/lib/exporter/modernVideoExporter.ts
2026-05-08 10:44:13 +07:00
webadderall cea93cb9fd fix(hud): restore hide and linux fallback 2026-05-08 10:31:33 +10:00
Alan Trebugeais 02889c73f6 fix minimize after 2 clicks in the void, Recordly should always be on top 2026-05-07 13:35:02 +02:00
Alan Trebugeais cdf19210bd del: removed compatibility layers which were no ops 2026-05-07 00:56:10 +02:00
Alan Trebugeais c7dc99710b fix: hud overlay was flashing white (because I added a fullscreen window to render the overlay, otherwise it wouldn't stop jittering.)
add: launchTheme.css to have everything under the same variables.
2026-05-06 23:16:52 +02:00
Alan Trebugeais df785a8cbc fix: overflow, add window in fullscreen mode to avoid jittering when opening up select...
add: launchTheme.css for consistent styling accross the whole components spectrum related to LaunchWindow
add: correct styles accross the popovers! with unstyled parameters in Popover.tsx because it was needed to make sure its the same
2026-05-06 23:12:03 +02:00
wiiiii123 9c81006e5c Add native GPU static layout export path 2026-05-03 22:43:23 +07:00
webadderall 624c3047be Improve HUD and update prompt UI 2026-04-25 21:34:55 +10:00
webadderall aab14e822a Merge pull request #295 from BillLucky/fix/export-large-files-upstream
fix(export): stream MP4 output to disk to unblock >2 GiB exports
2026-04-25 00:45:44 +10:00
webadderall 66bd91e6a5 Merge pull request #321 from meiiie/fix/win10-floating-webcam-preview
fix(launch): disable floating webcam preview without passthrough
2026-04-25 00:44:41 +10:00
大彪 f8122bde18 chore(smoke-export): let the smoke harness open .recordly project files
Previously the smoke-export harness only accepted a raw MP4 input path.
Validating the export pipeline on a real editor project (with its own
zoom regions, wallpaper, annotations, and webcam state) required
opening the editor by hand and clicking through the GUI.

This adds three new environment variables that are picked up by the
existing smoke-export query string plumbing:

- RECORDLY_SMOKE_EXPORT_PROJECT  — path to a .recordly project file;
  when set, the editor opens it via openProjectFileAtPath and applies
  the saved state before the auto-export fires.
- RECORDLY_SMOKE_EXPORT_QUALITY  — overrides the hard-coded "good"
  quality used by the auto-export trigger; accepts medium / good /
  high / source.
- RECORDLY_SMOKE_EXPORT_FPS      — overrides the frame rate; accepts
  24 / 30 / 60.

No behavior change for existing RECORDLY_SMOKE_EXPORT_INPUT runs;
the new inputs are strictly additive and optional. The startup log
line prefers the project path over the raw-input path when both are
populated.
2026-04-24 16:02:37 +08:00
Uri 8c7c57aa1c fix(linux): allow dragging HUD overlay on Wayland via native OS drag
BrowserWindow.setBounds() with x/y is silently ignored on Wayland (the
compositor owns window placement), so the IPC-driven HUD drag never
moved the window \u2014 it stayed put even though pointer events fired and
the cursor changed to grabbing.

Mark the drag handle as -webkit-app-region: drag on Linux (only in the
IPC/overlay mode; webcam-preview mode still uses the in-window CSS
transform) so the OS performs a real xdg_toplevel.move. Mirror the
resulting bounds into hudUserPosition via the window 'moved' event so
commit a78f7d4's in-place resize behavior keeps working on Linux.
2026-04-23 14:52:40 +03:00
wiiiii123 bac0a0282f fix(launch): disable floating webcam preview without passthrough 2026-04-23 10:52:41 +07:00
wiiiii123 92ee514f5e fix(recording): recover from fullscreen countdown failures 2026-04-21 20:46:37 +07:00
Uri 571bbb9434 fix(linux/wayland): collapse 3-step capture flow into a single portal dialog
Previously on Linux/Wayland, starting a fullscreen recording required three
separate picker interactions: an in-app source dropdown plus two xdg-desktop-portal
dialogs. The duplicate portal dialogs were caused by:

1. resolveBrowserCaptureSource() calling desktopCapturer.getSources() in the
   renderer, which itself triggers the portal on Wayland.
2. setDisplayMediaRequestHandler() in main also calling getSources(), which
   triggers another portal.
3. Returning a pre-enumerated source id to Chromium, which on Wayland is stale
   and forces Chromium to re-prompt via the portal during MediaStream creation.

Additionally, the editor window failed to appear after recording on some
Wayland sessions because 'ready-to-show' did not fire reliably.

Changes:
- LaunchWindow: skip the in-app source dropdown on Linux and start recording
  directly; the OS portal becomes the source picker.
- useScreenRecorder: introduce a 'screen:linux-portal' sentinel source. When
  set, route capture through navigator.mediaDevices.getDisplayMedia() so the
  portal handles selection in a single dialog. Skip resolveBrowserCaptureSource
  for the sentinel to avoid an extra getSources() call.
- electron/main: in setDisplayMediaRequestHandler, when the sentinel is set,
  skip desktopCapturer.getSources() entirely and return a synthetic source so
  Chromium opens the portal exactly once for the actual capture.
- electron/windows: in createEditorWindow, also call win.show() from
  did-finish-load as a fallback for Linux/Wayland where ready-to-show may
  not fire.
2026-04-18 16:17:08 +03:00
webadderall d4a7c863e8 fix: Linux GPU fallback and HUD window show safety net
- Add Linux GPU config: use EGL (better Wayland compat), disable VAAPI
  video decoder/encoder (many distros ship broken drivers causing
  'vaInitialize failed' and preventing renderer from loading)
- Add ready-to-show fallback for HUD window: if did-finish-load never
  fires (GPU failure), show the window after 500ms via ready-to-show

Ref #261
2026-04-18 21:32:18 +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
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
Mohamed 0c5fa40c1f fix(hud): resolve overlay snap to primary on multi-monitor
- Add getHudOverlayDisplay() helper using getDisplayMatching()
  to detect which display the HUD is currently on
- Replace getPrimaryDisplay() in getHudOverlayBounds(),
  set-hud-overlay-compact-width, set-hud-overlay-measured-height
  handlers, and createHudOverlayWindow() maxHeight constraint
- Falls back to primary display when HUD window doesn't exist

Tested on Windows 11 with dual-monitor setup. HUD stays on
the external monitor through recording start/stop and
expand/collapse cycles.
2026-04-09 14:00:50 +02:00
Mohamed 20209cc02d fix(windows): use path.posix for URL path resolution
- replace path.normalize() with path.posix.normalize() in
  resolveRequestedFilePath to preserve forward slashes on Windows
- add empty-string guard for degenerate pathnames
- remove win32 bypass in loadPackagedEditorWindow

path.normalize() converts / to \ on Windows, causing path.resolve
to escape to the drive root and return 403 Forbidden.
2026-04-07 06:18:45 +02:00
webadderall 2692b28604 Hotfix 1.1.18 2026-04-06 22:39:31 +10:00
webadderall 2a155faaf6 Hotfix 1.1.17 2026-04-06 18:10:29 +10:00
webadderall 96d2ca9e5c Improve tray and packaged editor restore paths 2026-04-06 15:22:58 +10:00
webadderall 498b5ef426 Load packaged renderer over localhost 2026-04-05 18:51:51 +10:00
webadderall 5901dc7b90 revert(recording): drop linux editor visibility workaround 2026-04-04 22:15:32 +11:00