What's Changed
Added
- Connection history recording for all protocols (SSH, VNC, SPICE, RDP, ZeroTrust)
- "New Group" button in Group Operations Mode bulk actions bar
- "Reset" buttons in Connection History and Statistics dialogs (header bar)
- "Clear Statistics" functionality in AppState
- Protocol-specific tabs in Template Dialog matching Connection Dialog functionality:
- SSH: auth method, key source, proxy jump, agent forwarding, startup command, custom options
- RDP: client mode, resolution, color depth, audio, gateway, custom args
- VNC: client mode, encoding, compression, quality, view only, scaling, clipboard
- SPICE: TLS, CA cert, USB, clipboard, image compression
- ZeroTrust: all 10 providers (AWS SSM, GCP IAP, Azure Bastion/SSH, OCI, Cloudflare, Teleport, Tailscale, Boundary, Generic)
- Connection history dialog (
HistoryDialog) for viewing and searching session history - Connection statistics dialog (
StatisticsDialog) with success rate visualization - Common embedded widget trait (
EmbeddedWidget) for RDP/VNC/SPICE deduplication EmbeddedConnectionStateenum for unified connection state handlingEmbeddedWidgetStatehelper for managing common widget statecreate_embedded_toolbar()helper for consistent toolbar creationdraw_status_overlay()helper for status rendering- Quick Connect dialog now supports connection templates (auto-fills protocol, host, port, username)
- History/Statistics menu items in Tools section
AppStatemethods for recording connection history (record_connection_start,record_connection_end, etc.)ConfigManager.load_history()andsave_history()for history persistence- Property tests for history models (
history_tests.rs):- Entry creation, quick connect, end/fail operations
- Statistics update consistency, success rate bounds
- Serialization round-trips for all history types
- Property tests for session restore models (
session_restore_tests.rs):SavedSessioncreation and serializationSessionRestoreSettingsconfiguration and serialization- Round-trip tests with multiple saved sessions
- Quick Connect now supports RDP and VNC protocols (previously only SSH worked)
- RDP Quick Connect uses embedded IronRDP widget with state callbacks and reconnect support
- VNC Quick Connect uses native VncSessionWidget with full embedded mode support
- Quick Connect password field for RDP and VNC connections
- Connection history model (
ConnectionHistoryEntry) for tracking session history - Connection statistics model (
ConnectionStatistics) with success rate, duration tracking - History settings (
HistorySettings) with configurable retention and max entries - Session restore settings (
SessionRestoreSettings) for restoring sessions on startup SavedSessionmodel for persisting session state across restarts
Changed
- UI Unification: All dialogs now use consistent 750×500px dimensions
- Removed duplicate Close/Cancel buttons from all dialogs (window X button is sufficient)
- Renamed action buttons for consistency:
- "New X" → "Create" (moved to left side of header bar)
- "Quick Connect" → "Connect" in Quick Connect dialog
- "Clear History/Statistics" → "Reset" (moved to header bar with destructive style)
- Create Connection now always opens blank New Connection dialog (removed template picker)
- Templates can be used from Manage Templates dialog
- Button styling: All action buttons (Create, Save, Import, Export) use
suggested-actionCSS class - When editing existing items, button label changes from "Create" to "Save"
- Extracted common embedded widget patterns to
embedded_trait.rs show_quick_connect_dialog()now accepts optionalSharedAppStatefor template access- Refactored
terminal.rsinto modular structure (rustconn/src/terminal/):mod.rs- MainTerminalNotebookimplementationtypes.rs-TabDisplayMode,TerminalSession,SessionWidgetStorage,TabLabelWidgetsconfig.rs- Terminal appearance and behavior configurationtabs.rs- Tab creation, display modes, overflow menu management
EmbeddedSpiceWidgetnow implementsEmbeddedWidgettrait for unified interface- Updated
gtk4dependency from 0.10 to 0.10.2 - Improved picky dependency documentation with monitoring notes for future ironrdp compatibility
AppSettingsnow includeshistoryfield for connection history configurationUiSettingsnow includessession_restorefield for session restore configuration
Fixed
- Connection History "Connect" button now actually connects (was only logging)
- History statistics labels (Total/Successful/Failed) now update correctly
- Statistics dialog content no longer cut off (increased size)
- Quick Connect RDP/VNC no longer shows placeholder tabs — actual connections are established
Installation
Debian/Ubuntu
sudo dpkg -i rustconn_0.5.3_amd64.deb
sudo apt-get install -f # Install dependencies if neededAppImage
chmod +x RustConn-0.5.3-x86_64.AppImage
./RustConn-0.5.3-x86_64.AppImageopenSUSE (OBS)
Packages available at: https://build.opensuse.org/package/show/home:totoshko88:rustconn/rustconn
# Tumbleweed
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/openSUSE_Tumbleweed/ rustconn
sudo zypper ref
sudo zypper in rustconn
# Leap 16.0
sudo zypper ar https://download.opensuse.org/repositories/home:/totoshko88:/rustconn/16.0/ rustconn
sudo zypper ref
sudo zypper in rustconn