sshyp v1.5.2
01/07/2024

the fortified flock update - patch two

this release focuses on fixing various bugs, crashes, and visual oddities;
additionally, the new-user setup experience has been vastly improved

compatibility-breaking changes:

- this release is fully compatible with sshyp v1.5.0-v1.5.1
- the minimum Python version has been raised from Python 3.7 to Python 3.8
    ^ this was needed for the new device id changing behavior
    ^ Python 3.7 no longer receives security updates, so this should have minimal impact
    ^ please create an issue on GitHub if any Python version (3.8 or newer) does not work as intended

user-facing features:

- registered device ids can now be removed from the server tweak menu
    ^ all device id menus now stay open until the user manually exits
- changing a client's device id now attempts to automatically remove the previous id from the server
- the extension downloader now supports showing multiple lines of usage information
    ^ sshyp-mfa is taking advantage of this to display the info from the old man page
- basic tweak/init menu text wrapping and terminal-resizing has been added
    ^ the tweak/init radio menus now warn if the terminal needs to be resized to see all content;
    this resizing can be done in real time without restarting sshyp (layout dynamically adjusts)
    ^ this avoids crashes on large radio menus in small terminals (crashes are still possible, but
    only on unreasonably small terminals - this will probably stay the way it is now)
- ssh connections are no longer made from the init menu
    ^ this is to give the user time to register their ssh pubkey with the server
- the user is now warned that gpg key generation may take time and that sshyp should not be terminated
- the user is now warned about risks associated with changing or removing active device ids
- back buttons have been added to menus that were missing a safe way to exit

fixes/optimizations:

- quick-unlock has been fixed - invalid pins have been generated since v1.5.0
    ^ if quick-unlock is not working for you, re-generate your pin after this update!
- extension removal now works on Busybox environments (Alpine Linux)
- instead of crashing with an unhelpful error, sshyp now warns if a valid pinentry program is not found (gpg)
    ^ affects some Alpine Linux 3.19 base installs (pinentry does not always get installed with gpg)
- a recursive curses.wrapper() function is no longer used (fixes menu crash on Alpine Linux 3.19)
    ^ the new method of transitioning menus is more efficient on all platforms
- the wl-paste empty clipboard warning is no longer shown when multiple copies are done within 30 seconds (Wayland)
- quotes are no longer copied to the Termux clipboard on clear
- the entry reader and entry list should now be more visible in light terminals
    ^ in testing, I noticed some solarized dark themes bind color 8 to the same color as the terminal background,
    leading to some invisible text - this will not be fixed (unless custom accent colors are added), as
    I believe this is poor theme design and the fault of the particular solarized dark themes I tested
- entry list text wrapping has been vastly improved
    ^ better utilization of full terminal width
    ^ less prone to splitting entry names in half (should be impossible now)
    ^ no longer crashes on small terminals
- multi-word device ids can now verify via quick-unlock
- various language standardization changes
    ^ all back buttons in menus are now named "BACK"
    ^ all mentions of device ids are now referred to as "ids", rather than "names"
    ^ various non-user-facing variable renamings have also been made
- various menu helptext have been made more clear
    ^ this includes quick-unlock configuration, ssh configuration, device id configuration, and more
