Enhanced port forwarding logic to be more intuitive:
- Try to map remote port to same local port when possible
- Fallback to random available port if same port unavailable
- Clear user feedback showing port mapping (same vs different)
- Enhanced forwarding view with access URLs and instructions
- Added --test-port command to test port mapping logic
Examples:
- Remote port 3000 -> localhost:3000 (if available)
- Remote port 80 -> localhost:random (if 80 unavailable)
- Shows 'same port' or 'port X was unavailable' messages
This makes port forwarding much more intuitive - users can
access localhost:3000 when forwarding remote port 3000.
Co-authored-by: Ona <no-reply@ona.com>
Major improvements to error handling and debugging:
- Fix program quitting on manual port forwarding errors
- Add comprehensive debug logging for SSH connections
- Improve error handling to show messages instead of quitting
- Add StateStartingForward for better user feedback
- Enhanced SSH client creation with default key loading
- Add --test-connect mode for debugging specific hosts
- Better timeout handling and connection diagnostics
The application now gracefully handles connection failures and
provides helpful error messages instead of crashing.
Co-authored-by: Ona <no-reply@ona.com>
- Enhanced visual styling for port number input box
- Added proper border and padding with consistent colors
- Improved label positioning and typography
- Added placeholder text when input is empty
- Better visual cursor indication
- More detailed control instructions
- Consistent color scheme with rest of the application
The port input box now has better visual hierarchy and is easier to use.
Co-authored-by: Ona <no-reply@ona.com>
- Interactive TUI for SSH port forwarding
- Reads from ~/.ssh/config for host selection
- Automatic port detection on remote hosts
- Manual port forwarding option
- Graceful error handling and connection timeouts
- Built with Bubble Tea framework
Co-authored-by: Ona <no-reply@ona.com>