Skip to content

OpenTerm v0.7.3

Choose a tag to compare

@github-actions github-actions released this 02 Oct 11:49

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+C in file manager copies file paths directly into the Windows system clipboard (CF_HDROP format with Preferred 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_sync to 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 pane or Edit 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.