Synergy release notes
3.1.2 Beta
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