github totoshko88/RustConn v0.7.1

latest releases: v0.10.2, v0.10.1, v0.10.0...
one month ago

What's Changed

Added

  • Undo/Trash Functionality - Safely recover deleted items (COMP-FUNC-01):
    • Deleted items are moved to Trash and can be restored via "Undo" notification
    • Implemented persisted Trash storage for recovery across sessions
  • Group Inheritance - Simplify connection configuration (COMP-FUNC-03):
    • Added ability to inherit Username and Domain from parent Group
    • "Load from Group" buttons auto-fill credential fields from group settings

Changed

  • Dependencies - Updated: bytemuck 1.24.0→1.25.0, portable-atomic 1.13.0→1.13.1, slab 0.4.11→0.4.12, zerocopy 0.8.36→0.8.37, zerocopy-derive 0.8.36→0.8.37, zmij 1.0.17→1.0.18
  • Persistence Optimization - Implemented debounced persistence for connections and groups (TECH-02):
    • Changes are now batched and saved after 2 seconds of inactivity
    • Reduces disk I/O during rapid modifications (e.g., drag-and-drop reordering)
    • Added flush_persistence to ensure data safety on application exit
  • Sort Optimization - Improved rendering performance (COMP-FUNC-02):
    • Sorting is now skipped when data order hasn't changed, reducing CPU usage
    • Optimized sort_all calls during UI updates
  • Connection History Sorting - History entries now sorted by date descending (newest first)

Fixed

  • Credential Inheritance from Groups - Fixed password inheritance not working for connections:
    • Connections with password_source=Inherit now correctly resolve credentials from parent group's KeePass entry
    • Added direct KeePass lookup for group credentials in resolve_credentials_blocking
  • GTK Widget Parenting - Fixed gtk_widget_set_parent assertion failure in split view:
    • set_panel_content now checks if widget has parent before calling unparent()
  • Connection History Reconnect - Fixed reconnecting from Connection History not opening tab:
    • History reconnect now uses start_connection_with_credential_resolution for proper credential handling
    • Previously showed warning about missing credentials for RDP connections
  • Blocking I/O - Fixed UI freezing during save operations by moving persistence to background tasks (Async Persistence):
    • Added global Tokio runtime to main application
    • Implemented async save methods in ConfigManager
    • ConnectionManager now saves connections and groups in non-blocking background tasks
  • Code Quality - Comprehensive code cleanup and optimization:
    • Fixed future_not_send issues in async persistence layer
    • Resolved type complexity warnings in ConnectionManager
    • Removed dead code and unused imports across sidebar modules
    • Enforced clippy pedantic checks for better robustness

Refactored

  • Sidebar Module - Decomposed monolithic sidebar.rs into focused submodules (TECH-03):
    • search.rs: Encapsulated search logic, predicates, and history management
    • filter.rs: centralized protocol filter button creation and state management
    • view.rs: Isolated UI list item creation, binding, and signal handling
    • drag_drop.rs: Prepared structure for drag-and-drop logic separation
    • Improved compile times and navigation by splitting 2300+ line file
  • Drag and Drop Refactoring - Replaced string-based payloads with strongly typed DragPayload enum (TECH-04):
    • Uses serde_json for robust serialization instead of manual string parsing
    • Centralized drag logic in drag_drop.rs
    • Improved type safety for drag-and-drop operations

UI/UX

  • Search Highlighting - Added visual feedback for search matches (TECH-05):
    • Matched text substrings are now highlighted in bold
    • Implemented case-insensitive fuzzier matching with Pango markup
    • Improved Regex-based search logic

Installation

Debian/Ubuntu

sudo dpkg -i rustconn_0.7.1_amd64.deb
sudo apt-get install -f  # Install dependencies if needed

Fedora

sudo dnf install rustconn-0.7.1-1.fc41.x86_64.rpm

AppImage

chmod +x RustConn-0.7.1-x86_64.AppImage
./RustConn-0.7.1-x86_64.AppImage

openSUSE (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

Don't miss a new RustConn release

NewReleases is sending notifications on new releases.