Ripcord version 0.4.10 (2019-7-22)
If you only use Discord, you can skip this version.
- Fixed regression: channel topics not being displayed
- This was caused by a change to the caching system in the previous release. A bit flag was not being cleared properly due a mistake I made when changing a data format to cope with new Slack server behavior.
- I've added some compile-time checks to prevent this particular type of mistake from occurring again in the future.
- Added ability to send @channel, @here, and @everyone mentions.
- Added permissions tracking for sending @channel, @here, and @everyone.
- Added tab-completion for @channel, @here, and @everyone.
- The tab-completion options for these will only be available if your account/user has permission to send them in that particular channel.
- Added permissions tracking for #general (or equivalent) channels. Ripcord will now correctly prevent attempting to send messages in channels where your account/user does not have permission to do so.
- Added logging of the Slack WebSocket host ID upon connecting.
- Added immediate updating of channel topic when changed.
- Improved the ordering of results in the tab-completion popup for usernames.
- A scoring system is now used, which will more highly rank usernames that have a matching prefix. This will be further improved in the future.
- Improved logging for HTTP requests that fail due to permissions/authorization errors.
- Added locale-dependent formatting for some number displays.
- Example: the member counter in the toolbar will now display "1,500" instead of "1500" in American English locale.
- Fixed being able to attempt to send messages in channels that are still open in tabs but which the account/user is no longer joined to.
- The message would not have been accepted by the server, requiring a right-click to discard the failed message.
- Sending and editing messages in these cases will now be prevented by the UI.
Ripcord version 0.4.9 (2019-7-16)
This version updates Ripcord to handle new changes to the Slack service that have started to roll out over the last few days. If you only use Discord, you can skip this version.
- Updated HAR account importing logic (import from browser) to handle changes to Chrome/Chromium's HAR export when "CORS" security policy is in effect.
- Cookies are absent from some HTTPS requests in the HAR data exported by newer versions of Chrome/Chromium in certain workspaces.
- This would cause Ripcord to fail to import the account data from the HAR file.
- Ripcord will now scan more of the data in the HAR file when looking for the cookies.
- Added detailed diagnostics of found and missing data if a HAR import fails.
- Will appear if you click on the "More info..." button in the error dialog that appears if a HAR account import fails.
- Added a "Token Type" field to the details column in the accounts view for Slack accounts.
- Token types will either be "S-Style" or "C-Style". Both should be handled correctly by Ripcord.
- Updated Ripcord to handle changes to Slack that requires cookies to be included for more types of requests to the Slack servers.
- Accounts with "C-Style" tokens require this. No intervention is necessary from the user.
- Added correct display of "@everyone" mentions in chat messages. ("@channel" and "@here" already worked.)
- Added better logging messages for more types of ways that "send message" operations can fail.
- Fixed a potential temporary glitchy behavior in the sidebar when connecting with a Slack account, disconnecting from it, deleting the account, then re-adding it as a new account with the same credentials without restarting Ripcord and while leaving other Slack accounts online.
Ripcord version 0.4.8 (2019-7-10)
- Improved the copy-text-to-cliipboard functionality of the Event Log view. Copying text from the Event Log view will now include every line of the event log that's selected, and with better formatting.
- Fixed a graphical artifact that could appear when using the quick-edit mode on a message, and the message is multiple lines, and the scrollbar appears in the chat text input, and the edited message content is scrolled up or down using either the keyboard or the scrollbar.
- Fixed regression: certain Unicode-standard colon-wrapped emoji (example
:shrug_tone2:) were not being translated into Unicode emoji codepoint sequences.
- This was caused by a mistake which bypassed this code path after the improved @ mentioning system had been added in the previous release.
- It would cause the emoji to appear as plaintext to other Slack users instead of graphical emoji.
- It did not affect custom Slack emoji, and only affected certain Unicode emoji (usually those with skintone or family modifiers.)
- Added ability to tab-complete channel names (like
- Tab-completing a channel name will cause it to show up as a formatted item in the chat message, instead of as a plaintext
- Tab-completing a channel name will cause it to show up as a formatted item in the chat message, instead of as a plaintext
- Overhauled handling of DM and group DM channels.
- Group DMs should now correctly appear in the sidebar in all cases.
- DMs should automatically re-appear in the sidebar if they had previously been closed but then someone else sends a new message in them, the same as the Slack web client.
- Added handling of "convert group DM to private channel" stuff in Slack. The newly converted channel should now show up correctly without requiring a disconnect/reconnect cycle.
- Added ability to list group DMs in the "Workspace -> Channels" window. This allows you to re-open group DMs you have previously closed.
- Added handling of various "
group_left", etc. messages. They should no longer generate warnings for unrecognized message types in the event log.
- Added correct display of "
@channel" and "
- Improved several logging messages in session threaded worker code. Also added a log message which will indicate which session ID is tied to which local db cache file.
- Improved the consistency of the naming of window titles for various views (search, channels list, etc.)
- Reduced code bloat from logging subsystem in Slack session thread worker code.
- Fixed the unread badge indicator not showing up in the top-level "Direct Messages" sections for Slack workspaces when the first message that arrives is for a newly created or opened DM channel.
- Fixed some event log messages having an unnecessary trailing space.
- Fixed share message and edit message dialogs not correctly handling outgoing @ mentions in some cases.
- Fixed the @username completion popup reappearing when typing more characters but without a space character after explicitly dismissing it with the escape key.
Ripcord version 0.4.7 (2019-7-4)
- Increased timeout for resolving irrelevant unread indicators. This is intended to reduce the likelihood of seeing unread indicators on muted and inaccessible channels.
- Fixed potential crash when leaving the Mentions tab open and disconnecting as one user and reconnecting as a different user.
- Added support for resolving cross-workspace user data for workspaces which are part of an Enterprise Grid.
- This should fix usernames (and avatars, etc.) not resolving for users which are not part of the same team/workspace as your user but are in shared channels.
- Overhauled @ mention system for outgoing mentions.
- @ mentioned users will now appear with an underline in the chat text entry box.
- Outgoing @ mentions will no longer have a chance of resolving to the wrong user ID on larger workspaces where multiple users have the same first name followed by one or more space characters.
- Tab completing a user name is now more intelligent about the inserted text. If you write "@John Smith" and then don't tab complete the name, but then move the cursor back to @John| Smith" and press tab to tab complete the user name to turn it into a real @ mention, you will no longer end up with the text "@John Smith Smith" -- you will get "@John Smith" with an underline.
- Added support for the workspace "Display real names" preference set by workspace administrators.
- You will now see "John Smith" instead of "john.smith", for example.
- This also applies to user @ mentions.
- The Slack web client doesn't appear to do this correctly in all cases, but Ripcord will do this correctly. If you prefer the "mixed" way that the Slack web client does this, where the "real name" will be shown above messages, but a different name will be shown inside of messages, please let me know and I may add a preference for it. However, I believe that behavior is confusing.
- Added an additional mitigation against Slack servers delivering erroneous or out-of-date 'new message' events immediately upon connecting.
- Reduced some machine code bloat caused by the code that handles pruning redundant data exchanged with the Slack server during interactive user and channel name completion.
Ripcord version 0.4.6 (2019-6-27)
- Added channel member count to the channel toolbar.
- Added pinned message count to the channel toolbar.
- Added ability to pin and unpin messages.
- Added ability to view list of pinned messages in a channel.
- Added pin icon for messages that are pinned.
- Added more logging information for events which the Slack server fails to respond to or drops.
- Added network activity indicator to message search window.
- Fixed message search results list text sometimes not filling in the name of users who are @ mentioned in the body of the message.
Ripcord version 0.4.5 (2019-6-20)
- Added an experimental option to override the general UI font instead of using
the system (desktop/OS) font.
- Available in the "Experimental" tab in preferences.
- Added immediate graphical feedback when using the mouse to click on items in
the "Go to..." popup by changing the visual selection.
- Dragging the mouse while left-click is held down also now works properly to update the selection immediately.
- You can also now drag the mouse out of the view before releasing to cancel making your choice, like standard list picker views.
- Cleaned up a bunch of redundant error strings in some thread worker code, reducing binary bloat.
- Fixed multi-threaded critical error reporting so that critical errors which
happen on worker threads (example, stalled hard disk resulting in a safety
timeout being triggered) are handled in a smarter way and won't open a ton of
dialog boxes before waiting to abort.
- At least 1 useful message will still be shown before Ripcord aborts, though.
- Fixed right-click acting as a redundant left-click in the "Go to..." popup.
- Fixed the preview text displayed inside of the "choose font" buttons in the preferences window possibly not having the correct anti-aliasing settings after clicking the "Reset" button when the before-and-after-reset fonts have the same family name and same variant name but the two fonts map to the same underlying font in the OS.
- Critical errors on worker threads are now logged to console output (when available) in more useful cases.
- Added an option to use standard Windows OS titlebars and window borders.
- New users will have the preference set to use standard window borders by default. Existing users will continue to use the custom compact window borders by default.
- This option can be changed in the "Fonts & Colors" tab in preferences, above the window border colors/thickness options.
- This was originally implemented to work around native multi-DPI bugs in Windows 8.1 and Windows 10 operating systems, but the bug was fixed by Microsoft in Windows 10 1703 Creators Update (10.0.15002) in 2017.
- There are probably not many users with multi-DPI setups that are still using a version of Windows older than this. However, the option to use custom compact window borders in Windows will remain in Ripcord.
- Changed the FreeType font renderer checkbox on/off option to instead be a
combo box with "DirectWrite (Standard)" and "FreeType" as choices.
- This is only a UI change and doesn't affect existing preferences.
- Changed the voice chat/call window to have the window title "Ripcord Voice Chat" instead of just "Ripcord."
- Added a properties/details view for Slack channels (topic, member count, etc.)
- Added displaying the channel topic in the toolbar.
- Added parsing and display of subteam @mentions.
- Sending subteam mentions not yet supported.
- Added network activity indicators to several things which may have to wait for a slow response from the Slack server (fetching history, fetching files list, fetching full channels list, authorization/sign-in requests.)
- Added outlines around standard non-colored bot message action buttons to help increase contrast in more color schemes.
- Changed several list views (files, members, channels) to always show the vertical scrollbar, so that the scrollbar doesn't rapidly appear and disappear when filtering/searching as you type.
- Fixed display glitch in channel message logs which could make the left few pixels of a divider line be invisible.
- Fixed a potential memory leak when opening the member details view for a user which was deleted from a Slack workspace while the right-click menu for that user was still open but before the details view menu item had been clicked on.
- Fixed window flickering on Linux and Windows for the files list, members list, and bot dialog action windows when the windows are first opened.
Ripcord version 0.4.4 (2019-5-23)
- Added experimental audio option to force Opus codec to encode only in music signal mode instead of in automatic mode.
- This is only useful if you are sending music-like material through the voice chat, but also occasionally talking without any music. The setting will lock Opus to only use music mode instead of automatically switching between VOIP mode and music mode, which may be distracting.
- You should probably not enable this. It's only for very specific circumstances.
- Added experimental audio option to force Opus codec to encode only in music signal mode instead of in automatic mode.
- Added correct line breaking when displaying code blocks in messages.
- Added drawing dark background behind code blocks and code spans.
- Added ability to search entire workspace for users (menu: Workspace -> Members.)
- Added ability to start DMs with any user in a workspace by searching for them.
- Added "details" view for users/members, accessible when searching for users or by right-clicking on a user.
- Added WIP message searching.
- Still very unfinished.
- Fixed being able to open the (useless) member list for 1-on-1 DMs.
- Improved error log message for unrecognized Slack error responses.
Ripcord version 0.4.3 (2019-4-29)
This release is focused mainly on code quality improvements. There are not many new features, but lots of internal improvements.
- Changelog notes are now divided into sections for this release (as a test.)
- Slack and Discord tabs now have better menu bar handling.
- Slack channel tabs will now have a "Workspace" item, and also a "Channel" item.
- Discord channel tabs will now have a "Discord" item, and also a "Channel" item. The "Discord" sub-item in the "View" menu is removed.
- Cleaned up and restructured some initialization routines used in the main chat windows. The time to show the first chat window and opening subsequent chat windows should be slightly shorter.
- Increased the line density in Event Log windows, and improved drawing performance.
- Overhauled internal system that handles parsing the contents of chat messages (links, mentions, etc.) to reduce memory fragmentation and make it easier to add features in the future. This also fixes a minor issue with re-editing messages with links with Markdown titles.
- Cleaned up internal system used for dispatching events between worker threads and the GUI thread. Reduced binary bloat.
- Added a "Workspace" menu, and moved the "All Channels" and "Files" menu items there.
- Added "User" and "Team" menu items to the "Workspace" menu. ("Team" item doesn't yet do anything except display the team name.)
- Fixed newly created DM channels not appearing correctly in the sidebar or in
- This specifically affected the first time a DM channel was created with another user and not subsequent DMs with that user. It should be fixed now, and more robust against future changes to the Slack protocol.
- Fixed the "Fetching..." overlay label causing open menus to close when it first appears.
- Added a top-level "Discord" menu.
- Moved "Friends", "Mentions", and the other entries from the old "View -> Discord" menu to the new top-level "Discord" menu.
Ripcord version 0.4.2 (2019-4-15)
- Fixed spacing of "anti-aliasing" checkbox in fonts prefs
- Fixed height of font "Reset" buttons in fonts prefs when the neighboring button has abnormal height
- Moved toolbar in the event log viewer to the standard location at the top of the window (instead of bottom)
- Slack: added "notion://" as a whitelisted URL scheme
- Slack: fixed potentially incorrect font size for user names in right-click context menu
- Slack: fixed notifications not causing the taskbar entry to flash, even if it's enabled in preferences
- Slack: added preliminary support of code spans and blocks
- This is still very incomplete
- Windows: separate installation of the MSVC 2017 Redistributable is no longer required. The required DLL files are now included in the zip.
- Windows: Fixed broken UI icons on systems that had a system-wide font installed which clashed with the bundled icon font in Ripcord (Font Awesome)
- Ripcord doesn't install any fonts in your system. This is just a measure to avoid name clashing.
Ripcord version 0.4.1 (2019-4-6)
- Added experimental proxy support (SOCKS5 and HTTP) for Discord and Slack
- Discord voice data uses UDP and therefore cannot be proxied by an HTTP proxy
- Slack: added support for Slackbot's "unfurl" message action buttons (other bots and their actions should already work)
- Slack: added support for the special clickable Slackot "send notification anyway" links and actions in messages
- Slack: added several whitelisted URL protocol schemes (ftp, mailto, gopher, etc.) for clickable links.
- Non-whitelisted URL schemes (such as file:// and other unsafe/unkown schemes) are now displayed as links, but cannot be left-clicked on. They can still be right-clicked and the URL can be copied manually.
- Fixed potential crash when closing a Slack chat tab with the emoji picker popup still open
- Fixed size of disclosure arrows for tool buttons with popup menus
- Fixed text potentially being clipped off of right side of combo box buttons
- Fixed numeric spinbox row heights in form layouts being 2px too tall
Ripcord version 0.4.0 (2019-4-1)
This release changes Ripcord to use a new custom Qt styling engine, called PhantomStyle. It was designed for Ripcord, but is useful as a general-purpose QStyle for any Qt program. It's released for free as open source on GitHub: https://github.com/randrew/phantomstyle
- Changed to use a new styling engine, PhantomStyle (was: QFusionStyle)
- Significantly reduced startup time
- Significantly reduced memory usage
- Reduced CPU usage across the board
- Smoother and more responsive window resizing
- Fixed many rendering issues in high DPI
- Custom color themes now behave more predictably (the "button" color is no longer blended with other colors)
- Menus are no longer excessively wide on Windows and Linux
- Improved behavior of opening/closing submenus (faster opening/closing, no longer closes when mouse strays outside of the submenu)
- Alt-key menu navigation is now visualized correctly on Windows and Linux
- The menu-specific system font is now respected on Windows and Linux
- The "Go to..." view can now be clicked on with the mouse to activate items
- Added preference to enable or disable high-visibility scrollbars in chat logs
- Added preference to enable or disable auto-hiding of the scrollbar in the sidebar
- Linux: custom QStyle engines can now be used. Set the environment variable
foowith the name of the style engine you want to use.)
- Note: to use QStyle engines installed by your distro, you will need to have Ripcord run using the Qt libraries provided by your distro. This will require extracting Ripcord from the AppImage and ensuring you have all of the required dependencies installed.
Ripcord version 0.3.13 (2019-3-12)
This release contains a single update to handle changes for Slack username+password sign-in. If you don't use Slack username+password sign-in, you can skip this update.
- Slack: updated the username+password sign-in logic to handle changes to the Slack data payloads. This fixes being unable to sign-in or re-authenticate with a username and password, which began occurring a few hours ago. Browser import sign-in was unaffected.
Ripcord version 0.3.12 (2019-3-6)
- Removed the old accounts view/manager and added a new one with batch selection features
- Bookmark lists in the bookmarks editor now default to expanded instead of collapsed
- Added Ctrl+Shift+Y as a shortcut for Accounts view (Mac: Cmd+Shift+Y)
- Discord: added auto-connecting for accounts. Note: only one Discord account can be set to auto-connect.
- Slack: added auto-connecting for accounts. Any number of Slack accounts can be set to auto-connect.
- Slack: added display of image/icon of channels and users in the bookmarks editor
- Slack: workspaces in the sidebar are now always listed in the same order as the accounts in the accounts view, instead of the order in which the connection is opened
- Slack: removed warning/agreement required to unlock Slack functionality
- Mac: fixed incorrect text size on certain types of toolbar buttons
Ripcord version 0.3.11 (2019-2-25)
This release includes significant changes to the internal Slack data management code. Most of the remaining temporary code that was used to bootstrap Slack functionality has been removed and replaced. This may have introduced some bugs -- if you notice anything broken that wasn't broken in earlier versions, please report it.
- Added an error message box when Qt fails to load the embedded icon resources due to a Qt locale bug
- Discord: added an "Advanced" menu and "Copy Message ID" action to the context/right-click menus for messages
- Discord: added an "Advanced" menu and "Copy Channel ID" action to the context/right-click menus for channels in the sidebar
- Slack: added "Users" view for filtering and searching for users (WIP)
- Slack: added "Files" view for managing files (WIP)
- Slack: added "[Deleted file]" indicator for when a file shared in a message is deleted, instead of displaying "Unnamed file"
- Slack: improved the sorting and results accuracy for user name completion
- Slack: fixed user status custom emoji being shown as text in the user picker that's used in bot message attachment action dialogs and in embedded message shares
- Slack: fixed a situation where resizing a window with a channel log visible with proxied image thumbnails that are scaled down would re-fetch the image from the proxy server with different scaling parameters, causing unnecessary network traffic and disk cache utilization
- Slack: reduced memory usage of per-account channel information cache
- Slack: reduced disk activity when more than 1000 channels from one account are visible simultaneously
- Slack: removed unnecessary redrawing in message log views when reacting to user presence changes and file and attachment thumbnail loads
- Slack: improved overall efficiency of the channel, user, and other data meta-information caching system
- Slack: reduced memory usage for messages which contain many user mentions (1000+)
- Slack: reduced memory fragmentation when quickly scrolling through long lists of users
Ripcord version 0.3.10 (2019-2-4)
- Added Event Log events for failed web image/thumbnail downloads and image decoding
- Added Event Log events that indicate whether a web image/thumbnail was fetched from the server or loaded from the on-disk cache
- Added a "Window" menu to the Event Log window menu bar
- Added HTTP redirect following capability to the web image/thumbnail downloading system
- Slack: added support for enterprise and SSO (single sign-on) authentication
- Slack: added file uploading
- Slack: added account authentication debug view (right click on an account in the Accounts view)
- Slack: added handling of incoming read marker updates for group DMs
- Slack: fixed thread broadcast replies disappearing from main channel timeline after fetching the history of a thread from that channel due to changes in the Slack data format
- Slack: fixed channel history (and some other data) not being re-downloaded after performing a manual account disconnect from the Accounts view and then clicking Connect (reconnections from network loss or other reasons were not affected)
- Slack: fixed the 1+ unread marker not showing up for some types of group DM channels upon connecting
- Mac: fixed the Event Log window not having a colorscheme-colored titlebar
- Mac: fixed Command+W and Command+M not working for the Event Log window
- Mac: fixed Finder not revealing the locations of files from the "Open Settings & Data Path" menu item in Preferences, and "Open Log File Location" from the Event Log window
- Linux: added one-time startup notification about upcoming changes to the PGP key used for signing starting in 2019
Ripcord version 0.3.9 (2019-1-23)
- Added "Open Log File Location" to the File menu in Event Log window
- Added Accounts as a destination in the "Go to..." switcher
- Changed connection status indicator in the status bar to not display the previous status message when opening a new chat window (unless the status is a connection failure)
- Fixed not being able to hold alt (or on Mac, option) when choosing Notifications or Accounts in the "Go to..." switcher to open a new tab in the background
- Discord: changed the handling of account connection loss to use the status bar (and OS notification, if necessary/enabled) instead of creating a modal popup dialog box
- Discord: fixed video thumbnail preview images not loading
- Discord: fixed some thumbnail image URLs fetching the full size image instead of scaled down
- Slack: added full automatic session reconnection after computer sleep or extended internet/network loss
- Note: this is in addition to the automatic reconnection which already existed, but only worked if you were briefly disconnected
- Slack: sent messages which fail to be received by the server no longer immediately vanish from the message log
- Slack: added "Cancel", "Resend", and "Copy to Clipboard" right-click menu items on sent messages which failed
- Slack: added Event Log messages for various connection and session events related to Slack sessions
- Slack: fixed clicking on a message notification from a Slack thread opening the main channel of that thread instead of the thread itself
- Slack: fixed viewing a Slack thread in a tab not automatically clearing notifications that originated from that thread
- Slack: fixed deleted/deactivated user accounts showing up in the @ user completion popup, and also in the bot message action/dialog user pickers
- Mac: added dock icon badge number for notifications
- Mac: fixed clicking on a Slack Notification Center notification not creating a new window if there are no Ripcord windows
- Mac: fixed cases where the "Quit Ripcord" menu action could become disabled due to window state transition issues in popup/floating windows
Ripcord version 0.3.8 (2019-1-13)
- Updated Qt version to 5.9.7 (see note at bottom for more information)
- Changed the system tray/menu bar icon graphic
- Changed the labels and names of several things in Preferences to make them easier to understand
- Added a separate tab for Discord-specific settings in the Preferences window, and moved the relevent settings to there
- Added a "Test Notification" button in Preferences window that generates a test notification
- Added a "File" menu to the Preferences window, and added the menu items "Open Settings & Data Path" and "Copy Settings & Data Path to Clipboard" to it
- Added option to continue running in the system tray on Windows and Linux (disabled by default), and option to continue running after the last window is closed on Mac (enabled by default, like a traditional Mac app)
- Changed Accounts view to open in a tab instead of a dedicated window
- Changed Event Log view to use more compact, font-dependent row sizing
- Removed "Services" top-level menu, moved items into Discord, Slack etc. sub-menus in the View menu
- Added "Open Ripcord Chat Window" menu item to the system tray icon (if system tray icon is enabled)
- Removed old settings and data migration code from the Ripcord startup procedure, slightly improving startup time
- Added vim-like h/j/k/l navigation keys to Notifications view
- Added ctrl+shift+w (cmd+shift+w on Mac) to immediately close a chat window and all of its tabs
- Discord: added option to show/hide your own user's typing indicators
- Discord: added shift-clicking emoji when adding emoji reactions to prevent the emoji popup picker from closing
- Discord: fixed animated emoji showing up for non-Nitro accounts in popup emoji picker
- Discord: fixed font-dependent row sizing in some Discord server roles table/list views
- Discord: fixed the emoji picker popup toolbar button in channel tabs incorrectly becoming toggled after clicking it even if the emoji picker couldn't be opened due to not being able to resolve the channel or current user ID
- Discord: fixed being able to attempt to start multiple voice calls/chats at the same time, resulting in a broken voice call state and requiring a restart of Ripcord to restore functionality. The voice call/chat menu items are now disabled/greyed out if you are already in a voice call/chat.
- Slack: added prominent status indicator (and taskbar flash and OS notification) if an account loses its connection and fails to automatically reconnect. Click the status bar indicator or go to the Accounts view to clear the warning indicator.
- Slack: added re-fetching history (as needed) on reconnect after a full connection failure
- Slack: fixed "Fetching..." label sometimes remaining visible after changing away from a Slack channel tab
- Slack: fixed being able to attempt to send a message to a Slack channel with an account that's not online
- Windows and Linux: fixed left-click on system tray icon not opening/showing a Ripcord chat window
- Mac: added clicking on the dock icon to open a new chat window if there are no chat windows
- Mac: added support for the NSTextInsertionPointBlinkPeriod and NSTextInsertionPointBlinkPeriodOn/Off "defaults" settings for the cursor blink rate
- Mac: added global menu for Cmd+N to create a new window if no windows are open
- Mac: fixed quitting via the dock popup menu or Command-Q potentially crashing or disconnecting non-gracefully due to Qt limitations. A workaround was added which should now cause these methods of quitting to behave correctly. Crashes on quit should now be rare in Ripcord for Mac.
- Mac: fixed the "About Qt..." menu entry being treated as "About Ripcord..."
- Mac: fixed left-clicking on the system menu bar icon (if enabled) causing a Ripcord chat window erroneously to focus itself
- Mac: fixed clicking on a Notification Center notification not un-minimizing the chat window, if there was only one chat window and it was minimized
- Mac: fixed Cmd+W closing the window behind the current window for certain popup windows
- Mac: fixed Notification Center notifications not being created if there were no chat windows but the Ripcord app was still the foreground/active application
- Mac: fixed clicking on a Discord Notification Center notification not opening a chat window or opening the channel of the notification if there were no open chat windows
- Linux: fixed certain touch/gesture events causing Ripcord to abort/crash due to missing Qt subsystem
- Linux: added libnsl.o.1 to the AppImage bundle, which is now required by distros which broke userland compatibility with binaries using older glibc versions (Fedora, in this case). Linux users, please put pressure on your distro and desktop environment providers to stop breaking compatibility with software.
- Note: this release was originally planned to include an upgrade to Qt 5.11 from Qt 5.9, but this has been postponed due to performance regressions in the Qt GUI library (especially on Mac.) I'm still planning to upgrade to Qt 5.11 once these issues can be resolved.
Ripcord version 0.3.7 (2018-12-6)
- Fixed incorrect highlighting in notifications view after clearing a subset of (but not all) notifications
- Discord: added ack-token passing to message read acks system
- Discord: disabled fetching members list for servers with > 4000 users
- Discord: disabled ability to send messages in channels with per-user rate limiting (unless you're a moderator) until this feature is fully implemented in Ripcord
- Discord: changed nonce generation for sent messages to be based on current timestamp instead of sequential IDs counting from 1
- Discord: increased delay between disconnecting and attempting to reconnect (half second -> 5 seconds for first attempt, then 5 seconds -> 15 seconds thereafter)
- Note: the changes above to are intended to reduce the likelihood of a Discord user account being flagged as spam by an automated system, and some are only meant as temporary safeguards until I'm able to resume spending more time developing the Discord subsystem in Ripcord
- Discord: the nick change dialog no longer lets you enter more than 32 characters (the maximum)
- Slack: added OS notification popups for notifications (if enabled in preferences)
Ripcord version 0.3.6 (2018-11-1)
- The preferences window can now be closed by pressing escape
- Reduced memory overhead when viewing large lists of graphical Unicode emoji
- Slack: added 'total unread channels' count badges for regular and DM channel sections
- Slack: added error reporting to the selection list popups from message action buttons and dialogs when the bot/app that generates the selection list returns malformed/broken/empty data
- Slack: added ability for workspace admins to delete the messages of other users
- Slack: slightly reduced the amount of time spent waiting for the history of the first channel to load when initially connecting to a workspace
- Note: The Slack servers take a long time to respond, so Ripcord now tries to load certain things only when they're first needed, such as the list of all threads for your user, in order to start fetching channel history as soon as possible.
- Slack: fixed regression: URL link text in message logs disappearing when resizing the window
- Slack: fixed regression: incorrect text wrapping in messages with URL links
- Slack: fixed not being able to quick-edit messages that were broadcast from a thread when viewing the main channel
- Slack: fixed the text of a thread in the 'in thread...' line in the message log not being updated when the first message in the thread is edited to have different text
- Slack: fixed some cases of unread counts being wrong when viewing a thread in a channel with different sets of read/unread messages
- This release also contains some significant internal changes and optimizations in preparation for 32-bit and 64-bit ARM builds which will be coming in the future
Ripcord version 0.3.5 (2018-10-16)
- Added a new custom color theme parameter
chat_timestampfor the time and date text in chat logs
- Changed the Ripcord event log format to use plaintext instead of a custom binary log format. Any leftover binary logs from old versions will be automatically deleted.
- Improved performance of the Ripcord event log viewer
- Added to event log viewer the ability to live-follow event logs from other running Ripcord processes (via open file dialog in the event log viewer window) instead of only offline viewing
- Optimized on-the-fly icon rasterization, slightly reducing application startup time and peak memory usage
- Added a down-arrow icon in the "scroll to bottom" button in chat logs
- Fixed chat input text box sometimes clipping off the left or right side of input text when wrapping to multiple lines
- Fixed clicking the scroll-to-bottom button causing the chat text input field to lose focus
- Fixed scrolling bug in Ripcord event log viewer where it would sometimes not stay scrolled to bottom
- Discord: added ability to view deleted messages in servers for which your user has moderator-like permissions. Right click and view details to see the contents of the deleted message.
- Note: this will only be available if your user has a moderator-like server-wide permission flag set on one of its roles, or if your user is the owner of the server. This feature is intended to make it easier to spot trolls and spammers who rapidly ping @roles and then delete their message without having to use a bot which records all deleted chat messages.
- Discord: added support for setting non-Latin characters in text channel names
- Slack: added right-click on attached image previews and uploaded images to open URL in browser or copy URL to clipboard
- Slack: added checkerboard pattern (instead of empty space) for in-progress image preview/thumbnail downloads
- Slack: improved support for clickable URLs in message attachments/unfurls (footers, titles, image thumbnails)
- Slack: improved support for user names, channel names, and emoji within clickable URL titles within attachments/unfurls
- Slack: added ability to delete/dismiss "only visible to you" messages from bots
- Slack: added visual feedback when clicking on emoji reaction buttons
- Slack: added pressing ctrl+c (or command+c on Mac) to copy the currently selected message to clipboard without having to right click
- Slack: added red border around target message when in quick edit mode
- Slack: added updating of user account names in the locally saved Ripcord account data when an account user name is changed in the Slack workspace
- Slack: added ability to input sub-sub-domains for Slack workspaces when adding a new account (
- Slack: reduced memory usage of open chat logs and reduced CPU usage when re-rendering modified messages and scrolling
- Slack: tweaked width of emoji reaction buttons in chat logs
- Slack: fixed the default selected action (if any) not being shown in bot message attachment action selection list buttons
- Slack: fixed thread names in chat log for threads whose starting message is an uploaded file without any text message. The thread will now be titled with the name of the uploaded file instead of being the message ID number.
- Slack: fixed user name and timestamp text colliding when the chat log window is too narrow. The timestamp will now have a fade-out applied to it instead of overlapping with user names.
Ripcord version 0.3.4 (2018-9-24)
- Fixed QObject::startTimer warning in console during program startup
- Fixed libpng color profile warnings in console (by suppressing them)
- Discord: added support for the 'priority speaker' permission flag
- Discord: removed 'create rich message' feature
- Note: sending message embeds on Discord as regular user accounts has become discouraged, and will likely make people think you are using scripts to automate your user account.
- Discord: fixed the pinned messages view not starting scrolled to the bottom (newest messages are at bottom)
- Slack: added support for bot/app action buttons and selection lists
- Slack: added support for bot/app dialog boxes and text entry fields
- Slack: added support for slash commands
- Note: does not yet autocomplete or show a list of available commands
- Slack: added displaying more field types in message attachments
- Slack: fixed some fields in message attachments not displaying embedded user names correctly
- Slack: fixed some thread broadcast messages being only visible in the thread instead of also in the channel
- Mac: app bundle now contains correct version information
Ripcord version 0.3.3 (2018-8-29)
- Slack: added support for message attachments (inline link previews, message shares, etc.)
- Note: message attachments are still a work-in-progress. Message actions (buttons) are not yet supported.
- Slack: added support for showing messages from bots
- Note: WebHook bot messages may not appear with the correct per-message custom username
- Slack: foreground user account now appears in the account status area in Ripcord instead of 'No accounts online'
- Slack: added display of user status emoji
- Slack: added context menu for users
- Slack: added ability to start or to go direct messages with users via context menu
- Slack: added ability to 'open' or 'close' direct messages and group private chats
- Slack: added support for sharing messages via context menu
- Note: can not yet share messages across channels
- Slack: bot users are now displayed with a 'BOT' sigil next to their name
- Slack: HTTP URLs with markdown titles are now displayed with the title
- Slack: fixed Slack-mangled & character in clickable HTTP URLs in chat text messages
Ripcord version 0.3.2 (2018-8-18)
- Slack: added "All Channels" view/window
- Slack: added ability to join and leave channels from the All Channels view
- Slack: added handling of join/leave channel events and automatic updating of channels list in sidebar
- Slack: added immediate updating of custom emojis when workspace custom emojis are changed
- Slack: added toolbar button and shortcut (Ctrl+Shift+E) for opening the emoji popup picker
- Slack: added display of file titles to file upload/shares in the message log
- Slack: added ability to enable or disable broadcast thread replies when starting a thread or replying to an existing thread (toggle button in the channel toolbar)
- Slack: updated to avoid a redundant message briefly appearing in the message log when sending messages. This was introduced by a change in the Slack server behavior, but there is now code in Ripcord to handle it smoothly.
- Slack: fixed new incoming "/me" messages not appearing
- Slack: changed to not show channels which you are not a member of showing up in the "go to..." switcher (Ctrl+K)
- Slack: fixed useless link opening in browser when clicking on "post"-type shared files. The post editor view will now open correctly, instead of some raw json.
- Slack: fixed emoji reactions not resizing correctly when font size is changed in channel view
- Slack: fixed workspace custom emoji being removed not clearing the custom emoji graphic from on-screen emoji reactions which used them
- Slack: reduced disk activity when repeatedly downloading large channel lists (was noticeable around 50,000+ channels)
Ripcord version 0.3.1 (2018-8-14)
- Slack: added support for emoji reactions
- Slack: added emoji picker popup window (available in toolbar and Channel menu)
- Slack: custom emoji now update after being changed in the workspace
- Slack: fixed uploaded files not appearing in chat log if they were added after connecting
- Slack: fixed uploaded files not appearing in existing thread history
- Slack: fixed message selection rectangle being occluded by image thumbnails
- Slack: fixed some colon-wrapped emoji not appearing as graphical emoji (like :+1:)
- Slack: removed warning to not report bugs from the Slack "first use" dialog box
Ripcord version 0.3.0 (2018-8-9)
- Slack testing is now available to anyone without having to ask to join
- Graphical emoji has been updated to Unicode 11, the newest standard
- Added "Open Chat Window" action to the View menu in the Accounts window
- Added ability to define custom color themes using a JSON file. See here: https://gist.github.com/randrew/81d4fed3ef72e56bb3d24bf2a564225c
- Note: a GUI editor for color themes will be added in the future
- Reduced memory usage at startup
- Added smarter cache sizing logic, reducing memory usage in some cases
- Fixed flickering artifacts in certain cases when navigating forwards/backwards between different types of views
- Slack: added unread counters/badges for channels
- Slack: added support for sending and displaying Unicode graphical emoji
- Slack: added support for custom Slack emoji
- Slack: added support for emoji aliases
- Slack: added emoji tab completion
- Slack: added username tab completion
- Slack: added resolving of user names in chat text
- Slack: added resolving of channel names in chat text
- Slack: added All Threads view
- Slack: added support for reading threads
- Slack: added support for starting and responding to threads
- Slack: added support for adding public, private, DM, and group DM channels to Ripcord bookmark lists
- Slack: added showing user available/offline in messages, sidebar, and user name tab completion
- Slack: added ability to select messages and copy message text
- Slack: added editing messages by right-clicking
- Slack: added quick-edit of last message by pressing up arrow
- Slack: added ability to delete messages by right-clicking
- Slack: added partial support for notifications
- Slack: added syncing of read/unread markers
- Slack: group DM channels are now titled with the names of the users in the group DM
- Slack: added displaying member counts on group DM channels in sidebar
- Slack: added author message grouping to chat text layout
- Slack: avatars now automatically sized based on font size
- Slack: added timestamps to message group lines
- Slack: added clickable HTTP links in chat (right click for menu to copy link, etc.)
- Slack: added showing when users upload files
- Slack: added showing image thumbnails/previews in chat
- Slack: added ability to click on files that have been uploaded (opens a browser to get the file)
- Slack: added middle-click support for opening channels in a new tab from the sidebar
- Slack: added middle-click support for opening thread links from chat logs in a new tab
- Slack: added displaying sent messages in chat immediately after hitting send
- Slack: messages that contains only a single emoji are now displayed as a jumbo emoji
- Slack: chat text input box now automatically resizes to fit input, and can be manually resized if desired
- Slack: added Slack channels support for Ctrl+K/Ctrl+P/Cmd+K "Go to..." quick-switcher
- Slack: account email addresses can now be remembered for the next time re-authentication is required (passwords are not saved)
- Slack: fixed mouse button forward/back events not being handled in channel tabs
- Slack: fixed not handling Slack's unique usage of specific HTML-escaped entities in plaintext (less than, greather than, ampersand)
- Slack: fixed not sending read markers for own sent messages
- Discord: added logic to only allow sending emoji reactions using Unicode emoji supported by Discord (Unicode 9 and earlier)
- Discord: reduced disk write activity in some cases
- Windows: fixed slower hard drives causing Ripcord to abort with a lock timeout error when waking from sleep or changing power states in certain cases when connected to Discord
- Mac: fixed app bundle not being marked for 10.12 compatibility
- Mac: fixed some cases of app crashing on exit when hitting Cmd+Q soon after waking from sleep (a few remain)
Ripcord version 0.2.95 (2018-06-01)
- Fixed regression: garbage text in clipboard when copying a Discord message using the arrow tool
- Discord: quick edit mode no longer sends a message edit when pressing return if the text of the message is unmodified
Ripcord version 0.2.94 (2018-06-01)
- Reduced application startup time if you have no Discord accounts
- Reduced memory usage if you have no Discord accounts
- Ripcord no longer saves a Discord accounts file if you have no Discord accounts
- Ripcord no longer creates a Discord avatar or emoji cache file if you don't use Discord
- Windows: Ripcord will now rotate old event log files (.riplog) once the file grows over 4mb. (Linux and Mac use UNIX-style temp files and don't need this)
- Linux: Added application categories to the .desktop file
- Discord: fixed event log spam of unrecognized dispatch data type
- Slack: added automatic reconnection on connection loss
- Slack: added use of preferences font in chat display
- Slack: channels now automatically fetch more history as you scroll
- Slack: channels now display user mentions, channel mentions, and HTTP URLs
- Slack: added infinite scroll to channels
- Slack: added overlay in top-right corner when a channel is fetching more history
- Slack: updated handling of client protocol for data loading to newest version
- Slack: reduced loading time of channel history
Ripcord version 0.2.92 (2018-05-17)
- Merged Slack code into master branch, integrating it alongside Discord.
- Note: Join the Ripcord Discord or Slack instances (links on the main website page) and ask for instructions if you want to volunteer for early Slack compatibility testing.
- The Accounts window can now be explicitly summoned from the View menu.
- The Accounts window now has a checkbox to enable or disable auto-hiding once at least one account has been connected.
- Discord and Slack accounts can now be explicitly connected or disconnected from the Accounts window on a per-account basis.
- Note: Only one Discord account can be connected at a time. This is to avoid abuse.
- Discord: Disabled certain features on the Fortnite Discord server to avoid the possibility of placing unnecessary load on the Discord servers.
- Note: This is a temporary, conservative, and defensive measure -- it will be re-enabled once Ripcord has finished adopting some new minimal data loading features available in Discord.
- Mac: The Ripcord app bundle is now signed. No more Gatekeeper warnings.
- Linux: A PGP signature file (.asc) is now available alongside the AppImage builds. My public key is available at https://keybase.io/cancel
Ripcord version 0.2.90 (2018-04-02)
- This is a Linux-specific bugfix release to work around a bug with Arch Linux 2018-04-01
Ripcord version 0.2.89 (2018-04-01)
- added keyboard controls to the notifications view
- fixed some text alignment and margins issues in the notifications view
- fixed button sizes being too small with some fonts in the notifications view
- the Discord mentions view now opens in a tab instead of in a popup window
- fixed embed/link previews in the Discord mentions view preventing keyboard navigation
- changed bookmarks icon in the sidebar and View menu to a bookmark symbol
- improved performance of the notifications view when resizing the window with more than 10,000 notifications present (should be instant now)
Ripcord version 0.2.88 (2018-03-30)
- added option for the size of emoji in chat
- fixed regression: memory leak when closing a channel tab in certain cases
- fixed upper-case letters in the user list filter causing no results to be shown
- rearranged some panels in the preferences dialog
Ripcord version 0.2.87 (2018-03-29)
- the user list view will now use the sidebar font set in preferences
- added warning message when trying to send messages over 2000 characters (the limit) on Discord
- fixed left/right overflow scroll buttons appearing on the tab bar in the server/guild settings window on certain desktop and DPI combinations
- fixed Discord animated emoji from always being replaced with text when trying to send them in a chat message (ripcord displays animated emoji as still images)
- fixed non-Discord Nitro users being shown animated emoji in the emoji tab completion menu
- reduced hitching when changing font preferences
- tweaked size of icons in the channel/tab toolbar to adjust based on system font size
- tweaked vertical alignment of server text in the sidebar and user names in the user list
Ripcord version 0.2.86 (2018-03-28)
- added option to send your typing status
- the "send typing status" option will be set, by default, to whatever the "show other users typing" option is. feel free to change it afterwards in the preferences.
- added an invite management tab to the server/guild settings window. view and delete invite links that have been generated on your server.
Ripcord version 0.2.85 (2018-03-27)
- the friends view now opens in a tab instead of in a popup window
- added a "open friends view" button to "pending friend request" notifications
- added bindable hotkeys: toggle mic mute, set mic muted, and set mic unmuted
- added a disclaimer for Mac and Linux systems on the voice hotkeys binding page
- added more informative text at the bottom of call windows
- fixed call window latency indicators causing text to jiggle when changing rapidly
- added an option to enable showing user status indicators (the colored circles) at the top of chat messages. defaults to off.
- added link to Ripcord website in the Help menu
- added 'go' buttons to mentions popup window that jump you to the channel the message came from
- fixed regression: the Channel menu bar item could disappear when going back and then forward through the notifications view
Ripcord version 0.2.84 (2018-03-25)
- overhauled tab and navigation system. notifications view now behaves like other tabs, with forward/back buttons.
- following a notification to the channel it came from will no longer create a new tab. it will change within the current tab.
- added a tab icon for the notifications view
- added "dismiss all" toolbar button for notifications view
- changed to allow multiple notification view tabs open at once, if desired
- changed tabs to allow for very large system font sizes without clipping
- moved the forward/back menu items for tab history to the View menu
- fixed 1-pixel tall artifacts underneath main menu bar on Windows 10 high DPI
- updated save format for saved tabs. your old saved tabs will be updated automatically.
Ripcord version 0.2.83 (2018-03-21)
- added support for newer Discord encryption format for voice chat
- added workaround for Discord voice server bug that caused decryption failures and not being able to hear people
- added more feedback for voice connection state in bottom left of voice chat windows (will show if unable to find route to servers, etc.)
- overhauled DPI scaling support. fixes many widget rendering artifacts on Windows 10 at 125% scaling. fixes default font sizes being too small on Windows 10 at 150% and 175% system scaling.
- note: you may need to reset your Ripcord fonts on Windows 10 if you are on high DPI
- fixed user avatars becoming placeholder circles in DM channel tabs after a server failover/reconnect
- added more accurate display of font sizes in font prefs
- changing the sidebar font now applies immediately and no longer requires restarting or opening a new window to take effect
- fixed up spacing and layout issues with numbers in unread badges on mac, linux and high-DPI windows
Ripcord version 0.2.80 (2018-03-17)
- reduced cpu and memory usage when sidebar has a lot of stuff in it and the view is scrolled to the bottom
- added an option to adjust extra spacing between messages (defaults to 0, same as before)
Ripcord version 0.2.78 (2018-03-12)
- added auto-update checking (can disable in prefs). it doesn't auto-install, just notifies when a new version is available.
- reorganized and revamped the controls in the notifications view, and added text labels to the dismiss buttons
- lots of small internal changes to the notifications system, preparing for more control over notifications in the next version
- reduced cpu usage when receiving many @mentions (defensive measure against botspam attacks)
Ripcord version 0.2.77 (2018-03-03)
- fixed regression: unread counters on discord servers not updating when they're collapsed
Ripcord version 0.2.76 (2018-03-03)
- added option to create newline when pressing return inside of a code block
- added shortcut for opening mentions view
- added standard shortcuts for closing mentions view and pinned messages view
- reduced background cpu usage when joined to Discord instances where many users are entering/leaving voice channels (hundreds)
- reduced background cpu usage for users with large direct message channel counts (thousands)
- fixed: being able to try to pin join/leave notification messages
- fixed: sender and receiver being swapped for @mention notifications