- Implement Redis-backed command state tracking
- Use MD5 hashing to detect command changes in panes
- Kill and restart pane commands only when necessary
- Ensure bash is the parent process in each pane
- Add pane reset and emptiness checks before command execution
- Refactor `gittools` to remove `sshagent` import
- Update `sshagent.loaded()` to use `ssh-add -l` command
- Relocate and expose `remote_copy` and `remote_auth` functions
- Improve SSH agent examples and remove Linux tests
- Optimize `sshagent` module and `play` function imports
- Differentiate logic when a URL is used for the clone command.
- Parse URL to get identifiers without cloning the repository.
- This avoids an implicit clone before the explicit one.
- Retain original `get_repo` behavior for other commands.
- Moved git repository handling logic from `gittools` to a new
`gitresolver` module for better code organization and reusability.
- Created a `GitUrlResolver` interface to abstract git URL resolution.
- Implemented a `GitToolsResolver` struct to adapt the existing
`gittools` functionality to the new interface. This allows for
future extensibility with different git repository management
strategies.
- Improved error handling and added more informative error messages.
- Improved the structure of the `heroscript` by breaking down the
actions into smaller, more manageable units.