mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-28 06:05:24 +00:00
release-2.9.1 (#1557)
* fix(sso): send the PKCE verifier for GitHub login (#1534) * fix(remote-desktop): clip cursor overflow without disabling zoom (#1535) * test(remote-desktop): preserve sessions beyond one hour (#1536) * fix(hosts): expose controls for overflowing editor tabs (#1537) * fix(hosts): expose controls for overflowing editor tabs * test(hosts): mock resize observation in admin panel tests * fix(status): skip TCP probes while host sessions are active (#1538) * fix(database): batch session activity persistence (#1539) * docs(api): describe cookie and API key authentication (#1540) * fix(snippets): repair missing note column on SQLite upgrades (#1541) * fix(docker): retain stored SSH credential association (#1543) * fix(file-manager): render transfer toasts without plugin hooks (#1546) * feat(hosts): keep compact row actions inline (#1547) * fix(auth): allow retrying unavailable second-factor interfaces (#1549) * fix(auth): reject unresolved legacy identity provisioning (#1550) * fix(desktop): ship the plugin SDK inside Mac App Store builds (#1551) * fix(tmux): pass full session info to the terminal's session picker (#1552) The tmux.sessions service reduced detected sessions to bare names, but the picker reads session.name, so every entry rendered blank and selecting one sent an empty name, which created a new session instead of attaching. * fix(ssh): read force keyboard-interactive as a boolean when resolving hosts (#1553) The column holds the text "true"/"false", and the resolver passed it through as-is. The string "false" is truthy, so the password provider treated every saved host as forced keyboard-interactive and left the password out. Jump hops are built straight from the resolved host, so a password hop whose server doesn't offer keyboard-interactive failed with "All configured authentication methods failed". * fix(database): batch database saves for bulk host writes (#1554) * fix(database): yield to the event loop between database saves Each SQLite save serializes and encrypts the whole database into new buffers, which V8 only releases once the event loop turns. Boot migrations and bulk host import write plugin settings per host and per key in an awaited loop, so hundreds of full copies piled up and the container ran out of memory. * fix(database): save once per bulk host write instead of once per row On SQLite every repository write force-saves the whole database. Boot plugin data migrations, host defaults materialization and the bulk host routes write one row per host per setting, so they serialized and encrypted the full database hundreds of times in a row. DatabaseSaveTrigger.batched wraps a function so force saves made while it runs collapse into a single save when it finishes. Nested scopes fold into the outer one, and work that outlives its scope saves normally. * feat(hosts): add instance-wide predefined tag suggestions (#1548) * feat(hosts): add shared predefined tag suggestions * style(hosts): format tag catalog routes * test(database): advance fake timers past the save yield (#1555) * fix(i18n): complete Simplified Chinese core and plugin translations (#1542) * fix(i18n): complete Chinese onboarding and navigation labels * fix(i18n): translate remaining Chinese core and plugin interfaces * fix(i18n): translate host editor tab overflow controls * fix(i18n): use consistent Chinese fleet terminology * fix(i18n): localize hardcoded controls and plugin views * fix(i18n): translate built-in homepage widget catalog * test(homepage): follow translated timezone placeholder * fix(i18n): translate plugin-provided homepage widgets * fix(i18n): localize feature settings section titles * fix: 2.8 oidc accounts unable to sign in after upgrading (#1381) * fix: plugins losing the saved ssh login when copying a host (#1391) * fix: fleets, proxmox and automations not getting the host sudo password * fix: host imports running a defaults pass and metrics restart per host (#1384) * fix: high cpu from status probes and full database saves on every sample (#1300) * fix: user data export freezing the server (#1393) * fix: op:// secret references rejected as ssh keys on credentials (#1394) * fix: slow file deletes from the trash lookups on every delete (#1390) * fix: add openapi docs and error handling to host tag routes * test: compare download stream buffers directly so it stops timing out * chore: drop em dash from host row comment * chore: update release notes for 2.9.1 * fix: restore space to add host tags and redesign predefined tags editor * fix: host key silently accepted when the host is missing from the database (#1397) * fix: clearer host login failed status label and fix its translations (#1396) * chore: add host key and status label fixes to release notes * fix: sso and ldap provider dialogs overflowing the screen and using mismatched toggles * chore: increment ver * fix(audit): store plugin entries with no acting user as a null user_id (#1556) Plugin audit entries written outside a request used the literal "system" as user_id. That column references users.id, so the insert was refused (Postgres logs it as an FK violation) and the entry was silently dropped. Write null instead and keep "system" / plugin:<id> in username. * chore: add sso/ldap dialog and audit log fixes to release notes * fix: tunnels and host settings missing from shared hosts on desktop * fix: remote desktop logins missing from shared hosts on desktop * fix: simplify host status to online/offline and keep it live without a refresh * chore: sync Crowdin translations for 2.9.1 --------- Co-authored-by: ZacharyZcR <zacharyzcr1984@gmail.com>
This commit is contained in:
1 parent
5786eaccbb
commit
6b708106e1
912 files changed
+14220
-2200
No files matched your search
+38
-81
@@ -1,6 +1,6 @@
|
||||
<!-- SUMMARY -->
|
||||
|
||||
A new plugin system powering every feature, a dedicated sync page with more control over what syncs, one inbox for all alerts, a redesigned split screen, admin, user and folder host defaults, host maintenance mode, and a large batch of file manager, terminal, and remote desktop fixes.
|
||||
A patch for 2.9.0 that fixes OIDC sign-in after upgrading, Docker and Host Metrics logins, memory and CPU use, file downloads, tmux sessions, user data export and more. Also adds predefined host tags.
|
||||
|
||||
<!-- /SUMMARY -->
|
||||
|
||||
@@ -12,90 +12,47 @@ https://youtu.be/lngaePO96tM
|
||||
|
||||
<!-- UPDATE_LOG -->
|
||||
|
||||
- Rebuilt Termix around a plugin system, with features like the terminal, file manager, tunnels, Docker, Proxmox, remote desktop, metrics, automations, AI and every login method now shipped as signed plugins on a shared SDK
|
||||
- Moved desktop sync to its own page in the sidebar, with options to choose what syncs, keep single hosts or folders on the device only, and resolve conflicts
|
||||
- Added a recent servers list when linking the desktop app
|
||||
- Combined all alerts into one inbox with popups, Termix announcements and a new email channel
|
||||
- Redesigned split screen with free-form panes and a pane picker
|
||||
- Redesigned host defaults so they can be set at the admin, user or folder level and are inherited by hosts unless overridden
|
||||
- Added per-host maintenance mode and recurring schedules to automations
|
||||
- Added optional auto reconnect for dropped SSH sessions and a button to reconnect all disconnected terminal tabs
|
||||
- Added a duplicate tab action and a reconnect session keybinding
|
||||
- Added a host click setting to either focus an existing tab or always open a new one
|
||||
- Added keyboard type-ahead search to the host list
|
||||
- Added tighter compact host rows with inline tags
|
||||
- Added an option to show tab numbers
|
||||
- Added an option to hide folder paths above nested folders
|
||||
- Added a list of the fixed app shortcuts to the keyboard shortcuts screen
|
||||
- Added terminal toolbar position, start state and fade settings per host
|
||||
- Added a host setting to turn off password prompt auto-fill
|
||||
- Added the option to apply a saved custom theme in connection defaults
|
||||
- Added FortiToken push 2FA support for SSH
|
||||
- Added a unified multi-host tmux monitor view and a per-host tmux mouse toggle
|
||||
- Added fleet sharing
|
||||
- Added a list view to Docker management and support for the OrbStack Docker socket on macOS
|
||||
- Added network graph sync between the desktop app and the server
|
||||
- Added homepage canvas layout sync across devices
|
||||
- Added RDP display zoom controls
|
||||
- Added an option to skip the move to trash confirmation in the file manager
|
||||
- Made the file manager open in the remote login directory by default
|
||||
- Added add host and copy IP actions for Tailscale devices
|
||||
- Added inline credential sharing in the sidebar, matching host sharing
|
||||
- Made the Windows desktop shortcut optional in the installer
|
||||
- Redesigned the snippets panel to match the host list
|
||||
- Redesigned the session log player controls
|
||||
- Host status now shows online once the port answers and only warns when a login fails
|
||||
- Faster SFTP downloads
|
||||
- Faster UI loading with less jitter and lag across tabs, the dashboard and the network graph
|
||||
- Added predefined host tags that admins can set, with suggestions in the host editor
|
||||
- Kept compact host row actions on the same line as the host name
|
||||
- Added a reload button when a sign-in verification method fails to load
|
||||
- Admins can now merge a duplicate SSO account made by 2.9.0 back into the original account
|
||||
- Hosts behind the same jump hosts now share one connection for status checks
|
||||
- Simplified host status to just online or offline, removing the "last login failed" state
|
||||
- Host status now updates every 15 seconds without a page refresh, and status checks run every 30 seconds by default
|
||||
- Completed the Simplified Chinese translation
|
||||
- Documented cookie and API key sign-in in the API docs
|
||||
|
||||
<!-- /UPDATE_LOG -->
|
||||
|
||||
<!-- BUG_FIXES -->
|
||||
|
||||
- TOTP not being prompted for jump hosts in the terminal, file manager, metrics and client tunnels
|
||||
- SSH host names resolving to IPv6 when IPv4 was available
|
||||
- Host key updates not syncing between devices
|
||||
- Host metrics returning 404 on the first connect
|
||||
- Host metrics using too much CPU on the backend
|
||||
- Host metrics showing image and firmware filesystems
|
||||
- Sudo password not auto-filling
|
||||
- Tunnels failing with shared credentials
|
||||
- Imported jump host references breaking
|
||||
- Hard to read terminal selection with the light theme
|
||||
- Terminal input arriving out of order with local echo on
|
||||
- Terminal image uploads failing when the image library was unavailable
|
||||
- File manager saves failing or corrupting files, with no sudo prompt on protected files
|
||||
- Sending a single file between servers failing
|
||||
- Disk usage showing the wrong mount or not refreshing with the directory
|
||||
- File uploads not cancelling and continuing to write on the server
|
||||
- Ctrl/Cmd+F file search not working in the file manager
|
||||
- File drops from the OS not working over existing rows
|
||||
- No download progress in file viewers
|
||||
- Text in Markdown previews not being selectable
|
||||
- Inline rename, compact mode and narrow list layout issues in the file manager
|
||||
- Remote desktop not using the host's saved guacd endpoint
|
||||
- Remote desktop asking for clipboard access unprompted
|
||||
- Remote desktop keys staying held after switching windows
|
||||
- Session share links on desktop pointing at the local app instead of the server
|
||||
- Shared terminal sizes and participant presence not syncing in session sharing
|
||||
- Meeting guests not being shown to members, and guests seeing the full roster
|
||||
- Session sharing not handing over cleanly after a takeover
|
||||
- AI responses getting cut off mid stream
|
||||
- AI provider settings not syncing to linked devices
|
||||
- Proxmox guest sync and startup snippet sync not working
|
||||
- LDAP logins losing the bind DN from the directory
|
||||
- Homepage service checks failing for allowed private addresses
|
||||
- Sidebar search showing overlapping hosts when grouped by tags
|
||||
- Sidebar rows not resizing after changing density, and compact rows hiding host addresses
|
||||
- Split screen layouts failing to create over plain HTTP
|
||||
- Double Shift opening the command palette by accident
|
||||
- Fleet detail buttons overflowing the sidebar
|
||||
- Recent activity cutting off host names too early
|
||||
- Docker container logs using the wrong background color
|
||||
- Version number missing on desktop when the server was offline
|
||||
- Desktop app not starting reliably, not quitting with active connections, and the Linux tray icon failing to load
|
||||
- Mac App Store builds being blocked by the single instance lock
|
||||
- Untranslated text in toasts and other parts of the UI
|
||||
- Several dependency security advisories
|
||||
- OIDC accounts from 2.8 not being able to sign in, or getting a new empty account, after upgrading
|
||||
- Downloading a file in the file manager turning the whole screen black
|
||||
- tmux sessions not resuming and new sessions being created instead
|
||||
- Connections through two or more jump hosts failing
|
||||
- Docker and Host Metrics failing to sign in while the terminal worked
|
||||
- Fleets, Proxmox and automations not getting the host sudo password
|
||||
- Server running out of memory on start and when importing hosts
|
||||
- High CPU use after the app was first opened
|
||||
- User data export freezing the server
|
||||
- 1Password and other secret references being rejected as SSH keys
|
||||
- Slow file deletes in the file manager
|
||||
- Mac App Store app failing to start its local server
|
||||
- Snippets failing to sync on older databases
|
||||
- GitHub sign in failing
|
||||
- RDP showing scrollbars and jittering near the edges
|
||||
- Status checks triggering Fail2Ban bans while a session was open
|
||||
- Too many database writes from session activity
|
||||
- Host editor tabs being hidden when they did not fit
|
||||
- SSH host keys being accepted without a check when the host was missing from the database
|
||||
- Host status only updating after a full page refresh
|
||||
- Every host showing offline right after signing in
|
||||
- Host status flipping between online and offline on refresh or after one dropped packet
|
||||
- Hosts showing "last login failed" when they connected fine
|
||||
- Hosts behind a jump host staying offline after the jump connection dropped
|
||||
- Host status being wiped in the desktop app when the host list failed to load
|
||||
- Tunnels, remote desktop logins and other host settings missing from shared hosts in the desktop app
|
||||
- SSO and LDAP provider dialogs overflowing the screen and using mismatched toggles
|
||||
- Plugin audit log entries failing to save when no user was signed in
|
||||
|
||||
<!-- /BUG_FIXES -->
|
||||
Reference in new issue
Block a user