Synergy release notes

3.1.2 Beta

Bug fixes

Enhancements

At a glance

  • Increased stability and fix many bugs found in v3.0
  • Improved first-instance troubleshooting for customers
  • Reduced tech debt, code smells, and anti-patterns
  • Converted majority of JavaScript code to strict TypeScript
  • Fixed reliability issues and security hot-spots
  • Improved productivity of development environment
  • Fixed new bugs that may make beta testing difficult

Known bugs

  • Error on Linux about TLS fingerprint prevents Core starting
  • Transient TLS fingerprint errors when starting Core process
  • Various errors occur when clicking 'Config file' switch
  • Behavior of dragging screens on layout editor is jittery
  • Random green lines appear on the 'Screen layout' editor
  • Screen resize can go beyond the bounds of the layout editor
  • Dragging over another on the layout editor picks up other computer
  • Core process is restarted unexpectedly when changing settings
  • Random error related to browser window creation
  • Core 'refused client' error when removing computer
  • Computer naming allows duplicate names
  • Core sometimes connects to 'undefined' port/address
  • Various bugs related to updating serial key
  • Windows Daemon takes 3 seconds to start the Core
  • Error about 'computer already setup' when naming computer
  • Fatal error from Core: File creation issue during launch
  • Unable to start a free trial from the welcome screen
  • Screens overlap with the context menu on the layout editor
  • Various errors related to invalid serial keys in some cases
  • Slow graphic load on 'Name your computer' screen
  • Core process error: Fatal command launch issue
  • Clicking 'Cancel' on the login screen logs you in

Fixed bugs

  • Cannot remove computer on 'Screen layout' or 'Manage computers'
  • Computer online state not showing correctly on 'Screen layout'
  • Background service crashes when various ports are is in use
  • Manually connecting to a computer works unreliably
  • Accessibility error on macOS permission screen
  • Pre-login agent error on macOS when reconfiguring
  • Manual connection fails if user logged in using email and password
  • Logging in with same email and password yields two different licenses
  • Manual connection fails and there no information about the reason why
  • Error when starting Core process with 'Config file' mode
  • Stopping Core from tray when not running causes error
  • Twitchy start/stop tray menu item on macOS
  • Error: cannot save trusted servers, fingerprint is empty
  • Error: failed to update settings on react init
  • TypeError: this.createPermissionWindow is not a function
  • macOS permission window is not shown on fresh install
  • Version API returns 502, which is shown as error
  • Error: is server option is undefined
  • Flashing accessibility permissions window on macOS
  • Error: missing serial in database cache
  • ReferenceError: exec is not defined on macOS
  • Seeing 'Error: missing app' when connecting manually
  • ReferenceError: match is not defined on create password page
  • Error: electron ipc send response was null
  • Service logs unhelpful error message when reporting to GUI
  • Error dialog shows when unable to check for updates
  • Clicking report diagnostics shows 'Error: settings is not set'
  • Error: Error invoking remote method 'serviceFetch'
  • Using 'Config file' mode and running as a server fails
  • Error: Cannot read properties of undefined (reading 'id')
  • Diagnostic tool misreporting error about default scheme
  • Electron IPC error when running the diagnostic tool
  • Error: unable to find license with valid edition
  • Error: failed to copy fingerprint file from 'x' to 'y'
  • Wayland message box sends to bad URL
  • Network Device option swapping immediately to Auto
  • Serial key field is cleared when it's invalid
  • Last cause is repeated twice in Axios error summary
  • Error: unsupported expiry stage: expiryStage()
  • Error: expressions.tomorrow is not a function
  • Serial key field is cleared when it's invalid
  • Service error reporting is showing as disabled when enabled
  • Service is not started after fresh install
  • Error: websocket client error
  • Error: The connection to the local background service timed out
  • Error: is server option is undefined
  • Error: message data must be an object
  • Error: could not parse serial key
  • Version check failed: AxiosError: unable to get local issuer certificate
  • Fingerprint error when TLS is not being used
  • Service process is not running after reset settings
  • Custom config blank randomly when turning off 'Config file' mode
  • Error: config invalid, no data
  • Error: server args not set
  • Error: server ip client arg is not set
  • Unexpected redirect to the 'Name your computer' screen
  • Unable to manually connect in some cases
  • Error: read ENOTCONN (spawn [...]/synergy-security EAGAIN)
  • Error: failed to persist tls fingerprint target directory
  • Error: unknown permission status received
  • ReferenceError: cause is not defined
  • Tray is not running after installation on Windows
  • Error: failed to copy fingerprint file
  • Error: read must be called before accessing data (custom config)
  • Error: log window does not exist
  • Error: could not parse serial key
  • macOS becomes unresponsive when disabling permission
  • Error: no serial key
  • Error: browser window has not yet been created
  • Error: failed at reset computer step: self from database
  • Redirected to 'Name your computer' after resetting config
  • Error: tray process exited with non-zero code, code=1 signal=unknown (Linux)
  • Unable to paste serial key on macOS
  • Unable to login using login and password
  • Unable to paste serial key to serial key screen
  • Hotkey screen blank after adding hotkey
  • The diagnostic screen shows only the background service install status
  • Match code is not printed in Service log
  • When at login screen, background service disconnect doesn't show loading screen
  • Clicking 'This computer's details' show blanks screen
  • Blank screen on first time going to 'Screen layout'
  • 'Auto discover' functionality fails unexpectedly
  • Unable to launch Core from Windows daemon: failed to launch
  • Tray icon blocking Apple menu in top left of screen
  • Core error: could not get next process entry
  • Red dot log badge not shown when there are errors
  • Many instances of background service and tray are running
  • Error: libssl-1_1-x64.dll was not found
  • Error: cannot process empty core log data
  • Error: cannot emit data saved event, data not ready yet
  • Login button kicks you back to welcome screen

