All Versions
Latest Version
Avg Release Cycle
48 days
Latest Release

Changelog History
Page 3

  • v50200.2.0 Changes

    March 15, 2019

    ๐Ÿ†• New features:

    • Channel scrolling mode has been merged with message select mode. There are no longer two separate modes that the user must switch between for fetching additional messages and operating on displayed messages.
      • As part of this change, message gaps in the local client history are displayed as special entries in the message history, along with specific key commands that can be used to fetch additional messages at those points.
    • The /msg command now takes optional user and message arguments to make it faster and easier to initiate discussions with specific users: /msg [@user [message]]. This resolves enhancement issue #471.
    • The /search and /flags post listings now support navigating to a post by pressing Enter when it is selected. This causes the client to switch to the post's channel and select the post in message selection mode.
    • If smart editing is enabled and a triple backtick is typed at the start of a line, input automatically switches to multi-line mode. Fixes issue #467.
    • Editor status is now tracked on a per-channel basis. The following editor state is tracked on a per-channel basis and is restored between channel changes:
      • Incomplete message (editor) entries.
      • Multi-line editor mode.
      • Input history scrollback position.
      • Incomplete message reply-to or editing-previous-post status. This resolves enhancement issue #445.
    • Adds the /user command as an alias for the /msg command.
    • Channel auto-completion mode indication of the user's membership in the channel is more clearly indicated.
    • A new configuration item (directChannelExpirationDays) is added. In release 50200.1.0, the channel sidebar management was updated to automatically remove direct channels if there had been no activity for 7 days. This configuration item allows overriding that time period, (thanks, Brent Carmer).
    • A new configuration item (cpuUsagePolicy) is added. Valid values are single and multiple which determines how many of the available processors Matterhorn will make use of. The default is multiple. This resolves enhancement issue #484.
    • Additional information on managing attachments (relevant to issue #485).

    ๐Ÿ†• New command-line options:

    • -k: print the active keybindings in plain text format. The output includes customized bindings in the current configuration, or the defaults if -i is used.
    • -K: print the active keybindings in Markdown format. The output includes customized bindings in the current configuration, or the defaults if -i is used.

    ๐Ÿ“š Documentation updates:

    • The FAQ is updated to help users with terminals that don't support hyperlinks (thanks, Bob Arezina).
    • Updated the Design notes and development Practices documentation for Matterhorn.
    • Matterhorn releases now include the default keybindings in a Markdown document,

    ๐Ÿ› Bug fixes:

    • Updated to mattermost-api 50200.1.2 which includes a bugfix for a server "UploadResponse" with a null client_ids field. This manifested as an error report when attempting to post a message with an attachment to a general channel.
    • Misc process and maintenance changes to re-enable and update the Travis builds (fully passing now).

    โšก๏ธ Dependency updates:

    • Added support for building with GHC 8.6 (thanks, Adam Wick).
  • v50200.1.2 Changes

    January 24, 2019

    ๐Ÿ› Bug fixes:

    • Permit user creation timestamp to be optional in server responses (#483)
  • v50200.1.1 Changes

    December 06, 2018

    ๐Ÿ› Bug fixes:

    • The file browser now deals gracefully with directories containing broken symlinks.
  • v50200.1.0 Changes

    December 05, 2018

    ๐Ÿš€ This release contains many new features and changes. Please read carefully!

    ๐Ÿ†• New features:

    • Matterhorn is now supported on CentOS 7. See the GitHub release tag for a prebuilt CentOS 7 binary.
    • Matterhorn's channel sidebar has changed significantly:
      • Matterhorn now only shows recently-active DM channels in the sidebar rather than showing all users. This change brings Matterhorn closer to the behavior of the official web client and reduces clutter. However, this change may be disorienting since previously all users were shown in the sidebar. To begin a chat with a user absent from your sidebar, use the /msg command.
      • The sidebar channel group headings have been renamed to reflect the new changes and to match those of the official web client.
      • Group DM channels are now displayed in the new Direct Messages section along with one-on-one DM channels.
      • Each channel group heading now displays an asterisk if any channels in that group have unread activity.
    • The autocompletion user interface has been dramatically improved.
      • The command completion UI now appears automatically if the user types a slash at the beginning of the prompt. Any text typed after the slash is matched case-insensitively on all client-side command names and descriptions, with a preference for matching command names. Tab then cycles through the displayed alternatives.
      • The user completion UI now appears automatically if the user enters a user sigil ("@"). Text typed after the sigil searches usernames, nicknames, and full names. Users in the current channel appear first and users not in the current channel appear next, marked with an asterisk and a help hint. Tab cycles through completion of the alternatives.
      • The channel completion UI now appears automatically if the user enters a channel sigil ("~"). Text typed after the sigil searches channel names, headers, and purposes. Channels of which the user is a member are listed first, with other channels following. Tab cycles through completion of the alternatives.
      • The fenced code block language name completion UI now appears automatically if the user types three backticks to begin a code block. Text following the backticks searches known language names case-insensitively with a preference for prefix match. Tab cycles through the alternatives.
    • Matterhorn now supports adding attachments to posts:
      • The default binding of C-x shows a file browser.
      • Enter in the file browser selects a regular file for attachment (or, if used on a directory, navigates to that directory in the browser).
      • The default cancellation binding of Esc closes the browser.
      • The default binding of o opens the selected browser entry using the URL opening command.
      • Once a file is attached, an attachment count is displayed above the message editor.
      • Pressing C-x again will open the attachment list for the current post, where existing attachments can be removed (d) or new ones can be added (a).
    • The channel selection mode (C-g) user input is now performed with a line editor, meaning that all of the text-editing keybindings that are supported in the message editor are now supported in channel selection mode.
    • Channel sidebar cycling keys (C-n, C-p) now cycle through all channels including DM channels, not just non-DM channels as before.

    ๐Ÿ†• New commands:

    • /reconnect: forces a disconnection and reconnection of Matterhorn's websocket connection in case of network connection trouble. Ordinarily Matterhorn will time out and determine that its connection needs to be reestablished, but this command may be useful for other situations.
    • /hide: hides the current single-user or group direct message channel from the sidebar. The channel will reappear later if new messages arrive in the channel.

    ๐Ÿ†• New key events:

    • show-attachment-list (default C-x): show the attachment list or file browser to attach a file to the current post.
    • add-to-attachment-list (default a): in the attachment list, open the file browser to select an additional file to attach to the current post.
    • delete-from-attachment-list (default d): in the attachment list, delete the selected pending attachment. (This does not affect the original disk file.)
    • open-attachment (default o): in the attachment list or file browser, open the selected file or attachment with the URL opening command, if one is configured.

    ๐Ÿ†• New theme attributes:

    • fileBrowser: the base attribute for the attachment file browser.
    • fileBrowser.currentDirectory: the attribute for the file browser's heading displaying its working directory.
    • fileBrowser.selectionInfo: the attribute for the file browser's footer displaying information about the selected file or directory.
    • the attribute used for directories in the file browser.
    • fileBrowser.block: the attribute used for block devices in the file browser.
    • fileBrowser.regular: the attribute used for regular files in the file browser.
    • fileBrowser.char: the attribute used for character devices in the file browser.
    • fileBrowser.pipe: the attribute used for named pipes in the file browser.
    • fileBrowser.symlink: the attribute used for symbolic links in the file browser.
    • fileBrowser.unixSocket: the attribute used for Unix sockets in the file browser.

    ๐Ÿ†• New command-line options:

    • -i/--ignore-config: start Matterhorn with no configuration, i.e., ignore the default configuration.

    ๐ŸŽ Performance improvements:

    • Matterhorn now renders its user interface more efficiently, resulting in improved input latency, especially on larger window sizes.
    • Matterhorn now makes fewer requests on startup, resulting in lower server API burden and improved startup performance.
    • Message username and channel name highlighting is now more efficient.

    ๐Ÿ› Bug fixes:

    • Username highlighting in messages now supports usernames containing periods and underscores (#373)
    • Matterhorn will now ask for a keypress if an interactive URL opener exits with a non-zero exit status, to allow the user to observe any error output before returning to Matterhorn (#462)
    • /group-msg now supports username arguments with sigils.
    • Matterhorn now properly updates channel view timestamps under the right conditions (#449)
    • The bundled notify script now uses bash, not sh, to get extended [ functionality.


    • The help interface now takes up the entire screen when it is active.
    • The user list overlay for /msg now respects the direct message restriction server setting (#378).
  • v50200.0.0 Changes

    November 07, 2018

    ๐Ÿš€ This release is compatible with server version 5.2.

    ๐Ÿ†• New features:

    • The channel list sidebar can now be shown and hidden:
      • With the /toggle-channel-list command
      • With the default binding of F2
      • With the customized keybinding name of toggle-channel-list-visibility
    • The account preference for teammate name display is now honored and takes precedence over the server default; at present, only the "nickname" and "username" settings are supported.
    • Channel selection mode now matches case-insensitively if the input is entirely lowercase and matches case-sensitively otherwise.
    • Non-public channels now include their privacy level in the channel header.
    • A bundled "talky" script is now provided for working with the Talky video chat service: (Thanks @tommd)
    • Theme styles now support italics in terminals that support it. See the Theme help info for details.
    • A new key event, "focus-next-unread-user-or-channel", was added. This event changes to the next channel with unread messages, preferring direct message channels. This event has no default binding. (Thanks Brent Carmer)

    ๐Ÿ› Bug fixes:

    • Multiline mode in the built-in message editor is now preserved upon returning from editing with an external editor (#419)
    • Mixed formatting in hyperlink labels is now supported (#418)
    • When dealing with posts internally, we now use the post's root ID, not its parent ID, everywhere since parent IDs are unused (#404)
    • Private channels are no longer included in the tab-completion alternative list
    • Theme customization files can now use empty style lists.
    • Message selection mode now disallows selection of deleted messages.
    • The disconnection message is now displayed in a layer to avoid layout reflowing in the channel header.
    • Message view mode now properly displays reply parent (#397)
    • The startup team listing is now sorted by team name.
    • We now log websocket timeout and generic exceptions (#385)
  • v40901.0.0 Changes

    May 03, 2018

    ๐Ÿ†• New features:

    • Improved logging infrastructure. Matterhorn now keeps a running bounded internal buffer of log messages that can be written to disk at any time, in addition to supporting the usual mode where all messages are logged to a file. This feature includes:
      • Four new commands:
        • /log-status: check on whether Matterhorn is currently logging at all.
        • /log-start <path>: start logging to the specified file.
        • /log-stop: stop any active logging.
        • /log-snapshot <path>: dump the internal log message buffer to the specified file.
      • A new optional configuration setting, logMaxBufferSize, which is the number of entries in the internal log buffer.
    • Added a new message selection mode keybinding to view individual messages (default: v, keybinding name: view-message). This keybinding causes the selected message to be displayed alone in a pop-up window in which horizontal and vertical scrolling can be used to view the entire message. This is especially useful in cases where a message contains a code block with lines that could not be wrapped. (#377)
    • Message selection mode now supports selection of error and info messages in addition to just user posts.
    • Message selection mode now supports yanking the contents of all messages, not just messages with verbatim content as before. The keybinding name for this is yank-whole-message and defaults to Y. When this binding is used, the entire message's Markdown source is copied to the system clipboard. (#171)

    Other changes:

    • The help screen now supports the scroll-top and scroll-bottom events (defaulting to the Home and End keys, respectively).
    • Exceptions related to spurious network problems with getAddrInfo no longer cause client error reports (#391).
  • v40900.0.1 Changes

    April 26, 2018

    ๐Ÿ› Bug fixes:

    • Terminal escapes are now sanitized from local user input and user-provided values from the server (#390).
    • The Cabal package now includes XML syntax and DTD files in the manifest.
    • Releases now ship the syntax DTD.
  • v40900.0.0 Changes

    ๐Ÿš€ This release supports Mattermost server version 4.9.

    ๐Ÿ†• New features:

    • Matterhorn now supports activity notifications by invoking a user-configured external command. The external command is configured with the activityNotifyCommand setting. Matterhorn also includes an example notification script for Linux-based systems in the notification-scripts directory. Thanks to Jason Miller for this feature!
    • Matterhorn now bundles syntax highlighting language descriptions rather compiling them into the binary. This resolves issue #372. The XML descriptions are in the Kate project's language description format and are provided with their accompanying GPL license. Syntax description files are loaded from a prioritized list of directories. The list of directories is configurable using the optional syntaxDirectories configuration setting. See sample_config.ini for details.
    • Matterhorn now tab-completes available syntax highlighting language options on lines starting with the code block Markdown syntax (three backticks) (#354).

    Other changes:

    • Tab-completion now always fills in user sigil on username and nickname completions, and fills in channel sigils on channel name completions.
    • Usernames in posts are now only highlighted when a user sigil is present.

    ๐Ÿ› Bug fixes:

    • Matterhorn now switches to a channel after it has been joined (#355).
    • Fixed emote editing (#388).
  • v40800.0.3 Changes

    ๐Ÿ› Bug fixes:

    • Fixed a bug that prevented DM channel changes when the DM channels were named with user nicknames (#384)
    • "Resource vanished" exceptions will no longer be silenced during async work.
  • v40800.0.2 Changes

    ๐Ÿ› Bug fixes:

    • Matterhorn now properly handles servers with users whose usernames match existing channel names.
    • The flagged post list now ignores flagged posts from channels of which the current user is no longer a member.
    • Tab-completion now supports nickname completion in the presence of user sigils (relevant to #382).
    • The /search command now copes better with an empty string as input (#359).
    • The group-msg command now switches to the relevant channel if it already exists (#367).

    Other changes:

    • Message edits no longer cause channels to appear to have unread activity.
    • The Haskell runtime's idle garbage collector was disabled, reducing Matterhorn's idle CPU usage from 2-4% on some systems to zero.