Skip to content

v2.0.0 - Major Release with Live Remote Search

Latest

Choose a tag to compare

@uhs-robert uhs-robert released this 16 Dec 03:03
· 42 commits to main since this release

🚨 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