Repository navigation
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.