Osa1 Tiny Versions Save

A terminal IRC client

v0.12.0

4 months ago

Thanks to @nate-sys and @jubalh for contributing to this release.

New features

  • New TUI text attributes italic and strikethrough added to the config file parser. These can be combined with the existing bold and underline attributes. (#409, #404)
  • Added support for key bindings that run commands. Example:
    key_map:
      ctrl_d:
        command: quit
    
    (#403, #410)

Bug fixes and other improvements

  • Default config updated with better comments, color config for join/part messages. (#412)
  • /join command errors now print usage help once instead of twice. (c512887)
  • Fix showing timestamp of the next message or activity after a /clear. (#417)
  • Fix a crash when the config file is deleted before a /reload. (3ea5678)

Note on build names

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

v0.11.0

9 months ago

Thanks to @ALEX11BR and @trevarj for contributing to this release.

New features

  • /close and /quit commands now take optional message parameters to be sent with PART and QUIT messages to the server. (#365, #395)
  • Added support for SASL EXTERNAL authentication. See the wiki page for more details. (#196, #363)
  • Implemented rendering italic, bold, underline, strikethrough text. (#364, #403)
  • You can now specify "notify" and "ignore" settings of tabs in the config file and when running the /join command. See the example config file for details. (#344, #118)

Bug fixes and other improvements

  • Fixed handling of CR, LF, and tab characters in IRC format parser. IRC RFCs don't allow standalone CR and LF characters, but some servers still send them. tiny now shows those characters as single space. Tab characters are shown as 8 spaces, as in tiny 0.9.0. This bug was introduced in 0.10.0 with 33df77e. (#366)
  • Fixed running $EDITOR on macOS 12. Previously, on macOS 12, changes in the temporary file would not be read properly when $EDITOR is closed.
  • Passwords can now be read from external commands (e.g. a password manager). See README for details. (#246, #315)

Note on build names

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

v0.10.0

2 years ago

Thanks to @trevarj for contributing to this release.

New features

  • New command /quit added for quitting. Key binding for quitting (C-c enter) works as before.
  • Key bindings can be configured in the config file. See the wiki page for details. (#328, #336)

Bug fixes and other improvements

  • /msg <nick> <message> command now accepts anything as <nick> as long as it doesn't start with #. (#324)
  • Error message when sending a message in the mentions tab improved. (#329)
  • Logger now prints "Logging ended at ..." lines when you close a tab or exit tiny. (8061042)
  • Minor improvements in logging (d0505f2, bbb4b81)
  • /join (without arguments) now rejoins the current channel. (#334)
  • Handling of IRC formatting characters (colors etc.) in TUI and logger improved:
    • TUI now handles "reset" control character, to reset the text style to the default.
    • Logger now filters out all control characters before writing to the file. (#360)

Note on build names

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

v0.9.0

3 years ago

Starting with this release, tarballs on GitHub are now built on Ubuntu 20.04 (instead of 18.04).

Bug fixes and other improvements

  • Fixed highlighting tabs when /ignore is set. (#291)
  • /statusline removed. See 6abc671 commit message for the motivation.
  • Backspace handling in newer xterms fixed. (#295)
  • When NickServ identification is used tiny now send identify messages when changing nicks. (#252)
  • Tab characters in incoming messages are now rendered as 8 spaces. Previously tab characters would be removed, so the message "\thi" would be rendered as "hi" instead of " hi". (#305)
  • Fixed a bug when getting RPL_NAMREPLY from a server for channels we haven't joined. Previously we would create a channel in the TUI for each channel in the response. (#302)
  • tiny now checks nick lists and realnames in the config file to make sure they are not empty. (#314)

Note on build names

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

v0.8.0

3 years ago

Thanks to @trevarj and @shumvgolove for contributing to this release.

New features

  • Channels with join/leave events are now highlighted with a yellow-ish color. Default color can be overridden in the config file. (#262)

Bug fixes and other improvements

  • It's now possible to build tiny with stable Rust 1.48 or newer. Previously tiny required nightly toolchain. (#241)
  • Fixed a TUI bug when scrollback is set. (#265)
  • In builds without desktop notification support, /notify commands now print a helpful message on how to enable it. Previously /notify would behave as if desktop notification support is enabled but notifications would not work. (#270)
  • Fixed a bug when showing messages relayed by bouncers. (#271)
  • Fixed losing input field contents when pasting a multi-line text and $EDITOR is not set. (#280)
  • Multi-line pastes now inserted into the cursor location. Previously the text would be inserted at the end of the current line.
  • Fixed a bug when showing messages with host mask as message target. (#278)

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.

v0.7.0

3 years ago

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.

v0.6.0

3 years ago

Thanks to @trevarj, @Kabouik, @meain, and @jbg for contributing to this release.

New features

  • It's now possible to build tiny with rustls instead of native-tls. See README for instructions. (#172)
  • A new optional server field 'alias' added to the configuration file for specifying aliases for servers, to be shown in the tab line. This is useful when a server address is long, or just an IP address, or you want to show something different than the server address in the tab bar (#186).
  • tiny now has a proper CLI, supporting --help and --version arguments.
  • Input field now grows vertically on overflow, instead of scrolling. The old scrolling behavior is used when there isn't enough space in the window to extend input field vertically. (#101)
  • A new setting 'scrollback' added to limit max. number of lines in tabs. The limit is off by default (old behavior). (#219)

Bug fixes and other improvements

  • TUI: Tab bar scrolls to left after closing tabs to fit more tabs into the visible part of the tab bar (#164). See #164 for an example of previous behavior.
  • tiny now reads the system cert store (for TLS connections) only once, instead of on every new connection. (#172)
  • A bug when rendering exit dialogue (shown on C-c) fixed.
  • TUI: A text field bug is fixed when updating the scroll value after deleting a word with C-w.
  • Fixed a panic when a nick list of a server or the default nick list is empty. (#184)
  • Fixed handling of invalid UTF-8 sequences in messages. (#194)
  • A few crashes when connecting to some IRC servers fixed. tiny is now more resilient to non-standard-conforming messages from servers. (#211)
  • Fixed a bug in logger when the channel name contains forward slash character. (#214)
  • Fixed editor support (C-x). Old implementation used to block tiny's event loop while an editor is running and cause connection timeouts when it runs for too long. Editors are now run in a separate thread without blocking tiny's event loop. (#185)
  • tiny now breaks long lines without whitespace into multiple lines. Previously we'd only break lines at whitespace, so long lines without any whitespace would be cut off at the end of the screen. (#202)

v0.5.2-test

4 years ago

This is a test release generated by the 'release' workflow.

v0.4.1

4 years ago
  • Fixed rendering bugs with ncurses 6.1 (#96).

v0.4.2

4 years ago
  • Previously tiny showed a - line in a private message tab when we got a QUIT message from the target of the tab. It now shows a + line when the user quits and then joins to a channel that we participate in.
  • A bug that caused tiny to crash when dbus daemon is not configured properly fixed (#97).