rustconn (0.13.10-1) unstable; urgency=medium

  * [Added] Import/Export: SecureCRT session support — import connections
    from SecureCRT Config/Sessions/ directory (individual .ini files); export
    connections back to SecureCRT INI format as a directory tree; supports
    SSH2, Telnet, RDP, VNC protocols with hostname, port, username, SSH key
    path, X11/agent forwarding, compression; folder hierarchy preserved as
    connection groups (#140)
  * [Fixed] Backup/Restore: global variables lost after restore — restoring
    settings from a ZIP archive would show "Restored N files" but closing the
    settings dialog afterwards overwrote the restored config.toml with stale
    in-memory state; the dialog now reloads AppSettings from disk immediately
    after a successful restore (#142)
  * [Fixed] SSH: ControlMaster sockets now actually closed on application
    exit — shutdown handler scanned active_sessions() but all sessions were
    already Terminated by the time GTK fires connect_shutdown; replaced with
    filesystem scan of runtime directory for rc-* socket files; stale sockets
    that don't respond to ssh -O exit are force-removed (#125)
  * [Fixed] KeePass: custom entry path for variables ignored RustConn/
    prefix — added get_password_from_kdbx_exact() that queries the entry at
    the exact user-specified path without any prefix or fallback logic (#143)
  * [Dependencies] hashbrown 0.17.0 → 0.17.1

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 09 May 2026 14:00:00 +0200

rustconn (0.13.9-1) unstable; urgency=medium

  * [Fixed] Flatpak: Zero Trust Generic commands now execute on host —
    custom commands were failing with "No command specified" due to double
    sh -c wrapping; now automatically wrapped with flatpak-spawn --host
    with PTY allocation; single quotes in templates properly escaped (#132)
  * [Fixed] Split View: focus border not updating on click — clicking a
    terminal pane sent input correctly but the focus border remained on the
    previous pane; fixed by removing duplicate gesture controllers before
    adding new ones
  * [Improved] RDP: real disk space reported to Windows via shared folders —
    RDPDR backend now queries actual filesystem statistics using
    nix::sys::statvfs instead of returning hardcoded values; Windows Explorer
    and applications see correct total/available disk space; values normalized
    to 4096-byte allocation units; graceful fallback if statvfs call fails
  * [Dependencies] cc 1.2.61 → 1.2.62, filetime 0.2.27 → 0.2.28,
    quick-xml 0.39.3 → 0.39.4, tokio 1.52.2 → 1.52.3
  * [Dependencies] Added nix 0.31.2 (feature: fs) to rustconn-core for safe
    statvfs access

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 09 May 2026 12:00:00 +0200

rustconn (0.13.8-1) unstable; urgency=medium

  * [Fixed] Per-connection monitoring toggle not saving state — the
    "Enable Monitoring" switch always appeared enabled and did not persist
    the user's choice; now both ON and OFF states are stored as explicit
    overrides (enabled: Some(true) / Some(false)) (#125)
  * [Fixed] Flatpak: CLI tools not found by protocol detection —
    which_binary() now searches all get_cli_path_dirs() directories and
    passes the full resolved path to version detection
  * [Fixed] Hoop.dev CLI version not displayed — added parse_json_version()
    to extract the version field from JSON output; fixed get_version() to
    set extended PATH in Flatpak

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 08 May 2026 12:00:00 +0000

rustconn (0.13.7-1) unstable; urgency=medium

  * [Fixed] SSH: monitoring no longer triggers a second agent confirmation —
    monitoring waits up to 5s for ControlMaster socket, connects as slave
    only; falls back to own master if socket never appears (#125)
  * [Fixed] SSH: ControlMaster sockets cleaned up on application exit —
    all sockets gracefully closed via ssh -O exit on shutdown (#125)
  * [Fixed] SSH: control socket path shortened for macOS compatibility —
    ControlPath changed to rc-{host}-{port}-%r; uses /tmp on macOS to
    stay within 104-byte Unix socket path limit
  * [Fixed] Auto-reconnect: no longer loops infinitely on rapid crashes —
    if session crashes within 5s of starting, auto-reconnect is skipped
  * [Fixed] Flatpak: local shell PTY resize now propagates to host —
    VTE resize forwarded via flatpak-spawn stty to host-side PTY (#122)

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 08 May 2026 12:00:00 +0000

rustconn (0.13.6-1) unstable; urgency=medium

  * [Improved] Preferences: Monitoring moved to its own page with dedicated
    tab and utilities-system-monitor-symbolic icon (#125)
  * [Improved] CLI: machine-readable output (--format json|csv|table) for
    show, test, stats, group show commands; defaults to JSON when stdout is
    piped (non-TTY) (#132)
  * [Improved] i18n: MonitorMode and ExportFormat display_name() values now
    translatable via i18n() at call sites
  * [Improved] Security: intermediate password strings (RDP/VNC) now wrapped
    in zeroize::Zeroizing<String> so plaintext is overwritten on drop
  * [Improved] Reliability: host check no longer panics on runtime creation
    failure — proper Result propagation via HostCheckError::Io variant
  * [Fixed] SSH: single authentication prompt for connection + monitoring —
    VTE terminal uses ControlMaster=auto with shared ControlPath; monitoring
    reuses the same socket instead of opening a separate session (#125)
  * [Fixed] Repository hygiene: removed committed vim swap file; added *.swp,
    *.swo, *.po~ patterns to .gitignore

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 07 May 2026 12:00:00 +0300

rustconn (0.13.5-1) unstable; urgency=medium

  * Version bump to 0.13.5
  * Added Drag & Drop file paths into VTE terminals (#74)
  * Added Drag & Drop files to RDP clipboard via CLIPRDR (#74)
  * Added RDP "Reconnect on Resize" option for legacy servers
  * Fixed RDP dynamic resize without reconnect via Display Control Channel (#131)
  * Fixed SSH agent key selection not remembered in connection dialog (#125)

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 06 May 2026 12:00:00 +0200

rustconn (0.13.4-1) unstable; urgency=medium

  * [Added] RDP Autotype: send text as keystrokes bypassing clipboard
    restrictions — new "Type Clipboard" and "Type Text…" toolbar buttons
    in embedded RDP sessions; sends text character-by-character using
    TS_UNICODE_KEYBOARD_EVENT PDU which is keyboard-layout independent;
    solves scenarios where server-side paste is blocked by GPO, Citrix
    policy, UAC dialogs, or password fields that reject Ctrl+V;
    per-connection configurable timing: inter-character delay (5–200ms,
    default 20ms) and initial delay (0–5000ms, default 0ms); iterates by
    Unicode grapheme clusters so composed characters are sent as single
    units; only available for embedded IronRDP mode (#127)
  * [Added] KeePass custom entry path for secret variables — secret
    variables can now reference an existing entry in the KeePass database
    instead of the default RustConn/rustconn/var/{name} path; new
    "KeePass entry" field in Variables dialog when variable is marked as
    Secret and KeePass backend is active (#114)
  * [Fixed] RDP toolbar Copy/Paste buttons do nothing on Wayland (COSMIC,
    GNOME) — replaced drawing_area.display().clipboard() with
    root().native().display().clipboard() which uses the top-level window
    surface; Paste button now shows status feedback instead of silently
    swallowing errors; CLIPRDR client_capabilities now advertises
    USE_LONG_FORMAT_NAMES flag required by Windows Server 2016+; added
    tracing for all clipboard button operations (#126)
  * [Dependencies] unicode-segmentation 1.13.2 (new),
    tower-http 0.6.8 → 0.6.9

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 05 May 2026 18:00:00 +0200

rustconn (0.13.3-1) unstable; urgency=medium

  * Version bump to 0.13.3
  * Added RDP Security Layer / TLS Compatibility options (#124)
  * Improved GNOME HIG: application menu restructured, manager dialogs unified
  * Improved Tray menu i18n
  * Fixed SSH agent multiple authentication prompts for saved connections (#125)
  * Fixed false KeePassXc backend unavailable toast (#123)
  * Fixed Flatpak Local Shell no job control warnings (#122)

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 04 May 2026 18:00:00 +0200

rustconn (0.13.2-1) unstable; urgency=medium

  * [Fixed] Mouse scroll not working in terminal sessions —
    set_enable_fallback_scrolling was incorrectly disabled by Mouse passthrough
    setting; VTE handles mouse forwarding natively; now always enabled (#121)
  * [Fixed] Flatpak local shell provides only a sandboxed minimal shell —
    Local Shell now spawns host shell via flatpak-spawn --host (#122)
  * [Removed] Mouse passthrough setting from Terminal preferences —
    VTE handles mouse event forwarding automatically
  * [Added] Per-connection monitoring toggle in connection dialog (#106)

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 04 May 2026 12:00:00 +0200

rustconn (0.13.1-1) unstable; urgency=medium

  * [Fixed] Crash when typing in sidebar search field —
    SearchEngine::find_case_insensitive used raw byte-position iteration
    and direct byte slicing which panics on multi-byte UTF-8 characters
    (Cyrillic, CJK, emoji); same bug in fuzzy_score_case_insensitive and
    fuzzy_score_optimized prefix checks; fixed by iterating over valid
    char_indices() boundaries and using str::get() for safe slicing (#116)
  * [Fixed] Export/re-import loses folder hierarchy, icons, SSH settings,
    and smart folders — native .rcn export/import had four data-loss bugs:
    hierarchy flattened (replaced with topological sort), folder fields
    dropped (now copies all fields via update_group), smart folders not
    exported (added to NativeExport format v3), smart folder group
    references not remapped (now remapped during import); CLI updated (#118)
  * [Added] Automation section in group edit dialog — Expect Rules and
    Post-login Scripts configurable directly in Edit Group dialog; full
    rule editor with pattern/response fields, priority/timeout controls,
    Insert Variable popover, From Template menu, Pattern Tester; CLI:
    group edit --add-expect-rule, --clear-expect-rules,
    --add-post-login-script, --clear-post-login-scripts (#117)
  * [Improved] Connection dialog Automation tab unified with group dialog —
    same vertical layout, Insert Variable popover, template picker with
    protocol hints, removed scroll-in-scroll anti-pattern (#117)
  * [Documentation] Remmina Flatpak import troubleshooting — added
    instructions to User Guide for importing Remmina connections when
    both apps are Flatpaks (#120)

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 03 May 2026 12:00:00 +0000

rustconn (0.13.0-1) unstable; urgency=medium

  * Version bump to 0.13.0
  * [Fixed] External RDP tab shows only toolbar, content area empty —
    added force_external parameter so external sessions always render
    the informational StatusPage
  * [Fixed] Group edit: SSH settings toggle reopens confirmation dialog
    in a loop — added guard flag to prevent re-entry
  * [Fixed] Incomplete translations for Dynamic Folder strings —
    provided correct translations and removed fuzzy flags for all 16 languages
  * [Fixed] Bulk actions: Move to Group icon missing — replaced with
    standard folder-drag-accept-symbolic from Adwaita
  * [Fixed] External RDP (FreeRDP) fails on changed server certificate —
    added ignore_certificate field and Accept Certificate checkbox (#112)
  * [Added] Smart Folders in sidebar — dynamically groups connections
    based on tag, protocol, host pattern, and group filters (#111)
  * [Added] Group-level Expect rules and post-login scripts inheritance —
    connections inherit automation config from parent group chain (#110)
  * [Improved] Vault entry missing toast notification (#114)
  * [Improved] Test credential resolution button in connection dialog (#114)
  * [Improved] Multi-language SSH password prompt detection (#114)
  * [Improved] GNOME HIG: sidebar toolbar decluttered — removed
    Import/Export buttons from bottom toolbar

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 02 May 2026 14:00:00 +0200

rustconn (0.12.9-1) unstable; urgency=medium

  * [Fixed] Export group exports entire tree instead of selected subtree —
    when exporting a specific group via the Export dialog's group filter,
    all groups were included in the output file even though connections
    were correctly filtered; now both connections and groups are filtered
    to the selected group and its descendants
  * [Added] Snippet variable substitution from Global Variables — snippets
    containing ${VARIABLE} placeholders now automatically resolve values
    from Global Variables before execution; if all variables are resolved,
    the snippet executes immediately without showing the input dialog
  * [Added] Dynamic Folders — new DynamicFolderConfig on ConnectionGroup
    allows generating connections from an external script; supports SSH,
    RDP, VNC, SPICE, Telnet, and MOSH protocols; connections are read-only
    with stable deterministic UUIDs across refreshes

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 01 May 2026 12:00:00 +0000

rustconn (0.12.8-1) unstable; urgency=medium

  * [Added] Generic async cache Cached<T> — new rustconn-core/src/cache.rs
    module providing a thread-safe, TTL-based cache with automatic refresh
    via the LoadCacheObject trait; uses double-checked locking with
    tokio::sync::RwLock for concurrent read access; supports incremental
    updates, explicit invalidation, and configurable TTL (default 60s)
  * [Added] Busy-state indicator BusyStack — new rustconn-core/src/busy.rs
    module providing a thread-safe RAII counter for tracking in-flight
    operations; callback fires on 0→1 (busy) and 1→0 (idle) transitions;
    nested operations handled correctly without extra callbacks
  * [Added] Extended ProtocolCapabilities — added 9 new capability flags:
    multi_monitor, usb_redirection, port_forwarding, wayland_forwarding,
    x11_forwarding, session_recording, remote_monitoring, command_snippets,
    wake_on_lan; enables UI to adapt controls per-protocol
  * [Added] Connection fallback chain ConnectionFallback<T> — generic
    mechanism for trying multiple connection strategies in priority order
  * [Added] Virt-viewer .vv file open support — open SPICE/VNC connections
    from libvirt, Proxmox VE, oVirt directly from the file manager
  * [Added] Connection failure toast with connection name
  * [Dependencies] Teleport CLI 18.7.5 → 18.7.6 (security patch)

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 01 May 2026 12:00:00 +0000

rustconn (0.12.7-1) unstable; urgency=medium

  * [Fixed] Group credentials: Variable source shows password field
    instead of variable selector — now shows dropdown populated with
    secret global variables (#109)
  * [Fixed] Group credentials: saving Variable source stored empty
    string instead of actual variable name
  * [Improved] GNOME HIG: accessible labels, menu reorganization,
    Keyboard Shortcuts entry added to app menu

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 30 Apr 2026 12:00:00 +0200

rustconn (0.12.6-1) unstable; urgency=medium

  * [Fixed] Expect script variables not substituted — ${VAR} references
    in Expect rule responses were sent as literal text instead of being
    resolved; now uses VariableManager to substitute global variables
    before creating automation triggers (#105)
  * [Added] SSH verbose mode for connection debugging — new Verbose
    toggle in SSH connection settings adds -v flag to the SSH command,
    showing detailed debug output to help diagnose connection issues (#106)

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 29 Apr 2026 12:00:00 +0200

rustconn (0.12.5-1) unstable; urgency=medium

  * [Fixed] Settings dialog overflows after Hoop.dev install — hoop
    version outputs JSON; added dedicated parser that extracts only
    the version field
  * [Fixed] kubectl version not shown in settings — kubectl version
    --client --short fails on kubectl >= 1.28; switched to kubectl
    version --client and parse Client Version: vX.Y.Z
  * [Fixed] Tray icon SIGSEGV on restart — connect_shutdown did not
    drop the TrayManager; now explicitly drops tray manager in shutdown
    handler before flushing persistence
  * [Fixed] Teleport CLI download URL 404 — pinned version 18.7.6 did
    not exist on the CDN; corrected to 18.7.5
  * [Dependencies] Hoop.dev CLI 1.56.1 → 1.59.3
  * [Dependencies] Teleport CLI 18.7.6 → 18.7.5 (URL fix)

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 29 Apr 2026 12:00:00 +0000

rustconn (0.12.4-1) unstable; urgency=medium

  * [Cleaned] Removed dead mosh.rs dialog module — MOSH settings already
    integrated into SSH tab via ssh::create_ssh_options()
  * [Cleaned] Removed legacy connect_password_load_button wrapper — all
    callers use connect_password_load_button_with_groups directly
  * [Cleaned] Removed unused add_available_file_row from Cloud Sync settings
  * [Dependencies] rpassword 7.4.0 → 7.5.0, rustls 0.23.39 → 0.23.40

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 28 Apr 2026 18:00:00 +0200

rustconn (0.12.3-1) unstable; urgency=medium

  * [Fixed] Sync toast shows raw placeholders instead of values —
    i18n_f() only supports {} placeholders; changed both sync message
    strings and all 16 translations to use {} format
  * [Accessibility] Added accessible labels to 24 icon-only buttons
    across 15 files for screen reader support
  * [Dependencies] Teleport CLI 18.7.4 → 18.7.6
  * [Dependencies] clap_complete 4.6.2 → 4.6.3, gio 0.22.5 → 0.22.6,
    glib 0.22.5 → 0.22.6, gtk4 0.11.2 → 0.11.3, pango 0.22.4 → 0.22.6,
    zbus 5.14.0 → 5.15.0, zvariant 5.10.0 → 5.10.1

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 28 Apr 2026 12:00:00 +0200

rustconn (0.12.2-1) unstable; urgency=medium

  * [Fixed] Flatpak SFTP ssh-add fails with missing askpass — strips
    SSH_ASKPASS from the environment for bare ssh-add calls (#102)
  * [Fixed] Blocking operations on GTK main thread — added 5s timeouts
    to has_secret_backend() and refresh_secret_backend_cache()
  * [Fixed] Missing timeouts on blocking async operations — added
    timeouts to flush_persistence (5s), resolve_with_hierarchy (30s),
    auto_unlock (30s), and vault store/retrieve/delete (10s)
  * [Translations] All 16 languages aligned to 1697 strings; fixed
    Italian PO syntax error

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 26 Apr 2026 12:00:00 +0200

rustconn (0.12.1-1) unstable; urgency=medium

  * [Fixed] Split view content disappearing on panel focus switch —
    removed switch_to_tab() call; focus handled via set_focused_pane()
    and grab_focus() (#101)
  * [Fixed] cargo-deny CI failure — removed deprecated unlicensed and
    copyleft keys from deny.toml [licenses] section
  * [Fixed] cargo-audit CI failure — added RUSTSEC-2023-0071 (rsa Marvin
    Attack) to [advisories].ignore in deny.toml; transitive dependency
    via ironrdp/sspi and spice-client with no upstream fix available
  * [Dependencies] Bitwarden CLI 2026.3.0 → 2026.4.1 (fixes supply chain
    attack in 2026.4.0), kubectl 1.35.4 → 1.36.0

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 25 Apr 2026 12:00:00 +0000

rustconn (0.12.0-1) unstable; urgency=medium

  * [Added] Cloud Sync — synchronize connections via shared cloud directory
    (Google Drive, Syncthing, Nextcloud, Dropbox, USB)
  * [Added] Group Sync — per-group .rcn files with Master/Import access model
  * [Added] Simple Sync — single-file bidirectional sync with UUID-based merge
  * [Added] SSH Key Inheritance — group-level SSH settings inherited by children
  * [Added] Credential Resolution UX — interactive dialogs for missing variables
  * [Added] CLI sync commands: sync status, list, export, import, now
  * [Added] Tab Overview — grid view of all open tabs via Ctrl+Shift+O
  * [Added] Tab Switcher in Command Palette — % prefix for fuzzy tab search
  * [Added] Tab Pinning — right-click tab → Pin Tab
  * [Added] Custom terminal themes — create/edit/delete color themes
  * [Added] Group Jump Host dropdown with SSH connection selection
  * [Added] Accessible labels for icon-only buttons
  * [Added] cargo-deny + cargo-audit in CI
  * [Added] Document dirty badge — CSS dot indicator
  * [Fixed] System tray SIGSEGV and empty menu — moved D-Bus updates to
    dedicated background thread, deferred TrayManager creation off GTK
    main thread, added Flatpak disable_dbus_name workaround
  * [Fixed] Tab Overview SIGSEGV with split-view tabs
  * [Fixed] Terminal theme reset when Settings dialog is closed
  * [Fixed] Pango assertion failure on zero font size
  * [Fixed] Highlight rules show color instead of hover-only underline

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 25 Apr 2026 12:00:00 +0300

rustconn (0.11.7-1) unstable; urgency=medium

  * [Fixed] Monitoring bar broken after scrollbar addition — wrapped the
    horizontal terminal+scrollbar row in a vertical outer container so the
    monitoring bar is correctly appended underneath
  * [Docs] User Guide restructured into 13 logically grouped sections;
    CLI Reference and Zero Trust Providers extracted to dedicated documents

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 23 Apr 2026 12:00:00 +0000

rustconn (0.11.6-1) unstable; urgency=medium

  * [Added] Terminal scrollbar — VTE terminals now display a vertical
    scrollbar; can be toggled in Settings → Terminal → Scrolling (#95)
  * [Added] "Execute Snippet…" in terminal right-click context menu (#95)
  * [Fixed] Sidebar status stays gray after reconnect — now shows
    "connecting" immediately when Reconnect is clicked (#96)
  * [Fixed] Context menu intermittently fails to open on right-click —
    reverted popover autohide to avoid GTK4 pointer grab conflict (#87)

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 23 Apr 2026 12:00:00 +0200

rustconn (0.11.5-1) unstable; urgency=medium

  * [Added] Simplified Chinese (zh-cn) translation — complete translation
    of all 1573 UI strings; contributed by GaaChun (PR #94)
  * [Added] User Guide: libvirt NSS hostname resolution troubleshooting
    section for VM connections via RDP/VNC (#91)
  * [Dependencies] picky-asn1-der 0.5.6, rustls-webpki 0.103.13,
    winnow 1.0.2, kubectl 1.35.4

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 22 Apr 2026 12:00:00 +0200

rustconn (0.11.4-1) unstable; urgency=medium

  * [Fixed] Sidebar flashes red during SSH connection — connecting via
    SSH (and other protocols with port check) briefly showed "failed"
    (red) status before switching to "connected" (green); introduced
    ConnectionStartResult enum to distinguish async port check in
    progress (Pending) from real failures (Failed); the sidebar now
    stays yellow ("connecting") until the port check completes
  * [Fixed] Context menu stays open when dialog opens — the sidebar
    context menu remained visible when opening a dialog via keyboard
    shortcut or toolbar button; switched popover to autohide (#93)
  * [Fixed] Sidebar stays "connecting" after cancelling password
    dialog — closing the VNC or RDP password prompt without entering
    credentials left the sidebar status stuck on yellow
  * [Fixed] VNC/RDP with "None" password source prompts immediately —
    first connection attempt now uses an empty password; the password
    dialog is only shown on retry if authentication fails
  * [Updated] Teleport CLI 18.7.3 → 18.7.4
  * [Updated] 1Password CLI 2.33.1 → 2.34.0

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 21 Apr 2026 18:00:00 +0200

rustconn (0.11.3-1) unstable; urgency=medium

  * [Added] CLI: --jump-host flag for add and update — set a jump host
    (SSH bastion) when creating or updating SSH, SFTP, and RDP connections
    via CLI; accepts connection name or UUID; validates that the referenced
    connection exists and prevents self-referencing
  * [Fixed] Flatpak: kubectl and Hoop.dev missing from Settings Clients
    tab and PATH — added Container Orchestration section, Hoop.dev to
    Zero Trust Clients, registered both in get_cli_path_dirs()

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 20 Apr 2026 18:00:00 +0200

rustconn (0.11.2-1) unstable; urgency=medium

  * [Fixed] Reconnect reuses existing tab for all VTE protocols — SSH,
    Telnet, Serial, Kubernetes, ZeroTrust, MOSH; tab position, group,
    and split view state fully preserved (#89)
  * [Fixed] RDP port check skipped with jump host — direct TCP probe
    always timed out for jump-host connections
  * [Fixed] Hoop.dev CLI download — switched to versioned URL (HTTP 403)
  * [Fixed] Azure/gcloud/OCI CLI wrapper test in Flatpak — Read-only
    file system crash during pip install verification
  * [Fixed] Flatpak SFTP always uses mc — xdg-open unreachable in sandbox
  * [Improved] Reconnect banner consistent across all protocols — RDP,
    VNC, SPICE now show bottom banner like SSH/Telnet
  * [Improved] Sidebar width tuned for HiDPI — 360px→320px default,
    old saved widths reset on upgrade
  * [Added] SSH Jump Host for RDP via ssh -L tunnel (#90)
  * [Added] Tab context menu: Close Others/Left/Right/All/Ungrouped
  * [Added] CLI: all 10 protocols and 11 Zero Trust providers
  * [Documentation] Complete CLI reference in User Guide
  * [Dependencies] open 5.3.4, openssl 0.10.78, typenum 1.20.0,
    Hoop.dev CLI 1.56.1

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 20 Apr 2026 12:00:00 +0200

rustconn (0.11.1-1) unstable; urgency=medium

  * [Fixed] Reconnect preserves tab position — new tab opens at the
    same position instead of appending to the end (#89)
  * [Fixed] Context menu handoff between items — right-clicking a
    second item while a menu is open now works correctly (#87)
  * [Fixed] Stale highlight on right-click — residual selection
    highlights no longer persist on previously right-clicked rows
  * [Fixed] Context menu requires single right-click — switching
    between items now works with one click instead of two
  * [Improved] Context menu layout follows GNOME HIG — items reordered
    to match GNOME Files conventions (primary action at top, properties
    before delete at bottom)
  * [Added] SSH Keep-Alive settings — dedicated spin rows for
    ServerAliveInterval and ServerAliveCountMax (#88)

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 19 Apr 2026 00:00:00 +0000

rustconn (0.11.0-1) unstable; urgency=medium

  * [Added] General tab migrated to adw:: widgets — PreferencesGroup,
    EntryRow, SpinRow, ComboRow, PasswordEntryRow; 30-element tuple
    replaced with BasicTabWidgets struct (TASK-004)
  * [Added] Legacy XOR encryption migration warning — toast notification
    shows count of migrated credentials; XOR removed in v0.12 (TASK-006)
  * [Added] State access helpers — with_state(), try_with_state(),
    with_state_mut(), try_with_state_mut() (TASK-008)
  * [Improved] RDP connection state structured — RdpConnectionContext
    struct replaces 13-parameter function signature (TASK-007)
  * [Security] Automation task validation hardened — property tests for
    shell metacharacters; sensitive env vars cleared before task
    execution (TASK-005)
  * [Fixed] Split view tab colors preserved across Settings (TASK-022)
  * [Fixed] Group Operations mode — compact pill icon buttons with
    animated Revealer instead of text buttons that broke sidebar layout
  * [Fixed] Split view context menu Copy/Paste/Select All now works —
    action group moved from TabView container to VTE terminal widget
  * [Fixed] Eliminated gdk_clipboard_write_async assertion — replaced all
    copy_clipboard_format calls with text_selected + clipboard().set_text
  * [Security] Lazy Bitwarden credential decryption — only when
    Bitwarden is the preferred backend
  * [Dependencies] libbz2-rs-sys 0.2.3, rand 0.8.6, rtoolbox 0.0.5

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 18 Apr 2026 23:00:00 +0200

rustconn (0.10.22-1) unstable; urgency=medium

  * [Fixed] Terminal context menu Copy/Paste now works — use VTE native
    context menu API instead of custom GestureClick popover (#84)
  * [Fixed] No more gdk_clipboard_write_async assertion on Copy
  * [Fixed] Blank menus on X11 (MATE, XFCE) — auto-detect X11 and fall
    back to Cairo GSK renderer via process re-exec (#85)
  * [Improved] Context menu labels localized (Copy, Paste, Select All)
  * [Dependencies] pxfm 0.1.28 → 0.1.29, tokio 1.52.0 → 1.52.1,
    uuid 1.23.0 → 1.23.1

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 17 Apr 2026 22:00:00 +0200

rustconn (0.10.21-1) unstable; urgency=medium

  * [Security] Machine key encryption hardened — removed predictable
    hostname+username fallback; /etc/machine-id uses HKDF-SHA256;
    .machine-key created with 0600 permissions (#83)
  * [Fixed] Groups expand/collapse on double-click entire row (#83)
  * [Fixed] Ctrl+K no longer hijacks terminal — only Ctrl+F for search (#83)
  * [Fixed] Right-click context menu works on all SSH profiles (#83)
  * [Fixed] Filter bar opens below search box, not above (#83)
  * [Improved] Sidebar accessible labels localized for screen readers

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 15 Apr 2026 22:00:00 +0200

rustconn (0.10.20-1) unstable; urgency=medium

  * Tab group chooser dialog with existing group selection
  * Close All in Group context menu action
  * Group name shown as tab title prefix instead of color indicator
  * Group name in tab tooltip
  * Tab group and split view colors no longer conflict
  * Welcome screen icon fix for Remote host monitoring
  * Updated FreeRDP 3.24.1 → 3.24.2 (security fixes)
  * Updated VTE 0.80.0 → 0.80.3

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 14 Apr 2026 22:00:00 +0200

rustconn (0.10.18-1) unstable; urgency=medium

  * [Added] Terminal font zoom — Ctrl+Scroll wheel, Ctrl+Plus/Minus, and
    Ctrl+0 to reset; uses VTE native font_scale for per-session zoom (#77)
  * [Added] Copy on select — optional X11-style auto-copy; selected text is
    automatically copied to clipboard; enable in Settings → Terminal (#78)

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 13 Apr 2026 12:00:00 +0000

rustconn (0.10.17-1) unstable; urgency=medium

  * [Fixed] clear command not working in Flatpak SSH sessions — Flatpak
    sandbox inherits TERM=dumb from host; now forces TERM=xterm-256color
    for all remote commands in Flatpak (#25)
  * [Fixed] Sidebar scroll position lost after editing/moving connections —
    restore_state() idle callbacks raced; now runs expansion synchronously
    then restores scroll in a chained callback
  * [Fixed] Sorting collapsed all expanded groups — sort_connections() and
    sort_recent() now preserve expanded group state

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 12 Apr 2026 12:00:00 +0000

rustconn (0.10.16-1) unstable; urgency=medium

  * [Fixed] Sidebar context menu actions still not working — PopoverMenu
    cannot resolve win.* actions inside ListView/TreeExpander; replaced with
    plain Popover + Button widgets that directly call activate_action (#75)

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 10 Apr 2026 20:00:00 +0000

rustconn (0.10.15-1) unstable; urgency=medium

  * [Fixed] clear command not working in Flatpak — added ANSI escape
    sequence wrapper to all three Flatpak manifests (#25)
  * [Fixed] Keyboard shortcuts dialog showed wrong bindings — corrected
    19 discrepancies between shortcuts help dialog and actual GTK accelerators
  * [Fixed] Shortcuts dialog missing entries — added 13 missing shortcuts
  * [Improved] FreeRDP updated to 3.24.2 (CVE fixes for client-side
    vulnerabilities)
  * [Documentation] Keyboard shortcuts fully synchronized in User Guide
  * [Documentation] Terminal clear troubleshooting section added to User Guide

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 10 Apr 2026 12:00:00 +0000

rustconn (0.10.13-1) unstable; urgency=medium

  * Fixed SSH auto-reconnect infinite loop on authentication failures
  * Fixed duplicate child-exited signal handlers for SSH and Telnet sessions
  * FreeRDP 3.24.0 → 3.24.1 (security fix), Boundary CLI 0.21.1 → 0.21.2

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 08 Apr 2026 12:00:00 +0000

rustconn (0.10.12-1) unstable; urgency=medium

  * [Security] VNC password stored as SecretString — zeroized on drop,
    protected from accidental logging
  * [Security] VNC pixel buffer max resolution guard — clamp to 16384x16384
    preventing OOM from malicious VNC server
  * [Improved] RDP 4K frame conversion zero-copy — convert_to_bgra() returns
    Cow<[u8]> instead of Vec<u8>, avoiding 33 MB clone per frame
  * [Improved] Sidebar search highlight regex cached — compiled once per
    query change instead of once per visible item per keystroke
  * [Improved] Log sanitization custom patterns pre-compiled at construction
    time instead of recompiling on every sanitize_output() call
  * [Improved] Log sanitization redundant to_lowercase() removed
  * [Dead code] Removed wayland_surface.rs (~1050 lines)
  * [Dead code] Removed TracingOutput::OpenTelemetry variant
  * [Dead code] Removed RDPDR FileLock struct and notify_directory_change() stub
  * [Dead code] Removed commented-out code (set_allow_bold, --full-screen)

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 07 Apr 2026 12:00:00 +0000

rustconn (0.10.11-1) unstable; urgency=medium

  * RDP Mouse Jiggler — prevents idle disconnect with periodic mouse movements
  * Connect All in Folder — open all connections in a group at once
  * Copy Username / Copy Password from sidebar context menu
  * Host Online Check — TCP probe with auto-connect when host comes online
  * WoL + Auto-Connect — WoL now polls and auto-connects when host is ready

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 04 Apr 2026 18:00:00 +0000

rustconn (0.10.10-1) unstable; urgency=medium

  * Flatpak: removed extra sandbox permissions rejected by Flathub lint
    (home/.hoop, xdg-run/gnupg, bitwarden data, xdg-run/ssh-agent);
    users can add them manually via flatpak override
  * User Guide: added Flatpak Sandbox Overrides section

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 04 Apr 2026 12:00:00 +0000

rustconn (0.10.9-1) unstable; urgency=medium

  * See CHANGELOG.md for full release notes
  * Corrected: v0.9.11 incorrectly stated Flatpak uses --device=serial;
    the actual permission is --device=all (required for serial port access)

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 02 Apr 2026 12:00:00 +0000

rustconn (0.10.8-1) unstable; urgency=medium

  * See CHANGELOG.md for full release notes

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 27 Mar 2026 12:00:00 +0000

rustconn (0.10.7-1) unstable; urgency=medium

  * See CHANGELOG.md for full release notes

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 26 Mar 2026 12:00:00 +0000

rustconn (0.10.6-1) unstable; urgency=medium

  * Fixed Passbolt CLI integration broken with CLI 0.4.2 — serde
    deserialization failed on lowercase JSON fields returned by
    passbolt CLI 0.4.2; added rename attributes for all underscore-prefixed
    fields; made id/name optional in resource detail (#69)
  * Fixed blurry/artifact RDP image on HiDPI displays — set device scale
    on Cairo surface for 1:1 pixel rendering; adaptive filter selection
  * Fixed 1Password JSON parse errors silently ignored — now logs warning
  * CLI downloads: 1Password CLI 2.33.0→2.33.1
  * Dependencies: ipconfig 0.3.2→0.3.4, libredox 0.1.14→0.1.15,
    proptest 1.10.0→1.11.0

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 24 Mar 2026 12:00:00 +0200

rustconn (0.10.5-1) unstable; urgency=medium

  * Fixed KeePassXC CLI integration — database password not passed to
    keepassxc-cli in vault write/rename/delete/copy operations (#68)
  * Fixed KeePassXC CLI silent error swallowing — added tracing warnings
  * Added -q flag to all keepassxc-cli show commands
  * Fixed GTK warnings on startup — suppressed deprecated
    gtk-application-prefer-dark-theme on KDE/XFCE; removed unsupported
    @media (prefers-reduced-motion) CSS media query
  * CI: replaced deprecated flatpak-builder@master (Node.js 20) with v6
  * Dependencies: deflate64 0.1.12, toml 1.1.0, zip 8.4.0

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 24 Mar 2026 12:00:00 +0200

rustconn (0.10.4-1) unstable; urgency=medium

  * Flatpak: Zero Trust CLIs crash on read-only filesystem fixed
  * Flatpak manifests: added missing FreeRDP and Waypipe modules
  * i18n: wrapped 5 untranslated UI strings, translated for 15 languages
  * Snap license corrected: GPL-3.0+ to GPL-3.0-or-later
  * ARM64 release builds added (deb, rpm, appimage)
  * Removed duplicate changelog entries in packaging files
  * Dependencies: moka 0.12.15, yuv 0.8.12
  * CLI downloads: Tailscale 1.94.2 to 1.96.2
  * Libvirt daemon import via virsh (#63)

  * Fixed MOSH connections not dispatched — added start_mosh_connection()
  * Fixed auto-recording not triggered from session_recording_enabled toggle
  * Fixed highlight rules not applied to terminal after connection
  * Fixed script command visible on recording start — delayed erase
  * Fixed double exit and UI freeze on recording stop — Ctrl+D + async SCP
  * Fixed lost commands in recording playback — strip_script_command_echo()
  * Fixed .rdp file association — MIME type XML for all packaging formats
  * Fixed sidebar stretching with long connection names — ellipsize
  * Fixed picocom not detected in Flatpak — which_binary() fallback
  * Fixed RDP error message when FreeRDP not installed
  * Fixed IronRDP debug log spam — filtered to warn level
  * Improved CSV import delimiter auto-detection
  * Improved script credentials test button with 30s timeout and feedback
  * Added config sync documentation to User Guide
  * Dependencies: shell-words 1.x (rustconn crate), aws-lc-rs 1.16.2, tar 0.4.45

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 20 Mar 2026 12:00:00 +0200

rustconn (0.10.1-1) unstable; urgency=medium

  * MOSH protocol — predict mode, SSH port, UDP port range, server binary
  * CSV import/export — RFC 4180, auto column mapping, delimiter options
  * Session recording — scriptreplay-compatible format, sanitization, REC indicator
  * Text highlighting rules — regex patterns, per-connection + global, VTE integration
  * Ad-hoc broadcast — send keystrokes to multiple terminals simultaneously
  * Smart Folders — dynamic connection grouping by protocol/tags/host/group
  * Script credentials — PasswordSource::Script with shell-words and 30s timeout
  * Per-connection terminal theming — background/foreground/cursor color overrides
  * 15 language translations for all new v0.10.1 UI strings
  * New dependencies: csv 1.x, glob 0.3, shell-words 1.x
  * Fixed Flatpak SSH key paths stale after rebuild — stable copy with fallback
  * Fixed SFTP ssh-add stale portal key path — resolve before use
  * Fixed SFTP mc opens when ssh-add fails — abort with toast error
  * Fixed script command format for modern util-linux (--log-out/--log-timing)
  * Fixed remote SSH recording using local paths
  * Fixed recording playback showing script header
  * Fixed script invocation visible in terminal
  * Fixed SCP host key verification prompts in stop_recording
  * Fixed RDP sidebar status not clearing after disconnect
  * Fixed PlaybackToolbar GtkSearchEntry finalization warning
  * Fixed cargo/config deprecation warning in Flatpak build
  * Flatpak local manifest runtime: GNOME 50beta to 50
  * Dependencies: euclid 0.22.14, toml 1.0.7, zerocopy 0.8.47, zip 8.3

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 18 Mar 2026 12:00:00 +0200

rustconn (0.10.0-1) unstable; urgency=medium

  * Note: Flatpak release will follow after March 18, 2026, when
    GNOME 50 runtime is published on Flathub
  * RDP file import in GUI — .rdp files can now be imported via Import dialog
  * CLI import: 4 new formats — rdp, rdm, virt-viewer, libvirt
  * Split view for Telnet, Serial, Kubernetes — all VTE-based protocols
  * Statistics: Most Used connections and Protocol Distribution with progress bars
  * 5 new customizable keybindings (31 total): Toggle Sidebar, Connection
    History, Statistics, Password Generator, Wake On LAN
  * Secret backend default changed from KeePassXc to LibSecret
  * RDP file association — double-click .rdp files to open and connect
  * FreeRDP 3.24.0 bundled in Flatpak — external RDP works out of the box
  * sdl-freerdp3 and unversioned FreeRDP binary detection
  * GTK4/libadwaita/VTE crate upgrade: gtk4 0.11, libadwaita 0.9,
    vte4 0.10, gdk4-wayland 0.11 — unlocks GNOME 48–50 widget APIs
  * MSRV bumped to 1.92 across all crates, CI, and packaging
  * Flatpak runtime bumped to GNOME 50 with VTE 0.80
  * AdwSpinner, AdwShortcutsDialog, AdwSwitchRow, AdwWrapBox migrations (cfg-gated)
  * CSS prefers-reduced-motion support for accessibility
  * Tiered distro feature flags in OBS packaging: adw-1-8 for
    Tumbleweed/Slowroll/Fedora 43+, adw-1-6 for Leap 16.0/Fedora 42
  * Fixed default window size too small on first start
  * Fixed RDP gateway ignored in embedded mode — auto-fallback to FreeRDP
  * Fixed external RDP sidebar icon stays green after tab close
  * Fixed SSH jump host broken in Flatpak
  * Fixed mc wrapper not found in Flatpak on openSUSE
  * Fixed ZeroTrust and Kubernetes connections broken in Flatpak —
    CLI tools detected and executed via flatpak-spawn --host;
    cloud CLI config dirs mounted into sandbox
  * Fixed split view text selection broken by GestureClick handler
  * Fixed untranslated protocol display names across all 15 languages
  * Codebase cleanup: removed unused CSS classes, consolidated futures-util,
    fixed metainfo.xml, removed dead code

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 16 Mar 2026 12:00:00 +0200

rustconn (0.9.15-1) unstable; urgency=medium

  * Added "Show Local Cursor" option for embedded RDP, VNC, and SPICE
    viewers — hides local OS cursor to eliminate double cursor effect;
    enabled by default for backward compatibility (#51)
  * Fixed VNC session ignores Display Mode setting — Fullscreen and
    External modes now work correctly (#50)
  * Fixed SSH port forwarding via UI broken — window/protocols.rs built
    SSH args manually, skipping port_forwards, X11 forwarding, compression,
    and ControlPersist from SshConfig; refactored to delegate to
    SshConfig::build_command_args() (#49)
  * Fixed SSH custom options -o prefix not stripped — parse_custom_options()
    now silently strips the -o prefix from pasted CLI snippets (#49)
  * Fixed SSH custom options placeholder misleading — updated dialog
    placeholder and subtitle to clarify correct Key=Value format (#49)

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 11 Mar 2026 18:00:00 +0200

rustconn (0.9.14-1) unstable; urgency=medium

  * Fixed SSH connection fails in Flatpak on KDE — host SSH_ASKPASS
    environment variable (e.g. ksshaskpass) stripped from VTE child
    environment since RustConn uses native VTE password injection (#48)
  * Fixed header bar buttons clipped when sidebar + monitoring enabled —
    added ellipsize to variable-length labels and overflow hidden on
    monitoring bar container (#47)
  * Dependencies: tokio 1.49→1.50, uuid 1.21→1.22, regex 1.11→1.12,
    proptest 1.9→1.10, tempfile 3.23→3.26, zip 8.1→8.2,
    criterion 0.8.1→0.8.2, rpassword 7.3→7.4

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 11 Mar 2026 12:00:00 +0200

rustconn (0.9.13-1) unstable; urgency=medium

  * Fixed RDP handshake timeout on heavily loaded servers — Phase 3
    (TLS upgrade + NLA + connect_finalize) now wrapped in tokio timeout
    with 2× configured timeout (minimum 60s)
  * Fixed ARM64 binary download mismatch — download_url_for_arch() no longer
    falls back to x86_64 URL; get_available_components() filters by arch
  * Added RDP Quick Actions menu — dropdown on embedded RDP toolbar with
    6 Windows admin shortcuts (Task Manager, Settings, PowerShell, CMD,
    Event Viewer, Services) via scancode key sequences

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 09 Mar 2026 12:00:00 +0200

rustconn (0.9.12-1) unstable; urgency=medium

  * Security: Removed sshpass dependency; SSH password auth now uses native
    VTE injection and SSH_ASKPASS mechanism
  * Security: Bitwarden master password zeroized on drop (Zeroizing<String>)
  * Security: SSH monitoring askpass script cleaned up automatically via RAII
  * Changed: SPICE embedded client enabled by default with remote-viewer fallback
  * Improved: Extracted vault operations from state.rs (~979 lines)
  * Improved: Extracted edit/terminal/split-view actions from window/mod.rs
    (~1671 lines total)
  * Removed: sshpass from all packaging manifests

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 08 Mar 2026 12:00:00 +0200

rustconn (0.9.11-1) unstable; urgency=medium

  * Security: Bitwarden session key uses SecretString with zeroization
  * Security: Config files written with 0600 permissions, config dir 0700
  * Security: SSH monitoring uses StrictHostKeyChecking=accept-new
  * Security: Session log sanitization active by default
  * Security: Flatpak device permissions scoped to --device=serial
  * Security: Monitoring password uses SecretString with zeroization
  * Security: RDP TLS certificate policy documented with tracing::warn
  * Fixed encrypted document format ambiguity with V2 magic header RCDB_EN2
  * Added monitoring: remote host private IP with IPv4/IPv6 tooltip
  * Added monitoring: live uptime counter updates on every polling tick
  * Added monitoring: stopped indication with warning icon and dimmed bar
  * Added monitoring: all mount points in disk tooltip (snap/tmpfs filtered)
  * Removed dead read_import_file_async from import traits

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 07 Mar 2026 12:00:00 +0200

rustconn (0.9.10-1) unstable; urgency=medium

  * Fixed Remmina import in Flatpak — now checks host path
    ~/.local/share/remmina/ (#44)
  * Fixed connection dialog Basic tab clipped by nested ScrolledWindow
  * Fixed missing minimum sizes on Import, Export, and Shortcuts dialogs
  * Connection dialog default height increased from 500→670px
  * Dependencies: serde_yaml_ng 0.9→0.10, cfg-expr 0.20.6→0.20.7,
    inotify 0.11.0→0.11.1, socket2 0.6.2→0.6.3, toml 1.0.4→1.0.6
  * CLI downloads: Teleport 18.7.1→18.7.2

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 07 Mar 2026 12:00:00 +0200

rustconn (0.9.9-1) unstable; urgency=medium

  * Fixed sshpass not installed in Flatpak (#42)
  * Fixed jump host connections fail port check — skipped when jump_host_id
    or proxy_jump is configured (#41)
  * Fixed jump host dropdown hard to use — added host address to labels
    and enabled search filtering
  * Fixed jump host monitoring fails — SSH commands now include -J jump
    host chain for metrics collection through bastion hosts (#41)
  * Fixed jump host false positive connection status — SSH status detection
    checks terminal text for failure patterns before marking connected (#41)
  * Dependencies: Bitwarden CLI 2026.1.0→2026.2.0, uuid 1.21.0→1.22.0,
    winnow 0.7.14→0.7.15

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 06 Mar 2026 12:00:00 +0200

rustconn (0.9.8-1) unstable; urgency=medium

  * Security: RDP password no longer exposed on command line (uses /from-stdin)
  * Fixed SSH connection status not turning green (VTE cursor axis + async port check)
  * Fixed automation cursor tracking, RDP keyboard duplication, username placeholder
  * Added protocol dialog improvements for SSH, RDP, VNC, SPICE, Serial, K8s, Telnet, Zero Trust
  * Added SFTP mc split view, context menu "New Connection", granular logging options
  * Connection dialog and embedded RDP decomposed into focused submodules

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 05 Mar 2026 12:00:00 +0200

rustconn (0.9.7-1) unstable; urgency=medium

  * Connection group not saved — dialog used separate Rc for groups_data
    in save closure, so selected subgroup was always lost on save
  * Secret variable values lost after settings reopen — values stored in
    vault were never restored when reopening Variables dialog or
    substituting ${VAR} in connections; added resolve_global_variables()
  * Crash on session reconnect — close_tab held immutable borrow on
    sessions while close_page synchronously fired signal handler needing
    mutable borrow; separated borrow from close call (#39)
  * Bitwarden credential lookup speed — removed per-retrieve bw sync and
    added 120s verification cache for bw status; vault syncs once on
    unlock, making reconnect and batch operations significantly faster

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 04 Mar 2026 12:00:00 +0200

rustconn (0.9.6-1) unstable; urgency=medium

  * Bitwarden Flatpak: build_command falls back to global session store (#28)
  * Bitwarden Settings auto-unlock uses resolved bw CLI path (#28)
  * Connection dialog credential download uses generate_store_key (UUID-based)
  * Vault credential resolve for non-KeePass backends via dispatch_vault_op
  * Inherit condition no longer blocked by kdbx_enabled for Bitwarden/1Password
  * Group password load dispatches to configured default secret backend
  * SSH known_hosts persists in Flatpak via writable UserKnownHostsFile path
  * Duplicate reconnect banner prevented via per-session tracking
  * SSH dialog hides key fields for Keyboard Interactive auth method

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 02 Mar 2026 12:00:00 +0200

rustconn (0.9.5-1) unstable; urgency=medium

  * SSH/Telnet pre-connect port check — fail fast with retry toast
  * Vault credential lifecycle — orphaned cleanup, paste duplication,
    group rename/move migrates KeePass entries
  * Consistent credential keys across all secret backends
  * SecretManager cache TTL — entries expire after 5 minutes
  * Inherit cycle protection via HashSet visited guard
  * Group change in connection dialog now correctly persists on save
  * Monitoring waits for SSH handshake before opening channel
  * SecretString migration for RDP/SPICE events, GUI structs, CLI input
  * VaultOp dispatch consolidation, mutex lock safety, error logging
  * CSS extraction, i18n consistency, CI --all-features coverage
  * Dead code removal: StateAccessError, unused sidebar methods

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 01 Mar 2026 18:00:00 +0200

rustconn (0.9.4-1) unstable; urgency=medium

  * Session Reconnect — disconnected VTE tabs show a Reconnect banner
  * Recursive Group Delete — keep children, cascade, or cancel
  * Cluster broadcast mode wired — keyboard input broadcasts to all terminals
  * Libvirt / GNOME Boxes import — VNC, SPICE, RDP from domain XML (#38)
  * TemplateManager — centralized template CRUD with search, import/export
  * Snippet shell safety check before --execute
  * Settings Backup/Restore as ZIP archive
  * Automation templates — 5 built-in expect rule presets
  * Fixed password inheritance for PasswordSource::Variable (#37)
  * Fixed VTE spawn failure — banner + toast instead of silent empty terminal
  * Fixed cluster session lifecycle and disconnect-all
  * Automation engine: one-shot rules, template picker, pre/post-connect tasks
  * User Guide major rewrite

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 01 Mar 2026 12:00:00 +0200

rustconn (0.9.3-1) unstable; urgency=medium

  * Added Waypipe Support — Wayland application forwarding for SSH
    connections via waypipe; auto-detected on Wayland sessions; per-connection
    toggle; graceful fallback to direct SSH (#36)
  * Added IronRDP Clipboard Integration — Bidirectional clipboard sync
    between local desktop and remote RDP session via cliprdr channel;
    feedback loop prevention via suppression flag
  * Fixed missing icons on KDE and non-GNOME desktops — replaced non-standard
    icon names with freedesktop equivalents; forced Adwaita icon theme;
    unified protocol icons via icons.rs (#35)
  * Fixed Serial/Kubernetes connection creation — no longer require host/port
    validation
  * Fixed Serial/Kubernetes missing client toast — shows user-friendly toast
    when picocom or kubectl is not installed
  * Fixed libsecret password storage panic — debug_assert crash on non-UUID
    lookup keys (#34)
  * Fixed libsecret password retrieval — is_available() check always returned
    false because secret-tool exits with code 2 without args
  * Fixed VNC/RDP identical icons — VNC now uses video-joined-displays-symbolic
  * Fixed SFTP via mc opens root instead of home — mc FISH VFS URI now
    includes /~ suffix; mc launched via sh -c for correct terminal sizing
  * Fixed SSH agent not inherited by VTE terminals — spawn_command now injects
    SSH_AUTH_SOCK from OnceLock into VTE-spawned processes
  * Added waypipe to Settings Clients detection tab
  * Dependencies: deflate64 0.1.10→0.1.11, dispatch2 0.3.0→0.3.1,
    objc2 0.6.3→0.6.4, zerocopy 0.8.39→0.8.40

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 27 Feb 2026 14:00:00 +0200

rustconn (0.9.2-1) unstable; urgency=medium

  * Custom Icons — set emoji/unicode or GTK icon names on connections
    and groups (#23)
  * Remote Monitoring — MobaXterm-style monitoring bar below SSH/Telnet/K8s
    terminals showing CPU, memory, disk, and network usage (#26)
  * Fixed new connections and groups appending to end of list instead
    of jumping to position 0
  * Fixed IronRDP fallback to FreeRDP on protocol negotiation failure (#33)
  * Fixed monitoring SSH password auth via sshpass
  * Fixed monitoring error spam — collector stops after 3 consecutive failures
  * Fixed Bitwarden CLI not found in Flatpak — bw command path now resolved
    dynamically instead of hardcoded (#28)
  * Added Bitwarden setup documentation (docs/BITWARDEN_SETUP.md)
  * CLI downloads: Teleport 18.7.0→18.7.1
  * Dependencies: vnc-rs 0.5.2→0.5.3, rustls 0.23.36→0.23.37,
    js-sys 0.3.89→0.3.90, wasm-bindgen 0.2.112→0.2.113

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 26 Feb 2026 12:00:00 +0200

rustconn (0.9.1-1) unstable; urgency=medium

  * Command Palette — VS Code-style quick launcher (Ctrl+P / Ctrl+Shift+P)
    with fuzzy search for connections and prefix modes for commands, tags, groups
  * Favorites / Pinning — pin connections to a dedicated sidebar section
  * Pass (passwordstore.org) secret backend — GPG-encrypted credential storage
    via pass CLI with Settings UI and CLI support (#32)
  * Tab coloring by protocol — optional colored indicators on terminal tabs
  * Snippet timestamps — created_at and updated_at fields with backward compat
  * Tab grouping — right-click context menu to assign named groups with colors
  * Custom Keybindings — fully customizable shortcuts via Settings → Keybindings
    with 30+ actions, Record button, per-shortcut Reset, and Reset All
  * Fixed Command Palette not dismissible via Escape or click-outside
  * Fixed Favorites group not updating immediately on pin/unpin
  * Fixed KDBX group visibility regression when loading saved backend preference
  * Improved i18n coverage — connection dialog tabs and all content strings
    now translatable across all 14 languages

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 24 Feb 2026 12:00:00 +0200

rustconn (0.9.0-1) unstable; urgency=medium

  * Ukrainian translation reviewed by Mykola Zubkov — 674 translations
    revised for accuracy and modern Ukrainian orthography

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 21 Feb 2026 12:00:00 +0200

rustconn (0.8.9-1) unstable; urgency=medium

  * SSH port forwarding — Local (-L), remote (-R), and dynamic SOCKS (-D)
    port forwarding rules per connection (#22)
  * Deferred secret backend initialization — Bitwarden vault unlock and KDBX
    password decryption run asynchronously after window presentation,
    eliminating 1–3 second startup delay
  * Security: input validation hardening across all protocols — custom_args,
    device paths, shell paths, hostnames, proxy URLs, shared folder names
    validated against injection attacks
  * Security: SSH config export blocks dangerous directives (ProxyCommand, etc.)
  * Security: KeePassXC socket responses capped at 10 MB
  * Security: VNC and RDP client passwords migrated to SecretString
  * Security: FreeRDP external launcher uses /from-stdin
  * Fixed Quick Connect RDP "Got empty identity" CredSSP error — NLA
    auto-disabled when credentials incomplete (#29)
  * Fixed Bitwarden duplicate vault writes, false "unlocked" status,
    auto-unlock after restart, CLI v2026.1.0 compatibility (#28)
  * Fixed RefCell borrow panic in EmbeddedRdpWidget, VNC polling mutex
    contention, RDP polling timer leak
  * Fixed several unwrap() panics (VNC, TaskExecutor, tray, build.rs)
  * ~40 eprintln! calls migrated to structured tracing
  * Dependencies: serde_yaml replaced with serde_yaml_ng 0.9 (maintained fork)
  * Dependencies: cpal 0.17.1→0.17.3, clap 4.5.59→4.5.60
  * Internal: architecture audit completed (51 findings, 49 resolved)

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 20 Feb 2026 12:00:00 +0200

rustconn (0.8.8-1) unstable; urgency=medium

  * Security: AES-256-GCM replaces XOR obfuscation for stored credentials
    (transparent migration from legacy format)
  * Security: FreeRDP password passed via stdin instead of command line
  * FreeRDP detection unified with Wayland-first priority
  * RDP build_args() decoupled from hardcoded binary name
  * ZeroTrust: provider-specific validation and CLI tool detection
  * Native export/import now includes snippets (format v2)
  * Removed dead code: Dashboard module, 5 unused GUI modules,
    tab_split_manager remnants

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 18 Feb 2026 12:00:00 +0200

rustconn (0.8.7-1) unstable; urgency=medium

  * Version bump to 0.8.7
  * Internationalization (i18n) — 14 languages: uk, de, fr, es, it, pl, cs,
    sk, da, sv, nl, pt, be, kk; gettext support via gettext-rs (#17)
  * SPICE proxy support for Proxmox VE tunnelled connections (#18)
  * RDP HiDPI fix — IronRDP uses device-pixel resolution on HiDPI displays (#16)
  * Security: variable injection prevention in command-building paths
  * Security: ChecksumPolicy enum replaces placeholder SHA256 strings
  * Security: sensitive CLI arguments masked in log output
  * Security: configurable document encryption strength (Standard/High/Maximum)
  * Security: SSH Agent passphrase handling via SSH_ASKPASS helper
  * CLI overhaul: modularized into 18 handler modules with structured logging
  * CLI: shell completions, man page, fuzzy suggestions, dry-run, pager, auto-JSON
  * CLI: --config flag now threads through all ConfigManager call sites
  * Czech translation improved by native speaker p-bo (PR #19)
  * Remmina RDP import: gateway_server, gateway_username, domain fields (#20)
  * Accessible labels added to 20+ icon-only buttons
  * VTE updated to 0.83.90 in Flatpak manifests
  * Flatpak components dialog hides unusable protocol clients in sandbox
  * SPDX license corrected: GPL-3.0+ → GPL-3.0-or-later in metainfo.xml

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 17 Feb 2026 12:00:00 +0200

rustconn (0.8.6-1) unstable; urgency=medium

  * Version bump to 0.8.6
  * Fixed Embedded RDP keyboard layout:
    - Fixed incorrect key mapping for non-US keyboard layouts (e.g. German QWERTZ)
      in IronRDP embedded client (#15)

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 16 Feb 2026 12:00:00 +0200

rustconn (0.8.5-1) unstable; urgency=medium

  * Version bump to 0.8.5
  * Added Kubernetes Protocol (#14):
    - Shell access to Kubernetes pods via kubectl exec -it
    - Two modes: exec into existing pod, or launch temporary busybox pod
    - KubernetesConfig: kubeconfig, context, namespace, pod, container, shell
    - GUI: Connection dialog Kubernetes tab, sidebar K8s quick filter
    - CLI: kubernetes subcommand with full parameter support
    - kubectl available as Flatpak downloadable component
    - Property tests updated with Kubernetes coverage
  * Added Serial Console Protocol (#11):
    - Full serial console support via picocom (GUI, CLI, Flatpak, Snap)
    - SerialConfig: device path, baud rate (9600-921600), data/stop bits,
      parity, flow control
    - 13 serial-specific property tests
  * Added SFTP File Browser (#10):
    - "Open SFTP" in sidebar context menu and SSH session toolbar
    - Opens system file manager via portal (Flatpak/Snap/native)
    - "SFTP via mc" option with Midnight Commander FISH VFS
    - Standalone SFTP connection type reusing SSH config
    - CLI: sftp subcommand (--cli, --mc, default opens file manager)
  * Added Responsive / Adaptive UI (#9):
    - All 17+ dialogs: reduced sizes, minimum sizes, all resizable
    - adw::Clamp (max 600px) on 7 list-style dialogs
    - Dashboard and Active Sessions upgraded to adw::Window
    - Main window breakpoint 600sp: hides split view buttons
  * Added Terminal Rich Search (#7):
    - Regex, Highlight All, case-sensitive toggles, wrap-around navigation
    - Keyboard shortcut: Ctrl+Shift+F
    - Session log timestamps: [HH:MM:SS] prepended to log lines
  * Changed: Session Logging moved from Terminal to Logging settings tab

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 15 Feb 2026 12:00:00 +0200

rustconn (0.8.4-1) unstable; urgency=medium

  * Version bump to 0.8.4
  * Added FIDO2/SecurityKey SSH authentication:
    - New SshAuthMethod::SecurityKey variant for FIDO2 hardware key auth
    - "Security Key (FIDO2)" option in connection and template dialogs
    - Exports map SecurityKey to publickey (Asbru) or ssh_auth=2 (Remmina)
    - All property test strategies updated with SecurityKey coverage
  * Added CLI auth-method support:
    - --auth-method flag for add and update commands
    - show command displays SSH auth method
    - update command supports --key for SSH key path changes
  * Fixed CLI version check timeout:
    - Increased VERSION_CHECK_TIMEOUT from 3 to 6 seconds
    - Azure CLI loads Python runtime and takes ~3.3s
  * Fixed WoL MAC Entry Disabled on Edit:
    - WoL settings fields remained disabled when editing existing connection
    - Removed per-widget sensitivity calls; wol_settings_group manages this
  * Refactored ConnectionManager watch channels:
    - Replaced 3x Arc<Mutex<Option<Vec<T>>>> with tokio::sync::watch channels
    - Extracted generic debounce_worker() async function
    - Struct fields reduced from 8 persistence-related to 3
  * Refactored EmbeddingError thiserror derive
  * Refactored FreeRDP mutex consolidation into single shared state struct
  * Refactored Embedded RDP module directory (7 flat files into module)
  * Refactored ConnectionDialog LoggingTab extraction (~310 lines removed)
  * Refactored OverlaySplitView sidebar with F9 toggle and gestures
  * Refactored responsive sidebar breakpoint (400sp for narrow windows)
  * Refactored Window module directory (14 flat files into module)
  * Refactored State access error thiserror derive
  * Refactored workspace clippy suppression audit (~80 redundant annotations removed)
  * Refactored Protocol trait with capabilities() and build_command() methods
  * Updated dependencies: resvg 0.46->0.47, usvg 0.46->0.47,
    tiny-skia 0.11->0.12, tiny-skia-path 0.11->0.12

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 14 Feb 2026 12:00:00 +0200

rustconn (0.8.3-1) unstable; urgency=medium

  * Version bump to 0.8.3
  * Added Wake On LAN from GUI (#8):
    - Right-click connection → "Wake On LAN" sends packet using configured MAC
    - Auto-WoL before connecting (fire-and-forget, does not block connection)
    - Standalone WoL dialog (Menu → Tools → "Wake On LAN...")
    - Retry with 3 packets at 500 ms intervals for reliability
    - Non-blocking: all sends run on background threads
    - Toast notifications for success/failure
  * Fixed Flatpak libsecret build:
    - Disabled bash_completion in libsecret module (EROFS in sandbox)
    - Renamed gcrypt option to crypto for libsecret 0.21.7
  * Fixed Thread Safety:
    - Removed std::env::set_var from FreeRDP spawned thread (data race since Rust 1.66+)
    - Env vars already set per-process via Command::env() in launch_freerdp()
  * Fixed Flatpak Machine Key:
    - get_machine_key() generates app-specific key in $XDG_DATA_HOME/rustconn/.machine-key
    - /etc/machine-id (inaccessible in Flatpak) is now a fallback
  * Fixed Variables Dialog Panic:
    - Replaced expect() with if-let pattern and tracing::warn! fallback
  * Fixed Keyring secret-tool Check:
    - keyring::store() checks is_secret_tool_available() before storing
    - Returns BackendUnavailable with user-friendly message if missing
  * Fixed Flatpak CLI Paths:
    - Secret backend CLI detection no longer adds /snap/bin/ and /usr/local/bin/
      paths inside Flatpak; checks get_cli_install_dir() instead
  * Fixed Settings Dialog Performance:
    - Moved CLI detection and keyring auto-load to background threads
    - Dialog opens instantly with "Detecting..." placeholders (~10s → instant)
  * Fixed Settings Clients Tab Performance:
    - Added 3-second timeout to all CLI version checks
    - Parallelized all CLI detections via std::thread::scope (~15s → ~3s)
  * Fixed Settings Dialog Instant Display:
    - Moved dialog.present() before load_settings() for immediate visibility
  * Fixed Settings Dialog Visual Render Blocking:
    - Replaced glib async pattern with std::thread::spawn + mpsc + idle_add_local
    - Dialog renders instantly while CLI detection runs in parallel

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 13 Feb 2026 12:00:00 +0200

rustconn (0.8.2-1) unstable; urgency=medium

  * Version bump to 0.8.2
  * Added Shared Keyring Module:
    - New rustconn-core::secret::keyring module with generic store(), lookup(),
      clear(), and is_secret_tool_available() functions for all backends
  * Added Keyring Support for All Secret Backends:
    - Bitwarden: refactored to use shared keyring module
    - 1Password: store/get/delete token in keyring
    - Passbolt: store/get/delete passphrase in keyring
    - KeePassXC: store/get/delete KDBX password in keyring
  * Added Auto-Load Credentials from Keyring:
    - On settings load, all backends with "Save to system keyring" enabled
      automatically restore credentials from keyring
  * Added secret-tool Availability Check:
    - Toggling "Save to system keyring" checks if secret-tool is installed;
      if missing, unchecks checkbox and shows warning
  * Added Passbolt Server URL Setting and UI:
    - Server URL entry and "Open Vault" button in Secrets tab
    - Auto-fills from go-passbolt-cli config on startup
  * Added Unified Credential Save Options:
    - All secret backends now offer consistent "Save password" and
      "Save to system keyring" options with mutual exclusion
  * Added new SecretSettings fields for unified credential persistence
  * Fixed Secret Lookup Key Mismatch:
    - libsecret store_unified() now uses correct key format
    - Bitwarden/1Password/Passbolt resolve functions try multiple key formats
  * Fixed Passbolt Server Address Always None:
    - Reads server address from go-passbolt-cli config
  * Fixed Passbolt "Open Password Vault" URL:
    - Opens configured server URL instead of hardcoded address
  * Fixed Variable Secrets Ignoring Preferred Backend:
    - save/load_variable_to/from_vault() now respect preferred_backend setting
  * Fixed Bitwarden Folder Parsing Crash:
    - BitwardenFolder.id now accepts null values
  * Fixed Bitwarden Vault Auto-Unlock:
    - Variable save/load automatically unlocks vault using saved credentials
  * Improved workspace dependency consistency:
    - Moved regex in rustconn crate to workspace dependency
  * Removed unused picky pin from rustconn-core
  * Updated dependencies: clap 4.5.57->4.5.58, clap_builder 4.5.57->4.5.58,
    clap_lex 0.7.7->1.0.0, deranged 0.5.5->0.5.6

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 11 Feb 2026 14:00:00 +0200

rustconn (0.8.1-1) unstable; urgency=medium

  * Version bump to 0.8.1
  * Added Passbolt Secret Backend (#6):
    - PassboltBackend implementing SecretBackend trait via go-passbolt-cli
    - Store, retrieve, and delete credentials as Passbolt resources
    - CLI detection and version display in Settings → Secrets
    - Requires `passbolt configure` CLI setup before use
  * Unified Secret Backends:
    - Replaced individual PasswordSource variants with single Vault variant
    - Connection dialog password source: Prompt, Vault, Variable, Inherit, None
    - Serde aliases preserve backward compatibility with existing configs
  * Added Variable Password Source:
    - PasswordSource::Variable(String) reads credentials from named secret variable
    - Connection dialog shows variable dropdown when Variable is selected
  * Variables Dialog Improvements:
    - Show/Hide toggle for secret variable values
    - Load from Vault button to retrieve secret values from configured backend
    - Secret variable values auto-saved to vault on dialog save
  * Fixed secret variables always using libsecret instead of configured backend
  * Fixed Variable dropdown showing empty when editing connections
  * Fixed Telnet backspace/delete: replaced stty wrapper with VTE EraseBinding API
  * Fixed split view left panel shrinking on nested splits

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 11 Feb 2026 12:00:00 +0200

rustconn (0.8.0-1) unstable; urgency=medium

  * Version bump to 0.8.0
  * Added Telnet Backspace/Delete Configuration (#5):
    - TelnetBackspaceSends and TelnetDeleteSends enums with Automatic/Backspace/Delete options
    - Connection dialog Keyboard group with two dropdowns for Backspace and Delete key behavior
    - stty erase shell wrapper in spawn_telnet() to apply key settings before connecting
    - Addresses common backspace/delete inversion issue reported by users
  * Added Flatpak Telnet Support:
    - GNU inetutils built as Flatpak module
    - telnet binary available at /app/bin/ in Flatpak sandbox
    - Added to all three Flatpak manifests (flatpak, flatpak-local, flathub)
  * Fixed OBS Screenshot Display:
    - Updated _service revision from v0.5.3 to current version tag
  * Fixed Flatpak AWS CLI:
    - Replaced awscliv2 pip package (Docker wrapper) with official AWS CLI v2
      binary installer from awscli.amazonaws.com
  * Fixed Flatpak Component Detection:
    - SSM Plugin, Azure CLI, OCI CLI now correctly detected after installation
    - Added explicit search paths and increased recursive search depth
  * Fixed Flatpak Python Version:
    - Wrapper scripts dynamically detect Python version instead of hardcoding
  * Updated dependencies: libc 0.2.180->0.2.181, tempfile 3.24.0->3.25.0,
    unicode-ident 1.0.22->1.0.23

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 10 Feb 2026 12:00:00 +0200

rustconn (0.7.9-1) unstable; urgency=medium

  * Version bump to 0.7.9
  * Added Telnet protocol support (#5):
    - Full implementation across all three crates (core, CLI, GUI)
    - TelnetConfig model with host, port (default 23), extra arguments
    - Protocol trait implementation using external telnet client
    - Import/export support: Remmina, Asbru, MobaXterm, RDM
    - CLI: rustconn-cli telnet subcommand
    - GUI: connection dialog, template dialog, sidebar filter, quick connect
    - Terminal: spawn_telnet() for launching sessions
    - All property tests updated with Telnet coverage
  * Fixed missing Telnet icon mapping in sidebar get_protocol_icon()
  * Fixed Telnet icon: changed from network-wired-symbolic to call-start-symbolic
    across all views (sidebar, filter buttons, dialogs, templates)
  * Fixed ZeroTrust sidebar icon: unified to folder-remote-symbolic for all providers

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 09 Feb 2026 12:00:00 +0200

rustconn (0.7.8-1) unstable; urgency=medium

  * Version bump to 0.7.8
  * Added Remmina password import:
    - Passwords from Remmina keyring are now transferred to the configured
      secret backend (libsecret, KeePassXC, etc.) during import
    - Imported connections use PasswordSource::Keyring for seamless auth
  * Fixed import error swallowing:
    - Replaced 14 unwrap_or_default() calls with proper error propagation
    - Import failures now display user-friendly messages
  * Fixed MobaXterm import double allocation:
    - Removed unnecessary clone on byte buffer during UTF-8 conversion
  * Improved import file size guard:
    - Added 50 MB file size limit to prevent OOM on large files
  * Improved native export/import streaming I/O:
    - to_file() uses BufWriter with serde_json::to_writer_pretty()
    - from_file() uses BufReader with serde_json::from_reader()
    - Version pre-check before full deserialization
  * Added centralized write_export_file() helper with BufWriter
  * Refactored export write consolidation across all exporters
  * Removed redundant TOCTOU path.exists() checks in importers
  * Removed unused imports in Asbru and MobaXterm exporters
  * Updated dependencies: memchr 2.7.6->2.8.0, ryu 1.0.22->1.0.23,
    zerocopy 0.8.38->0.8.39, zmij 1.0.19->1.0.20

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 08 Feb 2026 12:00:00 +0200

rustconn (0.7.7-1) unstable; urgency=medium

  * Version bump to 0.7.7
  * Fixed keyboard shortcuts intercepting VTE terminal input:
    - Delete, Ctrl+E, Ctrl+D no longer fire when terminal has focus (#4)
    - Shortcuts now scoped to sidebar only
  * Improved thread safety:
    - Audio mutex locks use graceful fallback instead of unwrap()
    - Search engine mutex locks use graceful recovery patterns
  * Security: VNC client logs warning when connecting without password
  * Refactored runtime consolidation:
    - Replaced 23 redundant tokio runtime calls with shared with_runtime()
  * Collection optimization: snippet tags use flat_map and sort_unstable
  * Dead code removal: removed deprecated credential methods and unused menu builder

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 07 Feb 2026 12:00:00 +0200

rustconn (0.7.6-1) unstable; urgency=medium

  * Version bump to 0.7.6
  * Flatpak Components Manager - On-demand CLI download for Flatpak environment:
    - Menu → Flatpak Components... (visible only in Flatpak)
    - Download and install CLIs to ~/.var/app/io.github.totoshko88.RustConn/cli/
    - Supports: AWS CLI, AWS SSM Plugin, Google Cloud CLI, Azure CLI, OCI CLI,
      Teleport, Tailscale, Cloudflare Tunnel, Boundary, Bitwarden CLI, 1Password CLI, TigerVNC
    - SHA256 checksum verification, progress indicators, cancel support
  * Snap Strict Confinement - Migrated from classic to strict confinement:
    - Snap-aware path resolution for data, config, and SSH directories
    - Uses embedded clients (IronRDP, vnc-rs, spice-gtk)
    - External CLIs accessed from host via system-files interface
  * UI/UX Enhancements - GNOME HIG compliance improvements:
    - Accessible labels for status icons and protocol filter buttons
    - Sidebar minimum width increased to 200px
    - Connection dialog uses adaptive adw::ViewSwitcherTitle
    - Toast notifications with proper priority levels
  * Settings → Clients - Improved client detection display:
    - All protocols show embedded client status with blue indicator
    - Fixed AWS SSM Plugin detection
  * Dialog Widget Builders - Reusable UI components (CheckboxRowBuilder, EntryRowBuilder, etc.)
  * Protocol Dialogs Refactoring - Applied widget builders to SSH, RDP, VNC, SPICE panels
  * Legacy Code Cleanup - Removed unused TabDisplayMode, TabLabelWidgets types

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 06 Feb 2026 12:00:00 +0200

rustconn (0.7.5-1) unstable; urgency=medium

  * Version bump to 0.7.5
  * Code Quality Audit - Comprehensive codebase analysis and cleanup:
    - Removed duplicate SSH/VNC/SPICE/ZeroTrust/RDP options code from dialog.rs (~1850 lines)
    - Extracted shared folders UI into reusable shared_folders.rs module
    - Created protocol_layout.rs with ProtocolLayoutBuilder for consistent protocol UI
    - Consolidated with_runtime() into async_utils.rs
    - Changed FreeRDP launcher to Wayland-first (force_x11: false by default)
    - Removed legacy no-op methods from terminal module
  * Updated dependencies: proptest 1.9.0→1.10.0, time 0.3.46→0.3.47

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 06 Feb 2026 12:00:00 +0200

rustconn (0.7.4-1) unstable; urgency=medium

  * Version bump to 0.7.4
  * Fixed Zero Trust Entry Field Alignment - converted all Zero Trust provider fields to adw::EntryRow
  * Refactored Connection Dialog Modularization - split into dialog.rs, ssh.rs, rdp.rs, vnc.rs, spice.rs
  * Refactored Import File I/O - extracted common file reading pattern into read_import_file() helper
  * Refactored Protocol Client Errors - consolidated duplicate error types into unified EmbeddedClientError
  * Refactored Config Atomic Writes - improved reliability with temp file + atomic rename pattern
  * Added GTK Lifecycle Documentation - module-level docs explaining #[allow(dead_code)] pattern
  * Code Quality - removed legacy types, standardized error patterns, reduced unnecessary clones

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 05 Feb 2026 12:00:00 +0200

rustconn (0.7.3-1) unstable; urgency=medium

  * Version bump to 0.7.3
  * Fixed Azure CLI Version Parsing - version now correctly extracted from unique output format
  * Fixed Flatpak XDG Config - removed unnecessary xdg-config/rustconn:create permission
  * Fixed Teleport CLI Detection - changed binary from teleport to tsh
  * Improved RDP Client Detection - FreeRDP 3.x with Wayland support (wlfreerdp3/xfreerdp3)
  * Unified Client Install Hints - format: deb-package (rpm-package)
  * Updated dependencies: bytes, flate2, regex

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 03 Feb 2026 12:00:00 +0200

rustconn (0.7.2-1) unstable; urgency=medium

  * Version bump to 0.7.2
  * Flatpak Host Command Support - New flatpak module for running host commands
  * Fixed Flatpak Config Access - connections and settings now persist correctly
  * Fixed Split View Equal Proportions - panels now split 50/50 reliably

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 03 Feb 2026 12:00:00 +0200

rustconn (0.7.1-1) unstable; urgency=medium

  * Version bump to 0.7.1
  * Refactored Sidebar - Split monolithic sidebar into modular components (TECH-03)
  * Refactored Drag & Drop - Strongly typed DragPayload (TECH-04)
  * Added Search Highlighting - Visual feedback for search matches (TECH-05)
  * Code Quality - Async persistence fixes and cleanup

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 01 Feb 2026 14:00:00 +0200

rustconn (0.7.0-1) unstable; urgency=medium

  * Version bump to 0.7.0
  * Fixed Asbru Import Nested Groups - two-pass algorithm preserves hierarchy
  * Fixed Asbru Export Description Field - exports connection and group descriptions
  * Added Group Description Field - New Group and Edit Group dialogs
  * Added Asbru Global Variable Conversion - <GV:VAR> to ${VAR} syntax
  * Added Variable Substitution at Connection Time
  * Dialog Size Unification - Export 750×650, Import 750×800, New Group 450×550

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 01 Feb 2026 12:00:00 +0200

rustconn (0.6.9-1) unstable; urgency=medium

  * Version bump to 0.6.9
  * Fixed Local Shell tabs not appearing in Split View "Select Tab" dialog

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 31 Jan 2026 12:00:00 +0200

rustconn (0.6.8-1) unstable; urgency=medium

  * Version bump to 0.6.8
  * 1Password CLI Integration - New secret backend for 1Password password manager
  * Bitwarden API Key Authentication - Support for automated workflows and 2FA
  * Bitwarden Keyring Storage - Store master password in system keyring

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 30 Jan 2026 12:00:00 +0200

rustconn (0.6.7-1) unstable; urgency=medium

  * Version bump to 0.6.7

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 29 Jan 2026 12:00:00 +0200

rustconn (0.6.6-1) unstable; urgency=medium

  * Version bump to 0.6.6

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 27 Jan 2026 12:00:00 +0200

rustconn (0.6.5-1) unstable; urgency=medium

  * Version bump to 0.6.5

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 17 Jan 2026 20:00:00 +0200

rustconn (0.6.4-1) unstable; urgency=medium

  * Update to version 0.6.4 - Snap Package Support and RDP/VNC Performance Modes
    - Snap Package - New distribution format for easy installation via Snapcraft
    - Classic confinement for full system access (SSH keys, network, etc.)
    - Automatic updates via Snap Store
    - GitHub Actions Snap Workflow - Automated builds and publishing
    - RDP/VNC Performance Modes - Quality/Balanced/Speed presets for different networks
    - Fixed RDP initial resolution matching actual widget size
    - Fixed RDP dynamic resolution with debounced reconnect (500ms)
    - Fixed sidebar fixed width (no longer resizes with window)
    - Fixed RDP cursor colors (BGRA→ARGB conversion)
    - Updated ironrdp 0.13 → 0.14, ironrdp-tokio 0.7 → 0.8

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 17 Jan 2026 18:00:00 +0200

rustconn (0.6.3-1) unstable; urgency=medium

  * Update to version 0.6.3 - Bitwarden Integration and Secret Backend Improvements
    - Bitwarden CLI Integration - New secret backend for Bitwarden password manager
    - Password Manager Detection - Automatic detection of installed managers
    - Enhanced Secrets Settings UI - Improved backend selection with dynamic config
    - Detects GNOME Secrets, KeePassXC, KeePass2, Bitwarden CLI, 1Password CLI

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 15 Jan 2026 18:00:00 +0200

rustconn (0.6.2-1) unstable; urgency=medium

  * Update to version 0.6.2 - MobaXterm Import/Export and UX Improvements
    - MobaXterm Import/Export - Full support for .mxtsessions files
    - Connection History Button - Quick access from sidebar toolbar
    - Run Snippet from Context Menu - Right-click on connection → "Run Snippet..."
    - Persistent Search History - Up to 20 recent searches saved across sessions
    - Updated quick-xml 0.38 → 0.39, resvg 0.45 → 0.46

 -- Anton Isaiev <totoshko88@gmail.com>  Wed, 15 Jan 2026 12:00:00 +0200

rustconn (0.6.1-1) unstable; urgency=medium

  * Update to version 0.6.1 - Credential Inheritance and Jump Host Support

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 12 Jan 2026 22:00:00 +0200

rustconn (0.6.0-1) unstable; urgency=medium

  * New upstream release - Code Audit & Cleanup
  * Removed check_structs.rs development artifact containing unsafe code
  * Replaced blocking_send() with try_send() in VNC input handlers
  * Replaced unwrap() with safe alternatives in sidebar.rs iterator access
  * Replaced expect() with proper error handling in validation.rs regex
  * Replaced module-level clippy allows with targeted function-level annotations
  * Improved app.rs initialization error handling
  * Updated Cargo.toml license from MIT to GPL-3.0-or-later
  * Updated Cargo.toml authors to Anton Isaiev
  * Added developer_name tag to metainfo.xml for AppStream compatibility
  * Updated dependencies: base64ct, cc, data-encoding, find-msvc-tools, flate2,
    getrandom, libc, toml, zbus, zbus_macros, zbus_names, zmij, zvariant
  * Removed unused cfg_aliases, nix, static_assertions dependencies

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 12 Jan 2026 12:00:00 +0200

rustconn (0.5.9-1) unstable; urgency=medium

  * New upstream release
  * Migrated Settings dialog from deprecated PreferencesWindow to PreferencesDialog
  * Updated libadwaita feature from v1_4 to v1_5
  * Migrated Template dialog to modern libadwaita patterns
  * Fixed Zero Trust (AWS SSM) connection status icon showing as failed
  * Fixed remote-viewer version parsing in Settings Clients tab
  * Fixed SSH Agent key selection when connecting
  * Improved agent key dropdown display in Connection Dialog

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 11 Jan 2026 12:00:00 +0200

rustconn (0.5.8-1) unstable; urgency=medium

  * New upstream release
  * Fixed SSH Agent Add Key button (opens file chooser)
  * Fixed SSH Agent plus buttons in Available Key Files (load keys with passphrase)
  * Fixed SSH Agent Remove Key button (actually removes keys from agent)
  * Fixed SSH Agent Refresh button (updates both loaded and available keys)

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 07 Jan 2026 20:00:00 +0200

rustconn (0.5.7-1) unstable; urgency=medium

  * New upstream release
  * Fixed Test button in New Connection dialog (async runtime issue with GTK)
  * Updated dependencies: h2, proc-macro2, quote, rsa, rustls, serde_json, url, zerocopy
  * Note: sspi and picky-krb kept at previous versions due to rand_core compatibility

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 07 Jan 2026 18:00:00 +0200

rustconn (0.5.6-1) unstable; urgency=medium

  * New upstream release
  * Migrated to native libadwaita architecture (adw::Application, adw::ApplicationWindow)
  * All dialogs redesigned to use adw::Window with adw::HeaderBar following GNOME HIG
  * Added KeePass status button in sidebar toolbar with visual integration indicator
  * Added Quick Filter functionality for protocol filtering (SSH, RDP, VNC, SPICE, ZeroTrust)
  * Enhanced terminal settings with color themes, cursor options, and behavior controls
  * Added Security Tips section to Password Generator dialog
  * Fixed Quick Filter logic and button state synchronization
  * Updated USER_GUIDE.md with complete v0.5.5+ feature documentation

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 07 Jan 2026 12:00:00 +0200

rustconn (0.5.5-1) unstable; urgency=medium

  * New upstream release
  * Added Kiro steering rules for commit and release checklists
  * Fixed Flatpak manifest version references

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 02 Jan 2026 17:30:00 +0200

rustconn (0.5.4-1) unstable; urgency=medium

  * New upstream release
  * Royal TS (.rtsz XML) import support with folder hierarchy and trash filtering
  * Royal TS (.rtsz XML) export support for SSH, RDP, VNC connections
  * Close Tab action implementation for terminal notebook (Ctrl+W)
  * Session Restore feature with configurable settings
  * Password Generator with strength evaluation and entropy calculation
  * Advanced session logging modes (activity, user input, terminal output)
  * Updated dependencies: cc, iri-string, itoa, libredox, proc-macro2, and others

 -- Anton Isaiev <totoshko88@gmail.com>  Fri, 02 Jan 2026 12:00:00 +0200

rustconn (0.5.3-1) unstable; urgency=medium

  * New upstream release
  * UI Unification: All dialogs now use consistent 750×500px dimensions
  * Connection history recording for all protocols (SSH, VNC, SPICE, RDP, ZeroTrust)
  * Protocol-specific tabs in Template Dialog matching Connection Dialog
  * Connection history and statistics dialogs with search and visualization
  * Common embedded widget trait for RDP/VNC/SPICE deduplication
  * Quick Connect now supports RDP and VNC protocols with templates
  * Property tests for history and session restore models
  * Refactored terminal.rs into modular structure
  * Removed duplicate Close/Cancel buttons from all dialogs
  * Renamed action buttons: "New X" → "Create", "Quick Connect" → "Connect"
  * Create Connection now always opens blank dialog (removed template picker)
  * Updated gtk4 dependency to 0.10.2

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 02 Jan 2026 12:00:00 +0200

rustconn (0.5.2-1) unstable; urgency=medium

  * New upstream release
  * Refactored window.rs into modular structure (reduced from 7283 to 2396 lines, -67%)
  * Refactored embedded_rdp.rs into modular structure (reduced from 4234 to 2803 lines, -34%)
  * Refactored sidebar.rs into modular structure (reduced from 2787 to 1937 lines, -30%)
  * Refactored embedded_vnc.rs into modular structure (reduced from 2304 to 1857 lines, -19%)
  * Fixed tab icons to match sidebar icons for all protocols
  * Fixed Snippet dialog Save button not clickable
  * Fixed Template dialog not showing all fields
  * Added wayland-native feature flag with gdk4-wayland integration
  * CI improvements: added libadwaita-1-dev, property tests job, OBS changelog generation

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 29 Dec 2025 12:00:00 +0200

rustconn (0.5.1-1) unstable; urgency=medium

  * New upstream release
    - Removed dead code and placeholder implementations
    - Code cleanup and documentation improvements

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 28 Dec 2025 12:00:00 +0200

rustconn (0.5.0-1) unstable; urgency=medium

  * New upstream release
    - RDP clipboard file transfer support (CF_HDROP format)
    - RDPDR directory change notifications and file locking support
    - Native SPICE protocol embedding using spice-client crate 0.2.0
    - Real-time connection status indicators in sidebar
    - Custom cursors in RDP sessions
    - Full Expect automation engine integration
    - Terminal context menu and keyboard shortcuts
    - Performance: lock-free audio callback, optimized fuzzy search, cached tokio runtime
    - Fixed SSH Agent key discovery for all private key formats (.pem, .key, header detection)
    - Fixed system tray menu intermittent issues
    - Updated thiserror from 1.0 to 2.0

 -- Anton Isaiev <totoshko88@gmail.com>  Sat, 27 Dec 2025 12:00:00 +0200

rustconn (0.4.2-1) unstable; urgency=medium

  * New upstream release
    - Fixed Asbru-CM import for installed configuration (environments key)
    - Fixed application icon resolution for all installation scenarios
    - Extended icon theme search paths

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 25 Dec 2025 21:00:00 +0200

rustconn (0.4.1-1) unstable; urgency=medium

  * New upstream release
    - IronRDP audio backend (RDPSND) with PCM format support
    - Optional rdp-audio feature for audio playback via cpal
    - Bidirectional clipboard improvements for embedded RDP
    - Updated MSRV to 1.86
    - Updated dependencies: tempfile 3.24, criterion 0.8, cpal 0.17

 -- Anton Isaiev <totoshko88@gmail.com>  Thu, 25 Dec 2025 12:00:00 +0200

rustconn (0.4.0-1) unstable; urgency=medium

  * New upstream release
    - Zero Trust: Improved UI by hiding irrelevant fields
    - Upgraded ironrdp to 0.13
    - Refactored rustconn-core
    - Made spice-embedded mandatory

 -- Anton Isaiev <totoshko88@gmail.com>  Tue, 24 Dec 2025 12:00:00 +0200

rustconn (0.3.1-1) unstable; urgency=medium

  * New upstream release
    - Code cleanup: fixed all Clippy warnings
    - Applied rustfmt formatting
    - Added Deactivation-Reactivation for RDP sessions
    - Removed sensitive clipboard debug logging

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 23 Dec 2025 21:00:00 +0200

rustconn (0.3.0-1) unstable; urgency=medium

  * New upstream release
    - IronRDP clipboard integration (bidirectional copy/paste)
    - IronRDP shared folders (RDPDR) support
    - RemoteFX codec for better RDP image quality
    - Migrated IronRDP from GitHub to crates.io (v0.11)

 -- Anton Isaiev <totoshko88@gmail.com>  Mon, 23 Dec 2025 18:30:00 +0200

rustconn (0.2.0-1) unstable; urgency=medium

  * New upstream release
    - Tree view state persistence (expanded/collapsed folders)
    - Fixed RDP embedded mode window sizing
    - Fixed native format import group hierarchy preservation
    - Updated dependencies: ksni 0.3, resvg 0.45, dirs 6.0
    - Dynamic version in About dialog
    - Zero Trust providers support (AWS SSM, GCP IAP, Azure Bastion)

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 22 Dec 2025 18:00:00 +0200

rustconn (0.1.0-1) unstable; urgency=medium

  * Initial release
    - GTK4 GUI for managing remote connections
    - SSH, RDP, VNC, SPICE support
    - Connection groups and import/export

 -- Anton Isaiev <totoshko88@gmail.com>  Sun, 22 Dec 2025 12:00:00 +0000
