Mosh Changelog

What's new in Mosh 1.4.0

Oct 27, 2022
  • New features:
  • Support OSC 52 clipboard copy integration (Alex Cornejo)
  • Allow non-inserting prediction (--predict-overwrite) (John Hood)
  • Don't do prediction on large pastes into mosh-client (John Hood)
  • Add true color support (Kang Jianbin)
  • Add syslog logging of connections (Tom Judge)
  • If exec()ing the remote command fails, pause briefly (John Hood)
  • Bug fixes:
  • ignore unknown renditions (Keith Winstein)
  • Overlays were getting set to the wrong colors (John Hood)
  • Fix issue with incorrect true-color background erase colors (John Hood)
  • Use HAVE_UTEMPTER instead of HAVE_UPTEMPTER (Michael Jarvis)
  • Apply latest consecutive resize, not earliest (Peter Edwards)
  • Use CLOCK_MONOTONIC_RAW when available (Harry Sintonen)
  • Add tmux and alacritty to title_term_types (Naïm Favier)
  • Don't sometimes hang just after launching ssh (Kalle Samuels)
  • Internal changes:
  • Reformat printed strings in source (John Hood)
  • Code cleanups (John Hood, Anders Kaseorg, Benjamin Barenblat, Alex Chernyakhovsky)
  • Always use non-blocking sockets for recvmsg() (John Hood)
  • Add Perl compile (John Hood)
  • Improvements to the test suite (John Hood)
  • Fixes to autoconf configure (Anders Kaseorg)
  • Cleanups to our cryptography code (Benjamin Barenblat, Alex Chernyakhovsky)
  • Infrastructure changes:
  • Add support for OCLint static checker (John Hood)
  • Switch from Travis-CI to Github Actions (Wolfgang E. Sanyer, Alex Chernyakhovsky)
  • Add code coverage and fuzzing infrastructure (Alex Chernyakhovsky)

New in Mosh 1.3.2.95 RC 1 (Aug 5, 2022)

  • Reformat printed strings in source by @cgull in #869
  • Support OCLint static checker; do some source cleanup by @cgull in #826
  • Ignore unknown rendition numbers by @keithw in #919
  • Add Perl compile by @cgull in #937
  • mosh.pl: Fix the error message if getaddrinfo is missing by @andersk in #940
  • Use HAVE_UTEMPTER instead of HAVE_UPTEMPTER by @mojotx in #944
  • mosh.pl: Allow shell expansion of --server with --local by @andersk in #947
  • Type Select::got_signal as volatile sig_atomic_t by @andersk in #954
  • Require C++11 if protobuf version >= 3.6.0 is installed by @cgull in #990
  • Fix FreeBSD issue with bind(2), do some namespace/using cleanup by @cgull in #996
  • Apply latest consecutive resize, not earliest. by @peadar in #1019
  • configure: Add --enable-static-LIBRARY options for selective static linking by @andersk in #1024
  • Various configure cleanups and improvements by @andersk in #1048
  • If exec()ing the remote command fails, pause briefly by @cgull in #1053
  • fixed the irc channel link in README by @buzztiaan in #1146
  • .gitignore: add autogenerated files by @black-desk in #1125
  • Don't sometimes hang just after launching ssh by @njaard in #1160
  • Use CLOCK_MONOTONIC_RAW when available by @piru in #1124
  • Add tmux and alacritty to title_term_types by @ncfavier in #1150
  • GitHub actions by @ezzieyguywuf in #1170
  • Add support for generating coverage reports by @achernya in #1173
  • Add fuzzing infrastructure by @achernya in #1193
  • Revert "Remove redundant malloc/free" by @achernya in #1194
  • Separate OpenSSL-based OCB implementation from others by @bbarenblat in #1195
  • Use OpenSSL native OCB-AES implementation by @achernya in #1196
  • Go back to internal OCB implementation by @bbarenblat in #1198
  • Put -lnettle back on the link line when using Nettle by @bbarenblat in #1199
  • Add nettle to the CI matrix by @achernya in #1201
  • OCB: Make primitive AES API explicit by @bbarenblat in #1200
  • OCB: Heap-allocate keys by @bbarenblat in #1203
  • Stop using deprecated Nettle functions by @achernya in #1204
  • OCB: Use OpenSSL EVP instead of deprecated AES by @bbarenblat in #1205
  • Correct memory leak in ocb-aes test by @achernya in #1206
  • Fixes for distcheck by @achernya in #1207
  • Release CI using Github Actions by @achernya in #1208
  • Add -Wno-unused-parameter by @achernya in #1215
  • Switch macOS multi-arch to x86_64+arm64 by @achernya in #1213
  • Audit and fix up format strings by @bbarenblat in #1212
  • Tag mosh 1.4.0 Release Candidate by @achernya in #1216
  • Fetch forcibly while fetching tags by @achernya in #1217
  • Actually evaluate the github actions contains() expression for prerel… by @achernya in #1218

