Changed
- Interactive SSH sessions now use OTP 28's supported raw terminal mode
(:shell.start_interactive({:noshell, :raw})) when available, instead of
taking over fd 0 with a port. This removes the "stealing control of fd=0"
path on newer OTP releases. OTP 26/27 keep the previous fd/stty approach as
a fallback, which now also handles macOS/BSDstty -f.