Skip to content

v0.7.0

Compare
Choose a tag to compare
@github-actions github-actions released this 20 Sep 16:30
· 196 commits to master since this release

Thanks to @trevarj, @kennylevinsen, and @LordMZTE for contributing to this release.

New features

  • New command /help added. (ec00007)
  • /names now sorts nicks lexicographically. (#235)
  • To make joining channels with +R mode (which usually means joining is only allowed after identification via NickServ) more robust, tiny now makes 3 attempts to join a channel, with a 10-second delay after each attempt, when it gets a 477 response and the user has NickServ identification enabled (nickserv_ident field in the config). Even though we send IDENTIFY messages (after RPL_WELCOME) before JOIN messages (after RPL_ENDOFMOTD), sometimes identification takes too long and JOIN command fails with a 477. We now try joining again with 10 seconds breaks, up to 3 times. (#236, #240)
  • When $EDITOR is (n)vim or emacs, C-x now places the cursor at its location in the input field in the vim/emacs buffer. (#243)

Bug fixes and other improvements

  • Fixed a TUI bug introduced in 0.6.0 when pasting long single-line text using C-x. (#225)
  • Fixed a TUI bug introduced in 0.6.0 when rendering a long line of join/leave events. (#227)
  • Password fields in the default config file (created automatically on first run) are now commented-out, to allow connecting to tiny IRC channel with the default config without having to make changes. (2af2357)
  • tiny now re-sets current away status on reconnect. Previously the away status would be lost. (#234)
  • Improved RPL_YOURHOST parsing for parsing server names of some non-standard-conforming servers. This is not a user-visible change unless you're connecting to servers that don't follow IRC standards closely. (#239)
  • Fixed a TUI crash when the terminal height is less than two lines.
  • Debug logs (enabled with TINY_LOG env variable using env_logger filter syntax) are now printed to tiny_debug_logs.txt file in the log directory. If logging is disabled then the file is created at tiny's working directory. (#238)
  • Handling of IRC messages with ambiguous prefix (when it's unclear whether the sender is a server or nick) improved. tiny should now work better with some bouncers such as soju. (#249)
  • Fixed a bug in IRC message parser. (#251)
  • Fixed a bug where on spotty connections a server tab (not the entire application) would get stuck in "Connecting..." stage (while opening a socket to the server) and not respond to user commands like /connect. (#255)
  • Fixed a bug where tiny would print "Reconnecting in 30 seconds" on connection error (or timeout) but would actually reconnect in 60 seconds instead of 30. (bfd4e19)
  • TUI now adds a nick to the tab completion list of a channel when the user posts for the first time. This is to support tab completion on some servers that don't implement the RFCs properly. (#253)
  • Logger is slightly improved to work better with servers that don't implement the RFCs properly. (85051ae)
  • Fixed a bug when first argument to /msg is a channel rather than a nick. The command is supposed to be used for sending a message to a user so we now do more error checking and reject the command if the first character is for a channel name. (62df491)
  • Implemented channel name case sensitivity rules according to RFC 2812. This fixes a bug when we join e.g. #MyChannel and someone sends a message to #mychannel. In that case some servers send PRIVMSGs to users in the channel with the sender's encoding (#mychannel), which would previously cause tiny to (incorrectly) create a new tab for the channel #mychannel instead of showing the message in #MyChannel. (#248)
  • TUI tab bar layout fixed when channel names contain non-ASCII unicode characters. (0c86a32)
  • tiny binaries are much smaller, thanks to removed features in dependencies like tokio, futures, and env_logger. For example, libdbus + libssl build is 4.9M in 0.6.0 and 4.0M in 0.7.0.

Note on build names

  • tiny-ubuntu-18.04-dbus: Desktop notifications enabled, uses rustls for TLS.
  • tiny-ubuntu-18.04-libssl-dbus: Desktop notifications enabled, uses native TLS library (dynamically linked) for TLS.
  • tiny-ubuntu-18.04-libssl: Desktop notifications disabled, uses native TLS library (dynamically linked) for TLS.
  • tiny-ubuntu-18.04-static: Desktop notifications disabled, uses rustls for TLS. No dynamic dependencies.
  • tiny-ubuntu-18.04: Desktop notifications disabled, uses rustls for TLS.