New in Mosh 1.3.2 (Oct 24, 2021)

  • Platform support:
  • Explicitly enable binding to both IPv4 and IPv6 addresses. (Giel van Schijndel)
  • Restore perl 5.8.8 support for RHEL5. (Alexander Chernyakhovsky)
  • Make tests detect UTF-8 locale with a helper executable. (John Hood)
  • Don't print /etc/motd on IllumOS. (John Hood)
  • Print {,/var}/run/motd.dynamic on Ubuntu. (John Hood)
  • Fix build on Haiku. (Adrien Destugues)
  • Disable unicode-later-combining.test for tmux 2.4. This fixes build failures. (John Hood)
  • Bug fixes:
  • In tests, explicitly set 80x24 tmux window, for newer versions of tmux. (John Hood)
  • Work around JuiceSSH rendering bug. (John Hood)
  • Do not move cursor for SCROLL UP and SCROLL DOWN--fixes an issue with tmux 2.4. (John Hood)

New in Mosh 1.3.0 (Mar 27, 2017)

  • New features:
  • Change website URLs from http://mosh.mit.edu to https://mosh.org. (Keith Winstein)
  • Add --no-ssh-pty option for Dropbear compatibility and other issues.
  • Switch to semantic versioning, making this version 1.3.0 instead of 1.2.7.
  • Platform support:
  • Added nonce-incrementing test. (Keith Winstein)
  • Add build-source-package.sh for Debian. (Keith Winstein)
  • Fix CPPFLAGS handling possibly causing curses detection failure. (John Hood)
  • Add an Appveyor/Cygwin CI build.
  • Improve warning-flags detection for 'make distcheck'. (John Hood)
  • Improve robustness of regression tests. (John Hood)
  • Support OpenBSD pledge() sandboxing. (John Hood)
  • Use backward-compatible name for AES in AppleCommonCrypto, fixing builds with older OS X SDKs. (John Hood)
  • Detect clock_gettime() and CLOCK_MONOTONIC carefully, fixing OS X 10.12 + Xcode 7.3 builds. (John Hood)
  • Support older versions of Perl, back to 5.10, fixing RHEL 5 builds. (Anders Kaseorg)
  • Add a Travis OS X CI and release build. (John Hood)
  • Add --help and --version, enabling Automake's 'std-options' checks. (Anders Kaseorg)
  • Add a simple smoke test not requiring tmux, to help validate builds on older platforms including RHEL 5. (Anders Kaseorg)
  • Check for presence of clock_gettime() for OS X, where the symbol may not be resolved on older OS X versions. (John Hood)
  • Fix a memory alignment issue in OCB with ARM/Neon. (Carlos Cabanero)
  • Mosh now runs correctly on Bash for Windows with Windows 10 Insider builds 15002 and higher. (No change in Mosh)
  • Other minor platform compatibility fixes for Mosh sources and tests. (John Hood)
  • Bug fixes:
  • Work around a pty buffering issue causing failed connections on FreeBSD 11, or with Dropbear. (John Hood)
  • Restore '-p 0' option for OS-selected UDP port bindings. (John Hood)
  • Shell hygiene fixes, including better quoting of pathnames. (Anders Kaseorg)
  • Fix typos in project docs. (Jakub Wilk)
  • Fix excess newlines on mosh client startup/shutdown. (John Hood)
  • Exit gracefully, closing session, on pty write or ioctl failure. (John Hood)
  • Fix two bugs that caused mosh-server to consume excessive CPU in certain circumstances. (John Hood)
  • Fix bug that caused text copied from mosh-client to paste as long lines joined by spaces. (John Hood)
  • Documentation improvements. (chenxiaoqino, Ashish Gupta)
  • Use getuid(), not geteuid(), for correct getpw* lookups. (John Hood)