Enhancements

  • Delete the GUI settings when resetting
  • Show major version number (3.1) at start of GUI title
  • Show errors in GUI when tray process crashes
  • Show simple stack trace at top of technical info
  • Reset Core errors when restarting Core process
  • Show actual error message in error dialog
  • Resolve various security issues by upgrading packages
  • Show error types when logging exceptions in background service
  • Change systemd unit files to output to journal
  • Increase logging and error cases for tray process controller
  • Setting to suppress display of noisy Core error dialogs
  • Show 'unknown' in error dialog when reporting is unknown
  • Make it easier to diagnose problems with invalid licenses
  • Replace quiet error log calls with noisy error report

Technical changes

  • Upgraded from Node 16 to Node 18 for improved security and reliability
  • Upgrade Core from C++10 to C++20 and use latest VC++ redist
  • Various productivity improvements to the development environment
  • Upgrade all packages for background service and GUI
  • Enable very strict lint rules for TypeScript
  • Convert all GUI JavaScript modules to TypeScript
  • Convert all background service JavaScript to TypeScript
  • Setup new build system and toolchain for code repo
  • Remove various hard coded URLs and magic strings
  • Remove legacy code in React-Electron IPC
  • Remove dead code relating to the defunct GUI wizard
  • Clean up dead code related to copying TLS fingerprint
  • Decouple Core config from database with better design
  • Remove Core connector which adds unnecessary complexity
  • Upgrade Core package for Apple Notary
  • Make Electron responsible for installing background service
  • Reorganize background service database modules
  • Implement global state management using Redux
  • Refactor Core process management code
  • Refactor license management code in GUI
  • Refactor database read code to remove code duplication
  • Refactor REST background service component
  • Refactor database, sync, and Core config in Service
  • Refactor error reporting in GUI and background service
  • Refactor settings loading logic in GUI
  • Refactor and reorganize Service installer
  • Refactor various React class components to function components