# changelog

author: Antoine Martin <antoine@xpra.org> 4.0-1
changelog:
  - Drop support for:
     Python 2, GTK2
     legacy versions (pre 1.0)
     weak authentication
  - Network, per socket options:
     authentication and encryption
     ssl
     ssh
     bind options for client
  - make it easier to send files from the server
  - xpra toolbox subcommand
  - xpra help subcommand
  - xpra top new features
  - faster startup
  - signal handling fixes
  - smoother window resizing
  - refactoring and testing
     unit tests coverage and fixes
     completely skip loading unused features at runtime
     get rid of capabilities data after parsing it
     better module dependency separation
     don't convert to a string before we need it
  - more useful window and tray title
  - make it easier to source environment
  - disable desktop animations in desktop mode
  - automatic start-or-upgrade, automatic X11 display rescue
  - support MS Windows OpenSSH server to start shadow
  - more selective use of OpenGL acceleration in client
  - expose server OpenGL capabilities
  - cleaner HTML5 syntax


author: Antoine Martin <antoine@xpra.org> 4.1-1
changelog:
  - Overhauled container based build system
  - Splash screen
  - `run_scaled` utility script
  - Client:
     header bar option for window control menu
     generate a qrcode to connect
     show all keyboard shortcuts
     progress bar for file transfers
     GTK cairo backend support for more native bit depths
     disable xpra's keyboard shortcuts from the system tray menu
     automatically include the server log in bug reports
  - OpenGL client backend:
     render at fixed bit depths with the `pixel-depth` option
     support more bit depths
  - Clipboard:
     MacOS support for images, more text formats, etc
     MS Windows support for images
     wayland clients
  - Server:
     faster server startup
     `xpra list-windows` subcommand
     new window control commands: move / resize and map / unmap
     remote logging from server to client
     support window re-stacking
  - `xpra top`:
     show pids, shortcuts
     more details in the list view
     show speed and quality
  - Display:
     bumped maximum resolution beyond 8K
     set the initial resolution more easily using the 'resize-display' option
  - Encoding:
     server side picture downscaling
     libva hardware accelerated encoding
     NVENC 30-bit accelerated encoding
     vpx 30-bit
     x264 30-bit
     faster 30-bit RGB subsampling
     scroll encoding now handled more generically
     black and white mode
  - Network:
     IGD / UPNP
     SO_KEEPALIVE option
     clients can be queried and controlled using local sockets
     specify connection attributes using the connection string
     nested SSH tunnels
     websocket header modules
     specify the socket type with socket activation
     expose the packet flush flag
     `xpra shell` subcommand for interacting with processes in real time
     custom group sockets directory permissions and name
  - Testing:
     better test coverage
     cleanup output


author: Antoine Martin <antoine@xpra.org> 4.2-1
changelog:
  - use pinentry for password prompts and ssh prompts
  - nvjpeg encoder
  - gui for starting remote sessions
  - new subcommands: `recover`, `displays`, `list-sessions`, `clean-displays`, `clean-sockets`
  - many fixes:
     window initial position
     focus issues
     non-opengl paint corruption
     slow rendering on MacOS
     handle smooth scroll events with wayland clients
     always lossless screen updates for terminals
     clipboard timeout
     peercred auth options
  - support multiple clients using mmap simultaneously with non-default file paths
  - only synchronize xsettings with seamless servers
  - automatic desktop scaling is now disabled
  - workaround for gnome applications starting slowly (documentation)


author: Antoine Martin <antoine@xpra.org> 4.3-10
changelog:
  - Platforms, build and packaging:
     arm64 support #3291, including nvenc and nvjpeg: #3378
     non-system header builds (eg: conda): #3360
     fixed MacOS shadow start via ssh: #3343
     parallel builds: #3255
     don't ship too may pillow plugins: #3133
     easier access to documentation: #3015
     Python 3.10 buffer api compatibility: #3031
  - Misc:
     make it easier to silence OpenGL validation warnings: #3380
     don't wait for printers: #3170
     make it easier to autostart: #3134
     'clean' subcommand: #3099
     flexible 'run_scaled' subcommand: #3303
     more flexible key shortcuts configuration: #3183
  - Encodings and latency:
     significant latency and performance improvements: #3337
     spng decoder #3373 and encoder: #3374
     jpeg with transparency: #3367
     faster argb module: #3361
     faster nvjpeg module using CUDA, add transparency: #2984
     faster xshape scaling: #1226
     downscale jpeg and webp: #3333
     disable av-sync for applications without audio: #3351
     opaque region support: #3317
     show FPS on client window: #3311
     nvenc to use the same device context as nvjpeg: #3195
     nvenc disable unsupported presets: #3136
  - Network:
     make it easier to use SSL: #3299
     support more AES modes: GCM, CFB and CTR, #3247
     forked rencodeplus encoder: #3229
  - Server:
     shadow specific areas or monitors: #3320
     faster icon lookup: #3326
     don't trust _NET_WM_PID: #3251
     move all sessions to a sub-directory: #3217
     more reliable server cleanup: #3218
     better VNC support: #3256
     more seamless server upgrades: #541
     source /etc/profile: #3083
     switch input method to ibus: #2359


