- Introduced new localization strings for update logs across multiple languages.
- Redesigned the update progress modal to an update wizard format, improving layout and user interaction.
- Added functionality for log expansion, copying, and countdown display during updates.
- Enhanced CSS styles for better visual hierarchy and responsiveness in the update wizard.
- Adjust alignment properties in CSS for better visual hierarchy in session tabs and buttons.
- Update session picker modal styles for improved responsiveness and aesthetics, including padding and border adjustments.
- Enhance JavaScript functionality to prevent event propagation within the session picker panel.
- Refine hover effects and box shadows for a more polished user experience.
Implement a session picker overlay for selecting devices, including a search feature and navigation for folders, groups, and tags. Update localization files for multiple languages to include new session picker strings. Enhance the session tab bar with slim and expandable card designs for better user experience.
A bash fragment was accidentally left in the LE live-dir resolver, crashing ExecStartPre on every boot. Also infer certbot live path from certificate SAN when env metadata is missing.
Refs #219
Co-authored-by: Cursor <cursoragent@cursor.com>
Auto-redeploy TLS material on update/repair, unify SSL menu C with protocol toggle T, and retry post-toggle health checks so the console user can always read keys under $RUSTDESK_PATH/ssl/.
Refs #219
Co-authored-by: Cursor <cursoragent@cursor.com>
Remove internal LAN IP, SSH user, and developer paths from docs and examples; move deploy runbook to gitignored docs/private with a public template; drop Cursor debug logging leftovers; add CI checks to prevent regression.
Co-authored-by: Cursor <cursoragent@cursor.com>
Add PUBLIC_SERVER_ID, PUBLIC_RELAY_SERVER, and PUBLIC_API_URL with Settings UI,
unified endpoint resolution across Dashboard/Keys, and fallbacks via PANEL_PUBLIC_HOST.
Wire billing/NTP env from console .env into Go on Linux, Windows, and Docker; add OS NTP fallback and Commercialization settings UI to configure and restart the server.
Add support for handling file action confirmations during uploads, including the ability to process send confirmations from peers. Enhance the file transfer protocol by introducing a new method to build and handle file metadata digests prior to upload blocks. Update related tests to ensure proper encoding of file response digests for uploads.
Enhance the file transfer connection logic by adding an `isConnected` method to check the readiness of the file connection. Update the `ensureFileConnection` method to handle connection errors more gracefully and ensure proper disconnection. Modify the file transfer modal to improve user feedback during connection states and streamline the rendering of remote entries. Additionally, refine the file transfer class to better manage connection requirements.
Refine the RustDesk file transfer protocol by correcting the FileAction mapping for uploads and downloads, ensuring full remote paths are used. Implement optional zstd block decompression for downloads and improve transfer progress reporting. Update related tests for clarity and accuracy in encoding file transfer requests.
Whitelist linux-ensure-console-user.js in sudoers, invoke it via passwordless
sudo from the update module, refresh sudoers after privileged server deploy,
and align betterdesk.sh repair paths so systemd unit helpers apply without a
manual root step.
Replace invalid prototype getter syntax in local-files.js and mesh-files.js
so the file transfer modal loads in browsers. Panel updates patch
betterdesk-server.service via a passwordless-sudo helper instead of
interactive sudo tee.
Refs #217
Unify .env and systemd updates on protocol toggle, probe the correct panel
port (5443 vs 5000), and match Client API TLS in post-config tests. Use 307
redirect and skip HSTS for self-signed installs so browsers can return to HTTP.
Enhanced mobile device detection logic to prevent false positives that blocked access on PCs, tablets, and unfolded foldables. The phone gate now respects the `[hidden]` attribute, skips zero-width false positives, excludes fine-pointer desktops, and re-evaluates on viewport resize. Updated related CSS and JavaScript to support these changes.
Ship mesh layer as default-on with updater/installer MESH_ENABLED=Y injection,
Settings groups/recordings UI, device power and filter UX, relay multiplexing,
WoL wake fallback, mesh RBAC permissions, and REST automation docs.