Skip to content

Releases

1.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Oct 14:50

Changed

  • Upgraded bundled scrcpy from 4.1 to 5.0.1 (FFmpeg 9.0.2, SDL 3.4.18, adb 37.0.1); FFmpeg DLL names changed (avcodec-63, avformat-63, avutil-61, swresample-7)
  • Removed stale compiled copies electron/main.cjs / electron/preload.cjs (unused duplicates of the TypeScript sources)

Fixed

  • Forward tunnel now passes --force-adb-forward; the previous --tunnel-forward is not a scrcpy option and made every forward-tunnel launch fail

Added

  • Hardware decoding toggle in Encoding settings (scrcpy 5.0+ --hwdec, enabled by default, can be disabled to force software decoding)

1.2.9

Choose a tag to compare

@github-actions github-actions released this 19 Jul 02:07

Fixed

  • Removed obsolete --record-audio flag (invalid on scrcpy 4.x; caused launch failures when record audio was enabled)
  • Added required --video-source=camera for all camera-intent mirror paths
  • Fixed device list refresh that could mark all known devices offline after a successful ADB poll
  • Session recording no longer mutates the global auto-record display setting
  • Session record/audio/camera overrides now survive intentional scrcpy restarts (merge before kill; preserve on exit)
  • Quick-action process stop/kill routed through shared cross-platform terminate helpers
  • Camera button active state synced via store and camera-exit events
  • Encoding bitrate mode (VBR/CBR) UI marked unsupported (no scrcpy 4.x CLI mapping); localized strings for all languages

Added

  • Shared pure buildScrcpyArgs module with unit tests (npm run test:args)
  • Per-device session override helpers (sessionOverrides) with restart-order tests
  • Project AGENTS.md (contributor rules for scrcpy args, settings vs session, process lifecycle)

1.2.8

Choose a tag to compare

@github-actions github-actions released this 13 Jul 11:08

Changed

  • Upgraded scrcpy from 4.0 to 4.1 (FFmpeg 8.1.2, SDL 3.4.12, libusb 1.0.30)

Added

  • Added --ignore-video-encoder-constraints toggle in encoding settings (scrcpy v4.1)
  • Added VP8 and VP9 video codec support in encoding settings

1.2.7

Choose a tag to compare

@github-actions github-actions released this 13 May 14:52

Changed

  • Upgraded scrcpy from 3.3.4 to 4.0 (SDL3, FFmpeg 8.1.1, ADB 37.0.0)
  • Enabled --record-audio support for recording with audio

Added

  • Added audio recording support (--record-audio)

1.2.6

Choose a tag to compare

@github-actions github-actions released this 27 Apr 14:48

Fixed

  • Fixed macOS/Linux process termination not working properly - now uses process.kill() instead of ineffective pkill command
  • Fixed isProcessRunning always returning true on non-Windows platforms - now properly checks process existence using kill -0
  • Fixed tray translation language path incorrectly pointing to resourcesPath - now correctly uses app.getPath("userData")
  • Fixed device connection state update missing error handling - now properly catches and logs async errors
  • Removed dead code calling non-existent IPC handler in preload.ts

Changed

  • Updated .gitignore to exclude session and workspace-specific files
  • Fixed .vscode typo in .gitignore

1.2.5

Choose a tag to compare

@github-actions github-actions released this 17 Feb 15:08

Fixed

  • Fixed device status flickering to offline during app startup - now only updates when state actually changes
  • Fixed device status not updating after auto-connect - now properly notifies frontend on successful connection
  • Fixed device status becoming offline on page refresh - frontend now preserves last known state
  • Fixed tracker add/remove events sending incomplete device data - now includes proper name, type, and status fields
  • Fixed auto-connect not working for previously connected devices - now connects devices with isConnected=true

Changed

  • Device state synchronization: only notifies frontend when there's an actual state change (no intermediate states)
  • Auto-connect now targets previously connected devices (isConnected=true) instead of just autoConnect=true
  • Improved startup sequence: ADB server starts first, then tracker initializes, then auto-connect runs
  • Added notifiedDevices set to prevent duplicate notifications to frontend

1.2.4

Choose a tag to compare

@github-actions github-actions released this 11 Feb 09:11

Fixed

  • Fixed race condition in device loading when rapidly refreshing device list
  • Added concurrency control to prevent state overwrite from simultaneous loadDevice calls
  • Fixed IPC listener cleanup using removeAllListeners which could accidentally remove other component listeners
  • Improved listener management with listenerMap for precise cleanup
  • Fixed WiFi device auto-reconnect timing issue - now waits 10 seconds after disconnect before attempting reconnect
  • Added 2-second delay before WiFi reconnect to prevent triggering during network instability
  • Fixed TypeScript type error in preload.ts listener callback type

Changed

  • Device auto-reconnect now only triggers on manual refresh, not immediately after disconnect
  • WiFi devices must be previously connected before attempting reconnect

1.2.3

Choose a tag to compare

@github-actions github-actions released this 22 Jan 16:10

Fixed

  • Fixed device connection status not updating when device disconnects (WiFi/USB)
  • Fixed stale "connected" status persisting after device disconnection
  • Device status now updates immediately when device tracker detects disconnect event
  • Fixed device status not updating on visibility change (tab switch)
  • Fixed ADB daemon failure not clearing connected devices state

Changed

  • Optimized startup: device status restored from history immediately, no initial ADB poll
  • Device connection state now determined by ADB only when status actually changes
  • WiFi devices now mark as offline after 5 seconds of disconnection timeout
  • Postinstall script changed from electron-vite postinstall to electron-vite build

1.2.2

Choose a tag to compare

@github-actions github-actions released this 15 Jan 15:48

Fixed

  • Fixed custom settings (FPS, Bitrate, Resolution) not synchronizing immediately when switching to "Custom" mode in Display settings
  • Improved "Custom" option visibility in dropdown menus by adding explicit labels
  • Completed "Custom" label translations across all supported languages (ES, FR, JA, KO, TR)

1.2.1

Choose a tag to compare

@github-actions github-actions released this 15 Jan 15:25

Fixed

  • Fixed scrcpy launch parameters missing --video-encoder and --audio-encoder, ensuring selected hardware encoders are actually used
  • Fixed video encoder list not showing in Encoding settings when no device is initially detected (added persistent dropdown with lazy loading)