Repository navigation
Release version 1.0.5 - CLI arguments support
Changelog
All notable changes to Sergeant will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.
[1.0.5] - 2025-01-15
Added
- Command-line interface improvements
- Added
--help/-hflag to show usage and features - Added
--version/-vflag to show version number - Support starting in specific directory:
sgt ~/Documents - Added
-b/--bookmark [name]to start at a saved bookmark location - Added
--list-bookmarksto display all saved bookmarks with status - Added
--pwdflag to print final directory on exit for shell integration - Added
--debugflag to show environment and configuration details - Added
--no-colorflag for terminals without color support - Post-install message with quick start guide and tips
- Shell integration examples for quick directory jumping
- Added
[1.0.4] - 2025-12-27
Fixed
- Windows compatibility improvements
- Use ASCII icons ([D], [F], *, >) on Windows for better terminal compatibility (PR #15)
- Windows terminals often don't render emoji properly - now uses ASCII fallback
- Add notepad fallback for file preview and edit on Windows (PR #16)
- POSIX tools (vim, nano, less) replaced with notepad when not available
Changed
- Reduced gem package size from 4.8MB to ~115KB by excluding media files and .DS_Store
[1.0.3] - 2025-12-26
Added
- Total size display for marked items
- Status bar now shows total size of all marked files
- Helps users understand the size of operations before copying/cutting
- Automatically formatted with appropriate units (B, K, M, G)
- Quick filter feature (f key)
- Filter current directory view without changing directories
- Case-insensitive real-time filtering as you type
- Status bar shows active filter and filtered item count
- Press ESC to clear filter, Enter to apply
- Archive peek support (v key on archives)
- Preview contents of archive files without extracting
- Supports: .zip, .tar, .tar.gz/.tgz, .tar.bz2/.tbz, .tar.xz/.txz, .7z, .rar
- Uses native tools (unzip, tar, 7z, unrar) for listing contents
- Falls back gracefully if archive tools not installed
Changed
- Updated help modal to reflect new features
- Reorganized help modal with "View & Search" section for better clarity
Performance
- Optimized directory refresh
- Only fetch owner info and permissions when ownership display is enabled
- Use
stat.directory?instead ofFile.directory?()to avoid duplicate syscalls - Track ownership toggle changes to refresh only when needed
- Added comprehensive test coverage for performance optimizations (14 test cases)
[1.0.2] - 2025-12-26
Fixed
- Display issue on Arch Linux: Added terminal color support checking
- Prevents crashes on terminals without color support
- Gracefully degrades when
start_coloris unavailable - Fixes blank screen issue with Ruby version managers (mise, rbenv, asdf)
Added
- Installation troubleshooting
- Comprehensive troubleshooting documentation in README
- Simple alias solution for Arch Linux display issues:
alias sgt='ruby "$(which sgt)"'
- Better error handling
- Terminal initialization now shows helpful error messages on failure
- Displays environment information (TERM, TTY status) to aid debugging
Technical
- Improved terminal initialization with
has_colors?checks before callingstart_color - Added error recovery for curses screen initialization failures
- Better compatibility with different ncurses implementations
[1.0.1] - 2025-12-24
Fixed
- Major performance improvement: Fixed severe input lag with large directories
- Directory contents now only refresh when necessary (directory changes, file operations)
- Previously refreshed on every keystroke, causing thousands of unnecessary file system calls
- Navigation (arrow keys, marking) is now instant regardless of directory size
- Better error handling: Added error messages to help diagnose installation issues
- Shows load path and helpful reinstall instructions if gem fails to load
- Displays full error details instead of silently failing
1.0.0 - 2025-12-23
Added
- Interactive TUI navigation - Navigate directories with arrow keys or vim bindings (hjkl)
- File operations
- Mark/unmark files with Space
- Copy (c), cut (x), paste (p) with smart conflict resolution
- Delete with confirmation (d)
- Rename files/directories (r)
- Create new files/directories (n)
- File viewing and editing
- Edit files with $EDITOR support (e) - respects POSIX conventions
- Preview files read-only (v) - markdown with glow, code with nvim/vim
- Fallback chain: $EDITOR → nano → nvim → vim → vi
- Terminal integration
- Execute shell commands without leaving sgt (:)
- Commands run in current directory context
- Search and navigation
- Fuzzy file search with fzf integration (/)
- Bookmarks system (b)
- Git branch display in header
- Parent directory navigation (h/←)
- UI features
- Color-coded display (directories, files, selected items)
- Adaptive interface for narrow terminals and tiling window managers
- Smart scrolling for large directories
- Ownership/permissions toggle (o)
- Help modal with all key mappings (m)
- Status indicators for marked/copied items
- Configuration
- Customizable colors via ~/.sgtrc
- Bookmark management in config file
- Theme support
Technical
- Built as Ruby gem for easy installation
- POSIX-compliant, respects environment variables ($EDITOR, $VISUAL)
- Ncurses-based TUI
- Comprehensive test suite with RSpec
- No GUI dependencies - works in pure terminal