Skip to content

4.16.0

Latest

Choose a tag to compare

@jeanfbrito jeanfbrito released this 10 Aug 21:33
5ec3255

Highlights

A new workspace navigation system with three switchable layouts, a unified window chrome across all three platforms, security hardening from a 2022 pentest follow-up, and an upgrade to React 19.

✨ New workspace navigation: Tabs, Sidebar, or Titlebar

Workspace switching has been reworked into three interchangeable layouts, selectable in Settings → General or via the View menu (⌘/Ctrl+Shift+S cycles through them):

  • Tabs — a horizontal browser-style tab strip with favicon, label, unread/mention badges, a keyboard-shortcut chip, drag-to-reorder, and an add-workspace button.
  • Sidebar — a narrow, icon-only vertical column with square favicon tabs and badges, keyboard navigation, and improved contrast when a workspace's favicon matches the background.
  • Titlebar — no sidebar and no tab strip, just the title bar with a compact server switcher.

The whole desktop chrome is now theme-aware, and the Theme selector is back in Settings. (#3424, #3394, #3419, #3413, #3403)

✨ Unified window chrome across Windows, Linux, and macOS

  • Menu bar on Windows and Linux is now hidden by default — press Alt to reveal it temporarily, or pin it permanently visible from Settings → General → Menu bar, the View menu, or Ctrl+Shift+M. Existing installs are migrated automatically without overriding a choice you've already made.
  • Linux now uses the same client-side window chrome as Windows: window controls embedded in the tab strip instead of relying on the desktop environment's title bar, plus softly rounded outer corners. (#3450, #3449)
  • Updates are now surfaced as a titlebar label instead of a modal dialog, with clearer feedback for manual update checks and more resilient silent background checks. (#3439, #3427)
  • Downloads get a new tab-strip indicator with a cleaner, more compact presentation. (#3443, #3441)
  • Added a Cmd+, shortcut to open Preferences on macOS. (#3340)

🔒 Security hardening

Follow-up fixes from pentest review, tightening several areas that previously relied on broader trust than necessary:

  • Restricted geolocation, notifications, and fullscreen permission prompts in the server view to trusted, configured server origins only. (CORE-1121, #3395)
  • Blocked main-frame navigation to non-http(s) schemes inside the server webview. (CORE-1123, #3397)
  • Tightened the Content-Security-Policy on local renderer windows. (CORE-1126, #3316)
  • Session data (cookies, localStorage, indexedDB) is now cleared automatically when a user logs out of a server through the normal web app UI, not only via the manual "Clear Cache" action. (CORE-1130, #3398)
  • Documented a risk-acceptance decision on certificate pinning for the auto-updater (CORE-1128) for future reference. (#3396)

🐛 Fixes

  • Fixed workspace tabs intermittently getting stuck on the loading throbber after a webview boot failure — the app now recovers automatically instead of requiring a full restart. (#3436)
  • Fixed a renderer infinite re-render loop that could throw "Maximum update depth exceeded". (#3435)
  • Fixed an unread-badge update storm that could crash tab bar rendering, and corrected badge rendering/priority. (#3437, #3434)
  • Fixed the screen-share picker appearing at app launch with no user interaction on Linux Wayland (Fedora Flatpak, Ubuntu deb) — source enumeration was running before the picker was ever opened. (#3400)
  • Fixed the screen picker to show on the window that actually requested it (rather than always the main window) and to queue concurrent requests instead of dropping them. (#3399)
  • Fixed screen-picker source stability under Electron 42's macOS capture stack. (#3414)
  • Fixed workspaces with a valid uniqueId-scoped support exception incorrectly showing the "Unsupported" screen. (#3404, #3406, #3407)
  • Fixed the sidebar tooltip showing "null" for servers beyond the 9th position. (#3326)
  • Fixed the TopBar not rendering on Linux when using the Sidebar or Titlebar layouts. (#3449)
  • Fixed dependency subpath imports not being externalized correctly in the Rollup build. (#3411)

🔧 Internal

  • Upgraded React 18.3 → 19 and Fuselage 0.78 → 0.80. (#3384, #3383)
  • Added a silent installation guide for enterprise deployments. (#3178)
  • Added test coverage across preload and module boundaries. (#3393)
  • Applied least-privilege permissions to GitHub Actions workflows. (#3410)
  • Updated translations from Lingohub. (#3447, #3392)

Full Changelog: 4.15.6...4.16.0