author: Antoine Martin <antoine@xpra.org> 4.3.1-10
changelog:
  - fix vpx encoder
  - errors when using the 'password-file' command line option
  - bash path compatibility issue with source commands
  - ssh errors with some versions of paramiko
  - failures to locate existing servers (ie: remote start / attach)
  - dpi errors with desktop servers, causing blurry scaling
  - 'video-scaling' argument parsing errors
  - duplicate dpi xsettings
  - avoid resource leak warning
  - proxy video encoder errors
  - update some of the failing unit tests
  - MacOS broken helper commands, pixbuf loader path errors
  - MacOS packaging of spng codec
  - try harder to locate the html5 client installation path
  - handle source command stdout pollution, trap all errors


author: Antoine Martin <antoine@xpra.org> 4.3.2-10
changelog:
  - color mismatch with jpeg video and html5 client (don't use YUV input)
  - missing auto-refresh
  - support CUDA 11.6 and all targets, compile C++11
  - 'mode' warnings on desktop upgrade
  - detect what type of session to 'upgrade' automatically
  - 'Content-Security-Policy' fixes and workarounds for Safari
  - None value errors with bencode clients
  - honour http path in websocket client connections
  - correctly restore original MacOS environment for subcommands
  - better tracking of pointer grabs
  - try harder to find matching unicode keys with MS Windows clients
  - advertize that we support `_NET_WM_OPAQUE_REGION`
  - avoid pidfile warning when shwoing encoding help
  - don't use x264 encoder for source data with an alpha channel
  - do handle alpha with the new 'jpega' video encoder
  - handle clipboard data sent using strings (ie: some MS Windows clients)
  - file transfer errors with legacy packet encoders
  - client file upload size warning triggered a formatting error
  - enable video subregion by default (fix for HTML5 clients)
  - always initialize the window source fully when the window is mapped
  - cython csc regression


author: Antoine Martin <antoine@xpra.org> 4.3.3-10
changelog:
  - major bugs:
     X11 server crashes with quickly disappearing odd sized video windows
     MS Windows clients mishandling some window hints (ie: Firefox)
     connection errors when non-user-interactive clients are connected
     bencode network error with cuda and bencoder
     workaround VAAPI server crashes
     socket leak when failing to wrap as ssl
     potential race conditions with `xpra info` requests
     missing notifications due to icon parsing errors
     workaround broken svg data format generated by inkscape
     more correct solution for unicode clipboard data (MS Windows clients)
     video capability workaround for legacy packet encoders (ie: older clients)
     MacOS DMG missing code signature
  - screen updates:
     fix jpeg with alpha painting with opengl backend
     png screen updates refreshed unnecessarily
     don't use an rgb format with an empty alpha channel
     ensure video screen updates are only flushed when complete
     avoid errors handling grayscale png images with transparency
     handle grayscale with spng encoder
     missing transparency with webp encoder
     paint errors in non-opengl backend
     never delay screen updates unless we have a video region
     invalid image metadata with `jpeg` decoder and `csc_cython` output
  - cosmetic:
     during shutdown, ignore errors trying to set nodelay / cork
     codec loader output was ignoring standard log output format
     adjust docstring and debug logging messages, typos etc
     show disabled menu entries in MacOS menus
     log current keyboard layout whenever mapping changes
     avoid warnings triggered by Pillow v9
     error messages shown when the systray menu is not yet ready
     more understandable error message when ssh fails to connect
     always log the full backtrace for client connection errors
     errors when changing encoding from the client's systray menu
  - minor:
     make it possible to run the client without some cython extensions
     restore ability to disable smooth scrolling
     carefully access subprocess file descriptors
     map `ffplay` to video application type, `unityhub` as browser type
     incomplete socket dirs validation
     `jpeg` and `nvjpeg` encoders could go missing with unusual settings
     Xorg dummy patch refresh
     CUDA builds with GCC 12, silence unavoidable warnings
     small X11 memory leak
     make it possible to increase the ping timeout delay
     avoid strict warning when sorting windows (`xpra list-windows`)
     window mapping 'event' markers should not be stored as client properties
     use strings for all client properties


author: Antoine Martin <antoine@xpra.org> 4.3.4-10
changelog:
  * major bugs:
     audio not starting with some packet encoders
     opening files with special characters remotely
     always free X11 images safely
     GDK crash when updating parked windows geometry
     webcam forwarding with older clients
     launcher gui initialization error on Wayland
     attach=yes failing with an invalid command line


author: Antoine Martin <antoine@xpra.org> 4.4-10
changelog:
  - Platforms, build and packaging:
     Native LZ4 bindings
     Safer native brotli bindings
     Native qrencode bindings
     openSUSE build tweaks, Fedora 37, Oracle Linux / Rocky Linux / Alma Linux / CentOS Stream : 8 and 9
     Debian finally moved to `libexec`
     MS Windows taskbar integration
     SSH server support on MS Windows, including starting shadow sessions 
  - Server:
     Configurable vertical refresh rate
     Virtual Monitors
     Multi-monitor desktop mode
     Expand an existing desktop
     Exit with windows
     Full shadow keyboard mapping
     xwait subcommand
     guess content-type from parent pid
     cups print backend status report
     Override sockets on upgrade
     Allow additional options to X server invocation
     Control commands for modifying command environment and read only flag
     Start new commands via a proxy server's SSH listener
  - Shadow server:
     Geometry restrictions
     Shadow specific applications
  - Client:
     Automatic keyboard grabs
     Pointer confinement
     Faster window initial data
     Improved DPI detection on MS Windows
     Show all current keyboard shortcuts
     Preserve all options when reconnecting
     Option to accept SSL mismatched host permanently
     Forward all command line options
     Smooth scrolling options
     Per-window scaling - experimental
     Workaround Wayland startup hangs
  - Security and authentication:
     Configurable information disclosure
     Keycloak authentication
     Capability based authentication
     Authentication for web server scripts
     OTP authentication
     Workaround paramiko `No existing session` error
  - Encodings and latency:
     Option to cap picture quality
     Expose scaling quality
     NVJPEG decoder
     AVIF encoding
     selective `scroll` encoding detection
  - Network:
     SOCKS proxy connection support
     SSH agent forwarding
     SSH workarounds for polluted stream premable
     proxy network performance improvement
  - Misc:
     easier xpra subcommand invocation
  - Refactoring and preparation for the next LTS release:
     Feature deprecation
     Remove "app menus" support
     Remove ancient complicated code
     Simplify the build file
     More robust info handlers
     Remove scary warnings
     f-strings


author: Antoine Martin <antoine@xpra.org> 4.4.1-10
changelog:
  - unable to focus window
  - chunked file transfer checksum errors
  - clipboard transfer failures with large data
  - `--max-size` and `--min-size` parsing errors
  - SSH agent forwarding issues: dangling symlinks, etc
  - missing subcommands when starting via proxy
  - option to ignore OpenGL warnings not being saved on Posix systems and save it just once
  - `xpra start --encoding=help` error
  - excruciatingly slow paint without transparency
  - avoid video pipeline warnings due to race conditions or clients that don't support window transparency
  - build with clang
  - sdist snapshots missed an evdi file
  - don't clean files that no longer exist
  - RHEL 9 builds
  - RPM dependency not needed
  - cosmetic:
      - logging error handler errors
      - file transfer errors shown twice
      - honour transparency override earlier
      - unused duplicate header
      - GLib unit test error
      - version test error
      - shadow debug logging error


author: Antoine Martin <antoine@xpra.org> 4.4.2-10
changelog:
  - unit test errors with older versions of python pillow
  - worker thread cleaner termination
  - guard against missing stdin / stderr when starting servers
  - pam authentication module not linked properly
  - add another safeguard for x264 encoder crashes
  - packet errors with legacy encoders


author: Antoine Martin <antoine@xpra.org> 4.4.3-10
changelog:
  - platforms, packaging and build:
     build failures on 32-bit systems
     workaround more broken python uinput packages
     build path detection for newer versions of Visual Studio
     unusual x264 library version strings disabled the encoder
     MS Windows builds switch to CUDA 11.8
     bundle nvidia codecs DLLs
  - encodings:
     extra validation for x264 image height
     transparency pre-multiplied twice with webp, pillow, spng and jpeg without OpenGL which also paints faster
     fix avif encoder loading
     incorrect image metadata with jpega decoder
     fallback to plain jpeg when nvjpeg fails to allocate a CUDA context
     enable nvjpeg decoder with drivers 522.6 or later
  - UI and cosmetic issues:
     splash screen hanging after connection failures
     avoid pycuda import warnings on MS Windows
     avoid named-pipe warnings with MS Windows client
     raw cursors TypeError with lz4 compression on some platforms
     more helpful warning for some cursor issues
     remove debug logging
     opengl toolbox test errors


author: Antoine Martin <antoine@xpra.org> 4.4.4-10
changelog:
  - major fixes:
     focus change failures, errors with OR windows
     dpi validation failures
     honour dpi when setting initial resolution
     match the requested desktop size exactly
     XI2 errors
     try harder to find a valid menu prefix
     OpenGL failures due to misplaced icons
  - network:
     generic `version` requests
     remote start error on encodings option
     remote start error when display is not specified
     silence OpenSSL3 + pycryptography legacy warning
     distinguish network vs session connected state
     parsing of ssh key files environment variable
  - misc, compatibility:
     avoid errors when there is no keyboard config
     fallback keycode mapping errors
     play new client sample on MS Windows shadow servers 
     missing refresh timer with some shadow servers
     content-type environment variable parsing
     `HTTP` proxy type
     unused field prevented serialization
     support environment configuration for ldap authentication module
  - platforms, packaging and build:
     support the latest version of gtk-mac-bundler
     Cython 3.0.0b1 compatibility and warnings for evdi build, C++11, etc
     pyobjc crash workarounds
     clang compatibility
     workaround for OpenGL support with GTK3 on MacOS
     library updates for binary builds (MacOS and MS Windows): OpenSSL 3, ffmpeg
     clipboard errors on MacOS past a certain size
     build errors with latest Python
     build warnings with C++ modules on MS Windows
     pycuda errors locating the CUDA path
     use symlinks for CUDA path on MS Windows
     builds without CUDA
     lintian path updates
     libproc build errors on Debian
     remove reference to outdated path
     version update script lost track of cups backend
     test used incorrect command line arguments
  - encodings:
     restore ability to switch encoding at runtime
     load all codecs before showing the list
     enable faster codecs in some corner cases
     only enable an encoding if we have an encoder for it
     add encoding help entry for `jpega`
     differentiate `nvjpeg` from plain `jpeg` encoder
  - cosmetic:
     log buggy dpi values
     clarify tray vs system-tray
     log the packet header failure message
     logging formatting error
     ignore empty content-type lines


author: Antoine Martin <antoine@xpra.org> 4.4.5-10
changelog:
  - major fixes:
     use after free crash in GTK
     ensure X11 errors don't propagate to GTK
     windows losing focus
     fix legacy URL format parsing
     brolti errors on some platforms
     keyboard shortcuts with Wayland clients and NumLock
     client sockets overwriting server sockets
     network queue flushing
     correct check for disabled monitors
     stop as soon as we find a valid mDNS backend
     only allow logging tweaks via env vars for non-root users
  - packaging:
     dummy driver RPM version 0.4.1
     modules not excluded due to typo
     avoid permissions issues with mv
     remove legacy MacOS bundler workaround
     support MacOS arm64 builds
     fail early with a more useful message on MacOS
     setuptools packaging workarounds on MacOS
     don't ship .cpp source files in MacOS app
     compilation errors with gcc version 7 and older
     RHEL 8.x needs pycuda 2022.1 or older
     RHEL 9.x can install pandoc from EPEL
     silence python cryptography OpenSSL warning on MacOS
     workaround even more exotic library version strings
     try harder to find a working appindicator DEB package
     better compatibility with newer versions of Cython
     we never want a python2 shebang
     evdi file missing from MANIFEST
     missing explicit dependency on `pkgconfig` in RPM spec file
     skip xsettings dpi when the x11 bindings are missing
     ignore setuptools generated cruft
     silence rencode RPM patch warnings
     missing GStreamer elements for playing 'bell' on MS Windows
  - encodings:
     always use lossless encoding for `text`
     continue to monitor window metadata updates
     honour png palette encodings
     option parsing
     help command error
     handle `RGBA` window icon data
     `ffmpeg` encoder error values
     validate NvFBC Sys capture before enabling it on MS Windows
  - minor:
     X11 Atom name memory leak
     handle malformed display names more gracefully
     if we don't have keycodes to map, don't try to translate them
     skip negative keyboard codes as per MS Windows specifications
     fix side buttons on MS Windows
     X11 clipboard debug logging parsing of window names
     remove unused, potentially problematic statement
     make it possible to disable `SHA1`
     avoid errors if `MD5` has already been removed
     don't try to show an exception that does not exist
     window debug logging error
     correctly parse OpenGL diagnostics
     window forwarding require encoding module
     mmap debug flood
     continue with session info despite cursor errors
     handle client server uuid errors more gracefully
     silence shared socket permission warning
     handle missing server attributes without erroring out
     correct default method signature
     missing latency data on websocket connections
     service update errors with newer versions of python zeroconf
     parse IPv6 when looking up network devices
     run servers with missing stderr
     correct server initialization order for cleaner shutdowns on errors
     skip systemd-run tests on unsupported platforms
     missing test dependency on OracleLinux 8.x
     MacOS test tool errors
     skip useless 'unknown' message, typo
     more useful codec loader validation message


author: Antoine Martin <antoine@xpra.org> 4.2-878-1
changelog:
  - select session attributes from list of options exposed by the server
  - detect vertical refresh rate
  - hide on-screen keyboard by default on non-mobile devices
  - tell server to prefer encodings with native decoders
  - updated documentation
  - build and packaging fixes, add easy 'deb' and 'rpm' build targets
  - support older versions of brotli
  - fix missing clipboard events
  - fix window focus tracking issues
  - fix AES encryption (broken by rencoder)


author: Antoine Martin <antoine@xpra.org> 4.3-962-1
changelog:
  - build and packaging:
     installation with python2 build environment
     create symlinks for some fonts
     more reliable git branch detection
  - rencode packet encoder:
     new, clean javascript implementation
     remove workarounds for Safari, encryption, compression, etc
     handle byte arrays natively without copying
  - geometry fixes:
     option to adjust viewport to screen width via scaling
     window visibility adjustements no longer snap to the sides
     server errors for override-redirect windows offsets
     try harder to get override-redirect windows to close
  - keyboard:
     don't show the on-screen keyboard on non-mobile devices
     fix keyboard language to keymap matcher
     Ukranian keyboard layout should use 'ua'
  - re-connect:
     don't start a new session when re-connecting
     fix disconnections after re-connecting
     don't try to reconnect when shutting down the server
  - connect dialog:
     start and start-desktop now work with or without command
     missing session, category and command icons with latest google chrome
     pass w3c validation without any warnings
  - cosmetic:
     scale window icons to fit in the title bar
     use sans-serif font for window title
     change titlebar focused / unfocused colours
     make window corners round
     try to scale application cursors to match window zoom
  - misc:
     audio debugging was wrongly enabled (extra CPU usage and lag)
     remove http mp3 stream audio support
     log disconnection messages
     prevent console errors with Internet Explorer


author: Antoine Martin <antoine@xpra.org> 4.4-1017-1
changelog:
  - encryption:
     support more AES modes: CBC, CFB and CTR
     use secure random numbers
  - core:
     decode screen updates in a dedicated worker thread
     (except on Mobile devices due to strange compatibility issues)
     switch to pure javascript lz4 implementation
     (fixes compatibility issues with browsers, encryption options, etc)
  - misc:
     notifications geometry and styling
     fix zero-copy web worker regression from 4.3
     use zero-copy for transferring audio buffers from the worker


author: Antoine Martin <antoine@xpra.org> 4.5.1-1043-1
changelog:
  - workaround Firefox bug in image decoder
  - allow AES and SSL to be combined
  - support multiple authentication challenges


author: Antoine Martin <antoine@xpra.org> 4.5.2-1106-1
changelog:
  - fix toolbar position
  - install default settings in /etc/xpra/html5-client/
  - image decoding time accounting
  - handle scaled screen updates
  - skip re-connecting when the error is likely to be permanent
  - more helpful disconnection messages
  - ensure we timeout if the websocket connection fails
  - provide an easy way to prevent unwanted connections (ie: xpra.org)
  - fix decode worker sanity checks, validate jpeg, png and webp
  - decode worker errors with legacy packet encoders
  - validate all encodings
  - window title string decoding errors
  - create directories as needed when installing
  - css syntax error
  - better support for relative URLs (proxied configurations)
  - window resize offset bug, minimization bugs
  - force xz compression for DEB packages (zstd support missing from repository webhost)
  - compress harder with brotli
  - remove unnecessary time wrapper
  - try harder to detect the correct screen refresh rate


author: Antoine Martin <antoine@xpra.org> 5.0-1237-1
changelog:
  - auto-fullscreen, alt-tabbing with window previews
  - decode images using an offscreen worker thread
  - decode `avif` images, grayscale and palette `png`
  - handle `void` paint packets
  - increase default non-vsynced target framerate
  - tell servers to use 'scroll' encoding less aggressively
  - keycloak authentication (requires xpra server version 4.4 or later)
  - support pre-mapped windows (requires xpra server version 4.4 or later)
  - support clipboard pasting file into the session
  - detect inverted vertical scrolling (ie: on MacOS)
  - improved dead key mapping for non-us layouts
  - 64-bit rencode decoding bug with Safari (and IE)
  - notification errors with bencoder
  - avoid popping up the on-screen keyboard on mobile touch events
  - updated on-screen simple-keyboard UI and file saver library
  - shifted characters with simple-keyboard
  - prevent stuck keys
  - focus and raise windows when their title bar is clicked
  - spurious focus events when minimizing windows
  - fix AES encryption when used with authentication and rencodeplus
  - build script refactoring


author: Antoine Martin <antoine@xpra.org> 5.1-0-1
changelog:
  - missing wheel events in non-seamless modes
  - workaround for older browsers without hasOwn (ie: Safari)
  - workaround debilitating Safari clipboard implementation
  - broken legacy clipboard
  - windows movement compatibility with Xpra 3.1.x
  - don't allow modal windows to be minimized
  - build fixes for RHEL and clones
  - setuptools and Debian repo build script fixes
  - only send 'sound-stop' if audio is enabled
  - `rencode` draw compatibility fix
  - avoid errors when windows don't have a title
  - provide a more useful screen name to the server
  - truncate large clipboard buffers in debug output
  - log the actual packet data with network errors
  - decode worker always supports rgb
  - fix brotli decompression
  - minor codestyle tweaks
  - clarify installation instructions


author: Antoine Martin <antoine@xpra.org> 5.2-0-1
changelog:
  - offscreen decode worker issues: disable scroll encoding and screenshots, fix decode parsing errors
  - workarounds for older versions of Safari
  - correctly parse audio metadata
  - stop collecting vertical refresh data once we have enough
  - don't close windows when re-connecting
  - connect form can populate username
  - add missing alt attributes
  - honour vertical scroll reverse option


author: Antoine Martin <antoine@xpra.org> 6.0-0-1
changelog:
  - refactorings, cleanups, github CI, etc - JanCVanB
  - split decode from paint, PR202 - TijZwa
  - experimental native decoding, PR200 - TijZwa
  - require ES6
  - move to structured `hello` packet data
  - support `hjsmin` minifier - arrowd
  - updated installer script: #190
  - support for chunked file transfers (large files): #120
  - modal windows should not be minimized


author: Antoine Martin <antoine@xpra.org> 7.0-0-1
changelog:
  - unable to move undecorated / CSD windows
  - throttle video decoder to prevent flooding
  - disable offscreen decode worker with Firefox to prevent flickering
  - workaround for setuptools breakage in version 61 and later
  - native video decoding is fast enough not to require much downscaling](https://github.com/Xpra-org/xpra-html5/commit/ed4b0d72f40864cea4fb4b91b5c400085eb44fa8)
  - propagate error messages
  - truncate large clipboard buffers in log messages
  - `scroll` draw packets can hang the connection
  - prefer h264 and remove vp9
  - spurious audio stop errors
  - make stream download URL easier to embed
  - missing scroll wheel events
  - avoid errors if the window's title is unset
  - remove support for software video decoding
  - don't enable clipboard with Safari and SSL
  - provide more useful screen name to the server
  - cursor display and scaling issues
  - workaround for older versions of Safari


author: Antoine Martin <antoine@xpra.org> 8.0-0-1
changelog:
  - disable scroll encoding with offscreen decode worker
  - screenshots cannot be used with the offscreen api
  - don't close windows when re-connecting or when closing the browser window
  - closing windows is only a request
  - hide options when they are not available: `shutdown` and `file upload`
  - remote logging arguments missing
  - fix initiate-move-resize
  - cursor fixes: cursor updates and geometry
  - fix vertical scroll reverse
  - minor cleanups:
     unused variables
     unused function
     unused statements
     document empty functions
     linter cleanup
     use a more correct datatype
     improved syntax
     use the preferred keywords for variable declaration


