Repository navigation
Releases: rzkfyn/shellfery
Release list
ShellFerry v0.8.4
ShellFerry v0.8.4 Release Notes
ShellFerry v0.8.4 improves client telemetry metadata accuracy, enhances in-app bug report submission reliability, and refines response error handling.
What's New
1. In-App Bug & Feedback Reporting Fixes
- Root-Level Metadata: Bug and feedback reports now transmit operating system information and application version (
0.8.4) at the root payload level for accurate indexing and instant parsing by CrashPulse. - Improved Error Handling: The feedback submission modal now validates server response codes strictly, ensuring actionable error messages are displayed if an issue occurs during submission.
2. Upstream Stability
- Inherits all stability hardening, freeze prevention, and single-instance locks introduced in v0.8.3.
ShellFerry v0.8.3
ShellFerry v0.8.3 Release Notes
ShellFerry v0.8.3 brings critical stability hardening for high-load environments, single-instance enforcement, anonymous crash telemetry via CrashPulse, and in-app bug & feedback reporting.
What's New
1. Memory Pressure Mitigations & Freeze Prevention
- Low Memory Defense: Implemented a kernel-level memory resource notification listener on Windows (
LowMemoryResourceNotification) that proactively trims working set pages back to the OS and trims inactive terminal session history buffers when RAM exhaustion is detected. - WebView2 Chromium Optimizations: Injected runtime flags (
--disable-features=CalculateNativeWinOcclusion,--renderer-process-limit=4, and capped V8 old-space size) preventing Win32 message pump stalls and "Not Responding" freezes when the host machine is under heavy memory pressure (e.g., multiple IDEs, Docker containers, and browser tabs running concurrently).
2. Single-Instance Enforcement
- No Duplicate Windows: Launching ShellFerry when an instance is already running will no longer open a redundant second process. The running instance is automatically unminimized, brought to the foreground, and focused.
3. CrashPulse Integration & Privacy Architecture
- Zero-Knowledge Sanitization: Automatically captures unhandled exceptions and React component crashes with strict client-side redaction. Local user paths (
C:\Users\[USER]), private IP ranges, SSH private keys, and passwords/tokens are sanitized before dispatch. - First-Launch Privacy Notice: Added a transparent first-launch privacy consent dialog detailing exactly what is collected (anonymous crash traces, OS architecture, app version) and what is strictly never collected, giving users full control to opt in or opt out.
- Full Transparency: Published
PRIVACY.mdin the repository detailing client-side zero-knowledge redaction and telemetry controls.
4. In-App Bug & Feedback Reporting
- Direct Feedback: Added an in-app feedback & bug reporting modal accessible directly from the header navigation and Settings dialog.
- Category Selector: Users can submit Bug Reports, UI Glitches, or Feature Ideas without requiring a GitHub account.
- Sanitized Preview: Users can preview the exact diagnostic payload before submitting to verify that no sensitive data or credentials are included.
ShellFerry v0.8.2
ShellFerry v0.8.2 Release Notes
ShellFerry v0.8.2 makes the Default View Mode setting work and lets you set a custom auto-lock timeout.
What's New
1. Default View Mode Now Applies
- Fixed: The Default View Mode setting (Terminal / Split / SFTP) was saved but never used, so every SSH connection opened in terminal-only view.
- Behavior: A newly opened session now starts in the chosen View Mode. Reconnects of an existing session keep the current View Mode.
- The settings label is now "Default View Mode".
2. Custom Auto-Lock Timeout
- Custom Option: The Auto-Lock on Idle dropdown has a new "Custom…" entry with a minutes input (1-1440, i.e. up to 24 hours). Values outside that range are clamped.
- The 5 / 15 / 30 / 60 minute presets and "Disabled" are unchanged.
3. Dev Tooling
- Dev server port moved from 1420 to 5420 to avoid Windows reserved port ranges (Hyper-V/WinNAT).
ShellFerry v0.8.1
ShellFerry v0.8.1 Release Notes
ShellFerry v0.8.1 fixes drag-and-drop file transfer from Finder/Desktop into the SFTP file manager on macOS, adds native drop-zone highlighting for OS drags, and replaces the oversized drag icon with a VSCode-style filename pill preview.
What's New
1. Fix macOS Drag-and-Drop from Finder/Desktop (#20)
- Tauri 2 Lifecycle API: Replaced unreliable raw
listen('tauri://drag-drop')with the officialgetCurrentWebview().onDragDropEvent()API, which registers all four drag lifecycle events (enter/over/drop/leave) and correctly handles macOS WKWebView interception fromdraggableDOM elements. - Removed Electron-Only Code: Stripped dead
(file as any).pathfallback from HTML5 drop handlers in FileItemRow and FilePane. File paths in Tauri come exclusively from native drag-drop events, not from the browser'sDataTransferAPI. - Fixed Duplicate Transfers: Resolved a listener stacking bug where the async
useEffectcleanup failed to unregister previous listeners before registering new ones on re-renders, causing a single file drop to trigger multiple uploads.
2. Native Drop-Zone Highlighting
- Visual Feedback for OS Drags: Dragging files from Finder or Desktop over a pane now shows the same drop-zone overlay (dashed indigo border, backdrop blur, "Drop to Upload/Download" label) previously only visible during internal pane-to-pane drags.
- Live Pane Tracking: The highlighted pane updates in real-time as the cursor moves between Local and Remote panes during a drag operation.
3. VSCode-Style Drag Preview
- Filename Pill Label: Dragging files out of ShellFerry now shows a compact dark pill with the filename(s) instead of the previous oversized 512×512 app icon.
- Multi-File Support: When dragging multiple files, the pill displays up to 3 filenames with a "+N more" overflow indicator.
- Dynamic Rendering: The pill is rendered at runtime via Canvas API at the display's native DPR, matching the system font and ShellFerry's dark theme.
v0.8.0 — ShellFerry
ShellFerry v0.8.0 Release Notes
OpenTerm is now ShellFerry. An unrelated app also called "OpenTerm" used the same Windows
install identity. Installing either app overwrote the other's install, Start Menu shortcut, and
app-data folder. ShellFerry now has its own identity and installs fully separately.
What's New
1. New name and isolated install
- New app identifier
io.github.rzkfyn.shellferry, plus its own install folder, Start Menu shortcut, and uninstall entry. - Data now lives in
%APPDATA%\io.github.rzkfyn.shellferry(Windows) or the equivalent per-OS config folder.
2. Automatic migration
- On first launch, your vault (
vault.enc), saved connections, and 2FA settings move from the oldcom.openterm.appfolder. Only ShellFerry's own files are touched. - UI preferences (theme, layout, split sizes) are copied over on Windows.
- The migration is non-destructive: a file is only removed from the old location after its copy has been verified.
3. 2FA secret moved to the OS keychain
- The TOTP secret is no longer stored in plain text in
totp.json. It now lives in Windows Credential Manager, macOS Keychain, or Linux Secret Service. - Existing 2FA setups migrate automatically. Your authenticator app keeps working, and the entry may still show the name "OpenTerm".
Upgrading
- Install ShellFerry v0.8.0 and launch it once so the migration runs.
- Uninstall the old "openterm" entry from Windows Settings > Apps. Leave "Delete the application data" unchecked, because that folder may be shared with the unrelated OpenTerm app.
4. Built-in updater
- Updates now install from inside the app. When a new version is available, click Install in the status bar (or Install Update in the changelog), watch the progress, then Restart to update.
- Every update is cryptographically signed and verified before installing. Tampered downloads are rejected.
- This is the last version you'll need to download manually.
OpenTerm v0.7.3
OpenTerm v0.7.3 Release Notes
OpenTerm v0.7.3 introduces native drag-and-drop to desktop, CodeMirror 6 in-app editor with One Dark syntax highlighting, reliable external editor launching with synchronous SFTP downloads, session-persistent remote path tracking, customizable SFTP columns with middle-truncation, configurable file double-click actions, and smart context menu positioning.
What's New & Improvements
1. Native Drag-and-Drop to Desktop & Windows Explorer (#43)
- Drag-Out to Desktop/Explorer: Drag files directly from OpenTerm's remote SFTP or local explorer pane out into Windows Explorer, desktop, or other external applications via native OLE drag (
start_native_drag). - Native Clipboard Copying (
CF_HDROP):Ctrl+Cin file manager copies file paths directly into the Windows system clipboard (CF_HDROPformat withPreferred DropEffect), enabling direct paste into Explorer or desktop. - Path Normalization: Automatically normalizes backslashes and resolves home directory (
~) expansions before system clipboard injection.
2. In-App & External Editor Enhancements (#42)
- CodeMirror 6 Editor: Replaced the basic textarea in-app editor with CodeMirror 6 featuring the One Dark theme, line numbers, active line highlighting, and syntax highlighting.
- Broad Language Support: Added syntax highlighting for JavaScript/TypeScript, JSON, Python, Rust, HTML, CSS, plus shell scripts (
.sh,.bash,.zsh,.env, shebangs), Dockerfiles, TOML, Nginx, and system config files. - External Editor Stability: Fixed external editor process hangs by moving file watcher and background upload synchronization to
tauri::async_runtime::spawn. - Synchronous SFTP Download: Added
sftp_download_syncto ensure file contents are fully flushed to disk before launching the external editor application.
3. Remote Path Preservation Across View Toggles (#40)
- Session-Scoped Remote Path Memory: OpenTerm now tracks the last visited remote SFTP path per session in
remotePathBySession. - Seamless Toggling: Switching between Terminal, SFTP, and Split view preserves your active remote working directory instead of resetting to the home directory.
- Lifecycle Cleanup: Session remote path caches are cleanly disposed when an SSH connection terminates.
4. SFTP Column Customization & Middle-Truncation (#45)
- Customizable Columns: Configure visible columns (Permissions, Owner, Group, Modified, Size) via column picker with state saved in
columnConfigStore(openterm_sftp_columns). - Visual Column Dividers: Added persistent 1px dividers with hover highlights for clean resizing.
- Smart Middle-Truncation: Long file names now truncate in the middle (
filename...extension), preserving critical compound extensions (.tar.gz,.d.ts, etc.). - Splitter Snap Shortcut: Double-click splitter bars between local/remote panes or terminal/SFTP split view to instantly snap to 50/50 balance.
5. Configurable File Double-Click Action (#44)
- Preferences Setting: Choose double-click file behavior in Settings (
Transfer to opposite paneorEdit in editor). - Collision Safeguards: Transfer action automatically checks for destination file collision before starting transfer.
- Dedicated Directory Handling: Double-clicking folders always navigates into directories regardless of file action preference.
6. Dynamic Viewport-Clamped Context Menus (#41)
- Smart Vertical Flipping: Context menus flip upward when opened near the bottom of the screen.
- Status Bar Clearance: Strict viewport boundary clamping maintains at least 24px clearance above the bottom StatusBar, preventing menu overflow or cutoff.
Verification & Stability
- 41 test suites passed (268 unit and component tests).
- Clean Vite production bundle and TypeScript compilation (
tsc --noEmit && vite build). - Rust backend verified with clean
cargo check.
OpenTerm v0.7.2
OpenTerm v0.7.2 Release Notes
OpenTerm v0.7.2 introduces an in-app Changelog Modal with live version tracking and version distance calculation, a safe zero-dependency Markdown renderer for release notes, decoupled SFTP / terminal path sync controls, and an interactive remote shell OSC 7 configuration guide.
What's New
1. In-App Changelog Modal & Version Tracker (#39)
- In-App Release Browser: Browse past and current release notes directly inside OpenTerm without getting redirected to an external browser.
- Live Version Distance Tracking: Header indicator shows whether your client is up to date (
v0.7.2 · Up to date ✓) or how many releases behind (v0.7.0 · 2 versions behind latest v0.7.2). - Release List Sidebar: Dual-pane layout with status badges:
[Latest]indicator on the newest release.[Current]badge identifying your active installed version.[New]indicator on releases newer than your installed version.
- Direct Actions: 1-click "Download Update" and "View on GitHub" actions with safe external URL routing.
- Dismissible: Seamlessly dismiss via Escape key, close button, or backdrop click.
2. Zero-Dependency Safe Markdown Renderer
- Pure React AST Parser: Fast, lightweight block and inline Markdown parsing built specifically for release notes.
- Strict Injection Safety: 100% free of
dangerouslySetInnerHTML. Elements are constructed directly as React AST nodes to prevent XSS. - Rich Formatting: Supports headings (
h1-h6), fenced code blocks with 1-click copy, unordered and ordered lists, blockquotes, horizontal dividers, bold, italic, and safe links (http:,https:).
3. Integrated Changelog Triggers
- Status Bar: Click or right-click the version indicator (
v0.7.2) in the status bar to open the changelog. Clicking the update notification pill opens the changelog directly focused on the newest release. - Settings Modal: "View Changelog" button added in the Settings > About tab.
4. SFTP / Terminal Path Sync Split (#38)
- Independent Sync Toggles: Split bi-directional path synchronization into independent controls:
- Terminal -> SFTP sync (updates SFTP explorer when terminal changes directories).
- SFTP -> Terminal sync (issues
cdin terminal when navigating folders in SFTP).
- Interactive OSC 7 Setup Guide Modal: Added 1-click copyable shell configuration snippets for Bash, Zsh, and Fish to enable automatic OSC 7 directory reporting on remote servers.
Verification & Stability
- 235/235 Vitest unit and component tests passing across 35 test suites.
- Clean Vite production bundle and TypeScript compilation (
tsc --noEmit && vite build).
OpenTerm v0.7.1
OpenTerm v0.7.1 Release Notes
OpenTerm v0.7.1 fixes a critical modal overflow issue on smaller screens and introduces a responsive two-column layout for the Connection Profile editor.
What's New & Fixes
1. Connection Profile Modal Viewport Overflow Fix (#37)
- Viewport Clamping: Constrained modal container to
max-h-[85vh]with flex column layout. - Pinned Top & Bottom Chrome: Header and action buttons (
Cancel,Save,Save & Connect) are pinned withshrink-0, ensuring buttons remain visible and clickable across all window heights. - Internal Scrolling: Form fields scroll smoothly inside a dedicated
overflow-y-auto min-h-0container when content exceeds available space.
2. Responsive 2-Column Profile Layout
- Desktop 2-Column Split: Widened modal dialog to
max-w-3xlwith a responsivegrid grid-cols-1 md:grid-cols-2layout.- Left Column: General profile details, host target, port, username, authentication credentials (Password / Key / Passphrase), and vault persistence toggle.
- Right Column: SFTP Directory Bookmarks and SSH Quick Commands in dedicated, collapsible card modules with count badges.
- Responsive Stacking: Automatically reflows to a single stacked column on narrow screens (<768px) or snapped window splits without horizontal clipping.
3. Dialog UX & Accessibility Enhancements
- Added
role="dialog",aria-modal="true", andaria-labelledbyattributes. - Added
Escapekey shortcut listener to close the modal dialog. - Added
select-textutility class to ensure text selection and copying work cleanly within modal input fields.
Verification & Stability
- 132/132 Vitest unit and component tests passing (29 test suites).
- Clean Vite production bundle and TypeScript compilation (
tsc --noEmit && vite build).
OpenTerm v0.7.0
OpenTerm v0.7.0 Release Notes
OpenTerm v0.7.0 brings full-app theme synchronization, an application Settings modal with customizable typography and font zoom shortcuts, in-buffer terminal text search with live match navigation, hardware biometric authentication (Windows Hello & macOS Touch ID), emergency backup codes, bi-directional Terminal-SFTP directory synchronization, keyboard text selection, and SSH quick commands.
What's New in v0.7.0
1. Application Settings & Typography Customization (#35)
- Settings Modal (
Cmd+,/Ctrl+,): Dedicated preferences dialog accessible via header gear icon, dashboard button, and global keyboard shortcut. - Independent Monospace Font Stacks: Choose from JetBrains Mono, Fira Code, Cascadia Code, SF Mono, Menlo, Monaco, Consolas, Source Code Pro, System Monospace, or specify custom font families.
- Terminal Sizing & Line Height: Real-time font size slider (10px–24px) and configurable line height (1.0–1.4).
- Application Interface Font: Separately configure app UI font (System Default, Geist Sans, Inter, Segoe UI, Roboto, Ubuntu, or custom).
- Live Terminal Font Zoom Shortcuts:
Cmd/Ctrl + "+"(zoom in),Cmd/Ctrl + "-"(zoom out), andCmd/Ctrl + "0"(reset zoom) directly inside active terminal sessions. - Terminal Preferences: Configurable cursor style (Block, Underline, Bar), cursor blink, scrollback buffer (up to 20,000 lines), and copy-on-select.
2. Terminal In-Buffer Text Search (#35, #36)
- Find in Terminal (
Cmd+F/Ctrl+F): Floating search overlay with live match highlighting and match index counter (1/14). - Match Options: Next/previous navigation (
Enter/Shift+Enter), match case (Aa), whole word (\b), and regular expressions (.*). - Robust Error Handling: Added
allowProposedApi: truefor decoration APIs, real-time regex syntax validation with visual error indicators, and wrappedTerminalViewin ReactErrorBoundary. - Search Re-triggering & Input Isolation: Support pressing
Cmd+Fwith newly highlighted terminal text to search the new query; guarded shortcuts to prevent hijacking keystrokes in active input fields and modals.
3. Biometric Passkey & Two-Factor Authentication (#34, #35)
- Cross-Platform Biometrics:
- Windows: Native Windows Hello (Fingerprint / PIN / Facial Recognition) integration via
IUserConsentVerifierInteropoffloaded to background threads to prevent UI freezes. - macOS: Native Apple Touch ID / Device Owner Authentication via
LocalAuthentication.framework(objc2-local-authentication).
- Windows: Native Windows Hello (Fingerprint / PIN / Facial Recognition) integration via
- Contextual Platform UI: Dynamically labels biometric prompts as "Touch ID" on macOS vs "Windows Hello" on Windows.
- Mandatory Onboarding Gate: Prompts master password or passkey enrollment before saving unencrypted SSH profiles to disk.
- Seamless 2FA Unlock: Auto-unlocks the application on entering the 6th TOTP digit without flashing spurious errors during typing.
4. Emergency Recovery Codes & TPM Reset Protection (#34)
- Emergency Backup Kit: Generates 8 one-time backup codes during biometric onboarding to safeguard against lockout after TPM, BIOS, or OS credential resets.
- Biometric-Protected Kit Generation: Requires active biometric verification before displaying or re-generating emergency codes.
- Dashboard Security Banner: Dismissible reminder prompts users to generate emergency codes or enable master password disk encryption.
5. Bi-Directional Terminal-SFTP Directory Synchronization
- Terminal -> SFTP Tracking: Parses shell OSC 7 escape sequences to automatically navigate the remote file manager pane to the terminal's working directory.
- SFTP -> Terminal Navigation: Changing directories in the SFTP remote pane automatically issues safe
cdcommands to the terminal shell. - Ping-Pong Loop Guard: Sync coordinator prevents recursive directory update cycles.
- Configurable Auto-Sync: Toggleable directly from the SFTP toolbar or within the Settings modal.
6. Terminal Selection, Input Fixes & Quick Commands
- Keyboard Text Selection: Supports
Shift+Arrowtext selection directly inside xterm without leaking raw ANSI escape sequences to the remote shell. - Paste & Focus Restoration: Prevents duplicate paste events and guarantees keyboard focus returns to the terminal cursor after context menu actions.
- SSH Quick Commands: Quick command dropdown menu with pre-configured operational snippets (
top,df -h,free -m,docker ps, etc.) with focus restoration. - Multi-Token File Filter: Multi-word fuzzy search filter in local and remote SFTP file panes.
7. Full-App Theme Synchronization (#35)
- Chrome-Wide Theme Synchronization: Extended theme presets (Midnight, Dracula, One Dark, Nord, Solarized Dark) beyond the xterm terminal canvas to the entire application chrome (Header, Status Bar, Dashboard, File Explorer, Directory Tree, and all Modals).
- Dynamic CSS Variables: Fast DOM root theme attributes (
[data-theme]) without component unmounting or page reloads. - Segmented Security Toolbar: Cleaned up dashboard security controls into a unified segmented toolbar with active indicator dots.
8. Connection Lifecycle Fix (#35)
- Safe Save & Connect: Inverted connection execution order in
handleSaveAndConnectto prevent saving broken or unreachable connection profiles when SSH authentication fails.
Verification
npm run build: Success (0 TypeScript errors)npm test: 28 test files passed, 127 tests passed (100%)cargo test: 32 tests passed (100%)
OpenTerm v0.6.0
OpenTerm v0.6.0 Release Notes
OpenTerm v0.6.0 brings a major FileZilla-style dual directory tree layout, terminal copy/paste shortcuts & context menu, terminal viewport overflow fixes, raw path navigation with mouse history, live folder bookmarks, update checker accuracy improvements, and customizable color theme presets.
What's New in v0.6.0
1. FileZilla-Style Dual Directory Tree Layout (#24)
- Collapsible Directory Trees: Integrated top directory tree views for both local and remote file systems with expandable directory nodes.
- Independent Multi-Axis Resizing:
- Horizontal splitter synchronizes the width of top and bottom panes between local and remote.
- Independent vertical splitters allow customizing directory tree height separately from the file list.
- Docked SFTP Transfer Drawer: Relocated the file transfer queue into the SFTP container so it remains confined to the file manager, keeping the terminal unobstructed in split layouts.
2. Terminal Copy/Paste Shortcuts & Context Menu (#22, #26)
- Direct Clipboard Integration:
Ctrl+Shift+C/Ctrl+C(when selection is active) copies directly to the OS clipboard.Ctrl+Vpastes OS clipboard content directly to the shell prompt.
- Terminal Context Menu: Right-click menu with Copy, Paste, Select All, Clear Terminal, and Reset Terminal.
- Mouse Reporting Fix: Suppressed middle-click (
button 1) and auxiliary mouse reporting noise to avoid garbled ANSI escape sequences in the terminal.
3. Terminal Viewport Overflow & Prompt Line Fixes (#21)
- Strict Boundary Geometry: Wrapped terminal viewport in zero-padding
min-h-0 overflow-hiddencontainers to prevent visual overflow underneath the status bar. - Stabilized PTY Resize: Debounced initial geometry calculations with double
requestAnimationFrameto ensure xterm fit addons report exact dimensions to the backend PTY.
4. Raw Path View & Mouse/Keyboard Navigation History (#25)
- Direct Raw Path Bar: Instant editable raw path bar with 1-click clipboard copy and breadcrumb mode toggle.
- History Stacks & Navigation: Full back/forward navigation history per pane supporting:
- Mouse button 4 (Back) & Mouse button 5 (Forward)
Alt + ArrowLeft(Back) &Alt + ArrowRight(Forward) shortcuts.
5. Live SFTP Folder Bookmarks (#28)
- Bookmark Current Locations: Quickly bookmark active local and remote path pairs directly from the SFTP toolbar with profile persistence in
savedConnectionStore. - Folder Context Menu Bookmarking: Right-click any directory to quickly add it to bookmarks.
6. Color Theme Presets & Customization (#27)
- 5 Built-in Palettes: Midnight, Dracula, One Dark, Nord, and Solarized Dark.
- Live Terminal Sync: Instant palette updates across all active terminal sessions without requiring reconnections.
- Status Bar Theme Selector: Quick-access theme picker in the bottom status bar with persistence in
localStorage.
7. Update Notification Accuracy & Manual Check Feedback (#23)
- Stale Cache Invalidation: Fixed false-positive update notifications when running the latest version.
- Visual Feedback: Added immediate status indicators and tooltips when manually checking for updates.
Verification & Stability
- 17/17 Vitest test suites passing (68/68 unit and component tests).
- 0 TypeScript typecheck errors (
tsc --noEmit). - Clean Vite production build.