New in Mosh 1.2.6 (Aug 12, 2016)

  • Highlights:
  • huge performance improvements, especially on large terminals,
  • the ability to set a timeout to end dormant sessions automatically, and
  • support for crypto libraries other than OpenSSL (Nettle and Apple Common Crypto).
  • New features:
  • Add Travis CI builds for Linux and Mac. (Anders Kaseorg, others)
  • Add a --local option to run without ssh. (John Hood)
  • Mosh now returns exitstatus reflecting connection success. (John Hood)
  • Add a end-to-end test suite and many tests. (John Hood)
  • Implement timeouts and signals to help address orphaned sessions. (John Hood)
  • Major rework of Mosh's display differencing/rendering code with much improved performance for slow machines. (John Hood)
  • Implement ANSI back/forward tab (CSI CBT, CSI CHT). (John Hood)
  • Do not start user shell until network session starts. (John Hood)
  • Add options for more flexible specification of IPv4/IPv6 hostname resolution. (John Hood)
  • Improved bash completion. (Steve Dignam, HIGUCHI Yuta)
  • Add options for different methods of resolving the remote host address, allowing operation without SshProxyCommand. (John Hood)
  • Platform support:
  • Add configurable support for Apple Common Crypto and Nettle, in place of OpenSSL. Implement base64 locally. (John Hood)
  • Workaround Cygwin select() bug. (John Hood)
  • Updates to Debian packaging. (Anders Kaseorg, Keith Winstein)
  • Workaround a glibc-2.22 issue causing segfaults on Debian Sid. (John Hood with help from many others)
  • Prefer c++ to g++, for systems like FreeBSD where g++ is not usable. (John Hood)
  • Fixes for Illumos Hipster 20151003. (John Hood)
  • Disable -Werror for protobuf code, to resolve a new gcc6 warning. (John Hood)
  • Link test for -fstack-protector-all on an embedded platform. (Baruch Siach)
  • Resolve issue with bswap64() on FreeBSD-CURRENT with libc++-3.8.0. (John Hood)
  • Fix issue with RECVTOS error message on client on FreeBSD. (John Hood)
  • Bug fixes:
  • Remove an assertion causing aborts on Unicode fallback found by fuzzing with afl. (Keith Winstein)
  • Fix a server hang with XON/XOFF on BSD systems. (John Hood)
  • Fix a typeahead-prediction bug that caused display corruption on urxvt. (John Hood)

New in Mosh 1.2.5.95 RC 1 (May 27, 2016)

  • New features:
  • Add Travis CI builds for Linux and Mac. (Anders Kaseorg, others)
  • Add a --local option to run without ssh. (John Hood)
  • Mosh now returns exitstatus reflecting connection success. (John Hood)
  • Add a end-to-end test suite and many tests. (John Hood)
  • Implement timeouts and signals to help address orphaned sessions. (John Hood)
  • Major rework of Mosh's display differencing/rendering code with much improved performance for slow machines. (John Hood)
  • Implement ANSI back/forward tab (CSI CBT, CSI CHT). (John Hood)
  • Do not start user shell until network session starts. (John Hood)
  • Add options for more flexible specification of IPv4/IPv6 hostname resolution. (John Hood)
  • Improved bash completion. (Steve Dignam, HIGUCHI Yuta)
  • Add options for different methods of resolving the remote host address, allowing operation without SshProxyCommand. (John Hood)
  • Platform support:
  • Add configurable support for Apple Common Crypto and Nettle, in place of OpenSSL. Implement base64 locally. (John Hood)
  • Workaround Cygwin select() bug. (John Hood)
  • Updates to Debian packaging. (Anders Kaseorg, Keith Winstein)
  • Workaround a glibc-2.22 issue causing segfaults on Debian Sid. (John Hood with help from many others)
  • Prefer c++ to g++, for systems like FreeBSD where g++ is not usable. (John Hood)
  • Fixes for Illumos Hipster 20151003. (John Hood)
  • Disable -Werror for protobuf code, to resolve a new gcc6 warning. (John Hood)
  • Link test for -fstack-protector-all on an embedded platform. (Baruch Siach)
  • Resolve issue with bswap64() on FreeBSD-CURRENT with libc++-3.8.0. (John Hood)
  • Fix issue with RECVTOS error message on client on FreeBSD. (John Hood)
  • Bug fixes:
  • Remove an assertion causing aborts on Unicode fallback found by fuzzing with afl. (Keith Winstein)
  • Fix a server hang with XON/XOFF on BSD systems. (John Hood)
  • Fix a typeahead-prediction bug that caused display corruption on urxvt. (John Hood)

