• Add SourceFile field to SSHHost struct to track config file origins
• Implement FindHostInAllConfigs() to locate hosts across all config files
• Fix "host not found" errors when editing/deleting hosts from included files
• Add GetAllConfigFiles() and GetAllConfigFilesFromBase() for config discovery
• Create UpdateSSHHostV2() and DeleteSSHHostV2() for cross-file operations
• Display config file source in edit and info forms for better visibility
• Add intelligent file selector for host addition when multiple configs exist
• Support -c parameter context with proper file resolution
• Exclude .backup files from Include directive processing
• Maintain backward compatibility with existing SSH config workflows
Resolves limitation where hosts from included config files could be viewed
but not edited, deleted, or properly managed through the interface.
This commit adds comprehensive support for SSH Include directives,
allowing users to organize SSH configurations across multiple files.
Features:
- Support for Include directives with glob patterns (e.g., Include config.d/*)
- Circular include detection to prevent infinite recursion
- Graceful handling of missing include files
- Wildcard host filtering (ignores Host * patterns)
- Tilde expansion for home directory paths
- Relative path resolution from config file directory
The implementation maintains backward compatibility and includes
comprehensive test coverage for all edge cases.
Thanks to @yimeng for this excellent contribution!
- Add new 'i' command for read-only host information display
- Implement info view with option to switch to edit mode (e/Enter)
- Hide User and Port columns to optimize table space usage
- Improve table height calculation for better host visibility
- Add proper message handling for info view navigation
- Interface optimization
- Replace recursive find with direct file path check to avoid scanning protected directories
- Backup old binary during installation to prevent interference from old version
- Use full path for version verification to ensure new binary is tested
- Fixes 'Operation not permitted' errors on macOS during installation process