Commit Graph
296 Commits
Author SHA1 Message Date
webadderall fb54994685 fix(macos): lower deployment target to macOS 13.0 for native helpers
The Swift helper binaries were compiled with -target macos14.0, causing
dyld symbol-not-found crashes on macOS 13. The ScreenCaptureKit audio
APIs require macOS 13.0 minimum, so the deployment target is lowered to
13.0 and an #available guard is added for the macOS 14-only
ignoreShadowsSingleWindow API. README updated accordingly.

Fixes #199, fixes #200
2026-04-09 21:23:33 +10:00
webadderall ad426453c7 fix: harden cursor-monitor spawn against ENOENT on Windows
Use F_OK instead of X_OK for Windows fs.access check (X_OK is meaningless
on Windows). Wrap spawn() in try/catch to prevent uncaught exception if the
binary is missing or blocked by antivirus.
2026-04-09 16:07:57 +10:00
webadderall 646dcf92f0 fix: cursor DPI normalization for Windows/Linux scaled displays
On non-macOS platforms, platform APIs (iohook, GetWindowRect, xwininfo)
return physical pixel coordinates while Electron returns DIP coordinates.
Apply scaleFactor correction so cursor normalization uses a consistent
coordinate space. Fixes ~30-40px cursor offset on Windows 11 and Linux
Mint when display scaling is >100%.

Also fixes winget-releaser workflow (use v2 tag instead of invalid @latest).
2026-04-09 15:58:17 +10: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 18812bda10 Fix Windows tray restore during recording 2026-04-05 23:23:16 +10:00
webadderall 498b5ef426 Load packaged renderer over localhost 2026-04-05 18:51:51 +10:00
webadderall 1e56c2d139 revert(recording): remove editor finalization phase 2026-04-04 22:26:25 +11:00
webadderall 5901dc7b90 revert(recording): drop linux editor visibility workaround 2026-04-04 22:15:32 +11:00
webadderall 22ec58e48a fix(recording): improve post-capture handoff 2026-04-04 22:14:15 +11:00
webadderall 5fd49fbf0f fix(audio): reduce recording and export drift 2026-04-04 21:53:25 +11:00
webadderall 965d4efac7 fix(windows): align Win10 HUD restore with interactive fallback 2026-04-04 17:22:37 +11:00
webadderall dbe1eb314c Merge pull request #167 from TARO-gh/fix/floating-toolbar-drag-drift
fix(windows): stabilize HUD drag by locking bounds size during move
2026-04-04 16:12:45 +11:00
TARO-gh 2cfed3d02f Merge branch 'webadderall:main' into fix/floating-toolbar-drag-drift 2026-04-04 12:39:20 +09:00
webadderall cab37792c3 update native capture helper binaries 2026-04-04 13:08:12 +11:00
webadderall 238281dcec configure smoke export window boot flow 2026-04-04 13:07:49 +11:00
webadderall 89bab3a923 bridge native export apis through preload 2026-04-04 13:07:49 +11:00
webadderall acf359d3cc add native export ipc handlers 2026-04-04 13:07:49 +11:00
webadderall ae2aefe4e2 add native export electron api typings 2026-04-04 13:07:42 +11:00
webadderall 75a90f5bed add native export ffmpeg helpers 2026-04-04 13:07:42 +11:00
TARO-gh 79c03f9039 fix(hud-overlay): keep drag bounds size fixed to prevent cursor drift on Windows 2026-04-03 16:45:31 +09:00
TARO-gh 302676bb77 fix(hud-overlay): ignore duplicate drag mousemove events to stop hold-drift 2026-04-03 15:35:29 +09:00
iRaziul 168d230c91 Fix Linux HUD input handling 2026-04-02 17:40:27 +06:00
webadderall c9f99ee498 fix(electron): Windows HUD visibility - moveTop after show, reassert mouse state on recording start 2026-04-02 21:09:32 +11:00
webadderall b08f4efb37 fix(electron): Win10 HUD click-through recovery 2026-04-02 16:29:51 +11:00
webadderall 13f99f07c8 fix(macos): use firstSampleTime as common time base in native recorder 2026-04-02 16:29:47 +11:00
webadderall 098abda72d fix(recording): improve webcam audio sync and delay compensation 2026-04-02 16:29:43 +11:00
webadderall db8718cf66 Add sidecar audio fallback for silent recordings 2026-04-01 15:40:40 +11:00
webadderall 1f1e445eb8 Fix macOS recording audio playback 2026-04-01 15:01:51 +11:00
webadderall 545019ff7d fix(recording): align auto-zoom cursor data for windows capture 2026-03-31 00:06:53 +11:00
webadderall 91a51951fa fix(recording): trim paused audio from native windows captures 2026-03-31 00:04:00 +11:00
webadderall f61a5982e3 fix(recording): persist microphone and system-audio preferences 2026-03-30 23:49:56 +11:00
webadderall dab9950a54 fix(recording): wrap recovery mux in try/catch to prevent video loss on audio failure 2026-03-30 22:55:53 +11:00
Azeem Tariq 3a0b3fca9e fix(recording): preserve mic audio when recovering mac capture 2026-03-30 15:47:13 +05:00
webadderall e8aa5ac5ad fix: add setDevicePermissionHandler for Windows 11 webcam access
Chromium (Electron 17+) requires setDevicePermissionHandler in addition
to setPermissionCheckHandler/setPermissionRequestHandler. Without it,
device-level access is silently denied on Windows 11 even though the
permission check passes, causing getUserMedia to throw NotAllowedError.
2026-03-30 15:41:01 +11:00
webadderall 9b5e612b96 fix: add Windows camera/microphone permission status logging
- Check systemPreferences.getMediaAccessStatus on Windows startup
- Log warnings when camera/mic access is denied so users know to check
  Windows Settings > Privacy > Camera/Microphone