New in Mosh 1.2.5 (Oct 29, 2015)

  • New features:
  • Bind to a specific IP address with --bind-server. (Philipp Haselwarter)
  • MOSH_ESCAPE_KEY configures escape character. (Timo J. Rinne)
  • Support non-roaming IPv6. (Anders Kaseorg)
  • Implement XTerm mouse mode. (Barosl LEE, Andrew Chin, Louis Kruger)
  • Report Git revision along with version if available. (John Hood)
  • Platform support:
  • Add pselect() emulation. (Jeremie Courrèges-Anglas)
  • OpenBSD, OS X: Fix be64toh-related issues. (Jeremie Courrages-Anglas)
  • ARM Neon: fix gcc4.8 compiling problem(Pasi Sjäholm)
  • NaCl: Conditionally rename main to mosh_main. (Richard Woodbury)
  • FreeBSD: Token pasting, forkpty(), ARM fixes. (John Hood)
  • AIX: Implement CTTY grabbing when TIOCSCTTY is missing (Anton Lundin)
  • OS X: Broaden build support to cover OS X 10.5 through 10.10. (John Hood)
  • Debian: Improve bash-completion install and functionality. (Suggested by Gabriel Filion, John Hood)
  • Bug fixes:
  • Automake/autoconf workarounds. (Anders Kaseorg)
  • mosh-server: Allow startup without PTY. (Keith Winstein)
  • network.cc: Properly close old fd on Socket assignment operator. (Thanks to Igor Bukanov)
  • mosh-server: Allow startup with zero-window-size PTY. (Igor Bukanov)
  • AddrInfo: Fix error message generation when node == NULL (Anders Kaseorg)
  • Timestamp: Prevent integer overflow on Darwin PPC 32-bit (Anders Kaseorg)
  • scripts/mosh: Fix hang when remote closes the connection (Anders Kaseorg)
  • Fix issues with parsing of 256-color SGR sequences. (John Hood)
  • Numerous code hygiene, Coverity, and Clang static analyzer fixes. (Anders Kaseorg, Geoffrey Thomas, John Hood)

New in Mosh 1.2.2 (Sep 29, 2012)

  • Remove warning on out-of-order/duplicated datagrams
  • Add "experimental" prediction mode

New in Mosh 1.2.1 (Sep 29, 2012)

  • Improve performance on lossy links.
  • New diagnostic message when link is dead in only one direction.
  • Use less CPU when link is down. (Keegan McAllister)
  • Use much less CPU when application or mosh-server sends large repeat counts (resolves CVE-2012-2385, reported by Timo Juhani Lindfors).
  • Use less memory when mosh-server is malicious.
  • Fix vttest regression re: wrapping and tabs.
  • Enable roundtrip verifier of terminal emulator correctness when verbose.
  • Remove skalibs as a dependency. (Keegan McAllister)
  • Remove use of poll() and OS X poll workaround. (Keegan McAllister)
  • Include bash_completion file. (ejeffrey)
  • Include UFW firewall profile. (Fumihito YOSHIDA)
  • Warning on out-of-order/duplicated datagrams (or failed nonce increment).
  • Clearer error message on invalid port number.
  • Cleanups to quit scenario when firewalled.

New in Mosh 1.2 (Sep 29, 2012)

  • Remove Boost as a dependency (Keegan McAllister)
  • Add support for FreeBSD, Cygwin, RHEL/CentOS 5, OS X 10.5 on PPC.
  • More verbose and helpful diagnostics. Server now has -v flag.
  • Client now has --ssh= flag to set SSH options (like port)
  • Remove skalibs as a dependency on Debian/Ubuntu (Keegan McAllister)
  • Now passes locale-related env vars over the connection
  • Fix startup script to no longer hang on some Macs (Jay Freeman)
  • Fix terminal emulation and argument parsing on FreeBSD
  • Fix alignment problems on ARM
  • Now prints message of the day
  • Use binary hardening flags where available (Keegan McAllister)
  • Responsiveness and CPU-usage improvements
  • Several terminal-emulation improvements and bug fixes

New in Mosh 1.1.3 (Apr 7, 2012)

  • Builds on armel, armhf, and kFreeBSD.
  • Fixes bug causing occasional missing/extra wraparound copy-and-paste.
  • Eliminates valgrind complaint over unused winsize fields.
  • Close connection after four petabytes (per OCB recommendation).