Skip to content

Releases: uhs-robert/sshfs.nvim

v2.0.0 - Major Release with Live Remote Search

16 Dec 03:03

Choose a tag to compare

🚨 Breaking Changes

  • Config restructure: Introduced `hooks` system, renamed UI picker config keys

    • `ui.file_picker` → `ui.local_picker`
    • `mounts.unmount_on_exit` → `hooks.on_exit.auto_unmount`
    • `mounts.auto_change_dir_on_mount` → `hooks.on_mount.auto_change_to_dir`
    • Deprecation shims provided (removal planned after January 15th)
  • SSH-first authentication: Now establishes ControlMaster socket before mounting

    • Eliminates repeated auth prompts for terminals and live operations
    • Requires `~/.ssh/sockets/` directory with `chmod 700`
  • Command/API renames: Clearer naming conventions

    • `SSHBrowse` → `SSHFiles`, `SSHEdit` → `SSHConfig`
    • API functions renamed for clarity
  • SSHFS options: Simplified configuration format (table-based conversion to `-o` args)

✨ Features

Live Remote Search

  • Stream grep/find commands over SSH for faster remote searching
  • Works on mounted SSHFS filesystems using the ControlMaster connection
  • Support for Telescope, fzf-lua, snacks.nvim, and mini.pick
  • Graceful fallback to local operations if remote streaming fails
  • Optimized previews for large remote files

SSH Enhancements

  • ControlMaster support for connection reuse across mount, terminals, and live commands
  • Comprehensive SSH config parsing (Match directives, ProxyJump)
  • Asynchronous authentication with fallback to interactive terminals
  • Graceful ControlMaster cleanup on disconnect

UI Improvements

  • Health check (`:checkhealth sshfs`) for dependencies and config validation
  • Mount selection for multiple concurrent connections
  • Unified mount command with improved prompts
  • Configurable netrw command

Integration Updates

  • Added snacks.nvim integration (files, grep, live grep/find)
  • Added mini.pick integration (files, grep, live grep/find)
  • Improved previews with line limits for large files
  • Fixed netrw and ranger directory handling

🐛 Fixes

  • Prevent shell injection by using command tables
  • Fixed connection table modification during iteration
  • Correct base_mount_dir initialization order
  • Fixed SSH terminal with proper jobstart configuration
  • Improved error handling and notifications
  • Fixed mini.pick API compatibility
  • Tab-local directory changes (tcd) for proper scoping

⚡ Performance

  • Optimized Telescope previews for remote files
  • Limited live grep/find output to 10,000 lines for performance
  • Live grep/find operations run commands on remote host

🏗️ Refactoring

  • Modular picker integration system with lazy loading
  • Centralized SSH command building
  • Streamlined connection handling
  • Reorganized codebase structure (lib/, ui/, integrations/)
  • Comprehensive LuaDoc comments across all modules

📚 Documentation

  • Overhauled README with clarity improvements
  • Added CLAUDE.md for development guidance
  • Updated configuration examples
  • Added module purpose comments

v1.0.1 - SSH Config Match Directive Fix

29 Aug 11:41

Choose a tag to compare

Fixed

  • Handle Match directive in SSH config parsing

This release fixes an issue where SSH config files containing Match directives were not properly parsed, improving compatibility with more SSH configurations.

v1.0.0

07 Aug 01:36
9240736

Choose a tag to compare