2026-03-30 15:27:47 +11:00
webadderall ae392e573e fix: add COM init on WASAPI capture thread for Windows 11 compatibility
- Call CoInitializeEx(MTA) at start of captureThread() and CoUninitialize() on exit
- Windows 11 enforces per-thread COM initialization more strictly than Win10,
  causing GetBuffer/GetNextPacketSize to fail silently without this
- Add HRESULT error logging for WASAPI capture failures (GetNextPacketSize, GetBuffer)
2026-03-30 15:27:40 +11:00
webadderall 6f8891529a fix: use CGWindowID bounds for highlight animation instead of AppleScript
- Remove AppleScript 'front window' bounds query which returned wrong window
  for multi-window apps (e.g. Arc highlighting invisible auxiliary window)
- Use resolveMacWindowBounds() which queries by exact CGWindowID
- Keep AppleScript 'activate' call for bringing the app to front
2026-03-30 15:16:35 +11:00
webadderall 27a2be2d3b fix: filter auxiliary windows and remove thumbnail requirement from source list
- Swift helper: filter out untitled auxiliary windows from multi-window apps (e.g. Arc sidebar/tab-bar chrome)
- Swift helper: increase minimum window size from 1x1 to 50x50
- Remove .filter(source => Boolean(source.thumbnail)) that hid valid sources
- Remove hasUsableSourceThumbnail filter in fallback path
- Recompile prebundled openscreen-window-list binary
2026-03-30 15:16:28 +11:00
webadderall 0a30df9872 make dragger register 2026-03-30 14:21:00 +11:00
webadderall 3ff71f6a0b fix(sources): gracefully handle desktopCapturer.getSources failure
Catch errors from desktopCapturer.getSources() in the get-sources IPC
handler and return an empty array instead of crashing the handler.
Prevents repeated 'Failed to get sources' errors when screen recording
permission is not granted (common in dev mode on macOS 26).
2026-03-30 13:33:49 +11:00
webadderall 9aac961c1d fix(hud): make transparent areas click-through
- Set setIgnoreMouseEvents(true, {forward: true}) on HUD overlay window
  so transparent areas pass clicks to apps behind
- Add hud-overlay-set-ignore-mouse IPC to toggle mouse events
- Re-enable mouse events on mouseenter over visible HUD content,
  disable again on mouseleave
2026-03-30 13:32:24 +11:00
webadderall ee29ca0947 fix(recording): make video validation non-blocking and use single timestamp
- finalizeStoredVideo now catches validateRecordedVideo errors instead of
  propagating them, so the editor opens even if ffmpeg validation fails
  (restores v1.1.3/v1.1.5 resilient behavior)
- Use a single Date.now() call for all native capture filenames on macOS
  to prevent timestamp drift between video/audio files
2026-03-30 13:32:16 +11:00
webadderall 86671debe1 chore(native): rebuild win32-x64 native helper binaries
- Rebuild wgc-capture.exe and cursor-monitor.exe from unchanged source
- Update helpers-manifest.json with new binary hashes and timestamps
2026-03-29 19:30:02 +11:00
webadderall 53c7aa7e77 feat(updater): Windows native notifications and toast window fixes
- Use native OS Notification on Windows instead of transparent overlay
  toast window (transparent BrowserWindows are unreliable on Windows)
- Set app user model ID on Windows for proper notification grouping
- Make toast window opaque with solid background on Windows
- Only set transparent body background on macOS for update-toast window
- Refactor UpdateToastWindow to inline styles for Windows compatibility
- Add primaryAction-based button rendering in toast UI
- Add polling fallback for toast payload in UpdateToastWindow
- Add global CSS variables for brand accent color
2026-03-29 19:30:02 +11:00
webadderall f5c92964a4 feat(updater): add update status summary, logging, and new IPC channels
- Add UpdateStatusSummary type and getUpdateStatusSummary() for exposing
  updater state to renderer processes
- Add writeUpdaterLog() for persistent updater diagnostics
- Add configureUpdateFeed() for feed URL configuration
- Wire up get-update-status-summary and check-for-app-updates IPC handlers
- Add primaryAction field to UpdateToastState for actionable toast buttons
- Add checking-for-update event handler with status tracking
- Surface automatic check errors via toast when appropriate
2026-03-29 19:30:01 +11:00
webadderall ac14768a62 fix: TCC permission handling for native helpers on macOS 26
- Add CGPreflightScreenCaptureAccess pre-check in Swift helper
- Add microphone TCC pre-flight when mic capture is requested
- Warm up TCC via desktopCapturer.getSources before spawning helper
- Request mic access from Electron before helper spawn
- Remove unreliable systemPreferences.getMediaAccessStatus pre-checks
- Add camera entitlements to plist files for webcam support
- Guard getScreen() calls behind app.isReady()
- Make tray icons lazy to avoid early screen access
- Suppress duplicate permission error alerts in renderer
2026-03-29 19:15:18 +11:00
webadderall cbde700ab7 fix video editor not opening sometimes in prod 2026-03-29 13:13:15 +11:00