Ripcord version 0.4.24 (2020-3-14)
Slack made an unexpected change to their protocol in the last 6 hours. It was causing uploaded files to not be visible, as well as newly invited Slack users not being visible. This update to Ripcord includes a fix to handle the change, and also some other updates which were ready to be released.
- Tweaked status bar connection change icons to match the icons from the Accounts view.
- Slightly reduced memory usage at startup.
- Reduced some code bloat by reorganizing some internals and eliminating redundant code.
- Important fix: updated Ripcord to deal with new Slack IDs
- A few hours ago, Slack began using longer ID strings for users and file uploads (and possibly some other things.)
- Files uploaded to Slack may not have been visible in Ripcord. Newly signed-up user accounts may also have not been visible.
- This may have been spurred by sudden increased load from more people working from home and using Slack.
- Internally, Ripcord encodes Slack IDs using an optimized format to avoid wasting memory and making lookups and comparisons faster.
- Ripcord's format left room for 2 extra characters, just in case. But it only allowed 1 to actually be used without triggering a safeguard.
- Slack's new format added 2 extra characters.
- Ripcord's code has been updated to allow both extra characters to be used.
- Fixed emoji reaction tooltips being stuck open when leaving the mouse cursor over a reaction, and then changing tabs using keyboard shortcuts, alt-tabbing, or hiding the window.
- Fixed potential spurious debug warnings in event log when performing message searches.
- Fixed message search results usually not displaying the full text of the message in the details pane when selected.
- Should always display, now.
- Fixed the preview in the upload image dialog being way too extra wide if the image was short and wide.
- Fixed: when muting or unmuting a channel in a server, the sidebar in Ripcord would show the channels in all other servers becoming unmuted.
- This was just cosmetic -- restarting Ripcord would bring it back in sync with the truth on the server.
- This bug was added in 0.4.23
- And now it's been fixed.
- Fixed: potential crash in certain situations when enabling Windows firewall or removing a network device while in a voice call.
- Logic error in the multi-threaded voice chat code when a networking thread blocks for too long when also disconnecting and while also trying to send outgoing audio.
- Not an exploitable bug. Intentionally crashed on a null pointer.
- Improved efficiency and reduced code bloat of Discord protocol decoding and handling.
- Further reduced background CPU usage in large Discord instances.
- More coming next version.
Ripcord version 0.4.23 (2020-2-17)
- Removed usage of the ancient
GUILD_SYNCDiscord protocol feature.
- Added initial population of channel user lists using the newer Discord server protocol features.
- Initially, it will only show the 300 users at the top of the list for each channel.
- Only the first 300 users will be initially loaded, regardless of how many members are in the server.
- Added server-side name search to server member list and user list sidebar.
- Ripcord now talks to the server when doing user searches and filtering.
- You can use and this to load the information for users beyond the first 300.
- If there are more than 300 members and you need to see a specific user in the list, use the search field to search for them.
- If there's a match, they will appear in the sidebar, and will stay in the list you restart Ripcord.
- Added server-side name search to @ completion.
- Just like the user lists, you can also use "@username" to search for users, and the information for that user will be loaded on demand while you are typing.
- This means you can now once again @-complete the names of users in servers of any size in Ripcord, just like back in the good 'ol days of 2016-2017.
- This is probably still pretty buggy.
- Fixed channel topic text not selectable in the channel details if your user doesn't have the permissions to edit it.
- Finally, you can copy out the URLs in topics when you aren't a moderator.
- Added ability to manage "Go Live"/stream permissions flag.
- Just to manage the permissions. You can't stream or view streams with Ripcord.
- Added some basic capabilities to display custom non-game Discord statuses.
- Won't always work correctly -- this is just an initial test.
- Decreased overall background CPU usage for many common back-end database/cache things.
- Added some simple strategies to avoid wasting operations on the database files that better matches Discord's current data patterns.
- Decreased CPU usage when Discord emoji reactions are rapidly being added and removed.
- Decreased CPU usage when there are multiple private DM channels being modified in rapid succession.
- Decreased CPU usage during initial sign-on with large friends lists.
- Decreased CPU usage when fetching or processing lots of messages with embeds.
- Decreased CPU usage when fetching lists of messages with many attachments/files.
- Decreased CPU usage when in a server that's rapidly adding or removing members.
- Removed the "Playing" prefix for custom statuses.
- It was no longer always accurate, and Ripcord doesn't yet implement the newer custom status system that would give the full information for what kind of activity it is.
- Added "BOT" next to bot authorship lines in chat log.
- Fixed the username and emoji completion popups in the chat text input field for Discord channels jumping around between being above and below the input field as you type.
- This was caused by the default popup window positioning logic trying to be too smart.
- Ripcord just forces it above in all cases now, like it already did for Slack.
- Fixed unmuting a Discord channel not taking effect in Ripcord's UI until restart.
- The change should now be visible immediately.
- Added a workaround for an incredible bug in Qt which could cause clicking the 'X' with the mouse in certain types of confirmation dialog boxes to confirm the action instead of canceling it.
- Yes, this is a real bug in Qt.
- It only happened if you clicked the 'X' window titlebar button with the mouse. It didn't happen if you clicked "Cancel" or if you pressed escape.
- It only happened in some confirmation dialog boxes. It only happened on some versions of Windows and only some versions of Qt.
- Shoutouts to user @Leafeon who discovered this Qt bug by taking a joke screenshot of the confirmation dialog box for deleting all of the channels in their server, and then having all of the channels in their server deleted.
- Added a workaround for a FreeDesktop notifications clown fiesta.
- Ripcord will sometimes issue notifications or tray messages like this example: "[CoolTeam] <Alice> hi Bob"
- With Slack, the client is supposed to just display whatever the server gives it, like the example above.
- Some Linux desktop environments (or rather, some components that constitute some desktop environments, I guess) will interpret "<Alice>" to be the opening tag of an HTML element that has no closing tag.
- And then the desktop environment will helpfully display a popup with these contents: "[CoolTeam] "
- If Ripcord just replaced '<' and '>' with the HTML entities as text (like
<) then some other Linux DE components wouldn't display that correctly, either. (Since they aren't interpreting it as HTML, they would just display the HTML entities junk as text.)
- There's no API or way to query to see what system or listener Qt ends up sending the notification messages to.
- Even if there were, I don't want to maintain a list of specific FreeDesktop-ish dbus things in Ripcord with specific behaviors for each version that Ripcord should follow.
- Solution: replace '< and '>' with 'ᐸ' and 'ᐳ' from the Unicode Canadian Aboriginal Syllabics block.
Ripcord version 0.4.22 (2020-1-18)
Back from holiday. Back to work on Ripcord.
- Changed Preferences window to use a section tree on the side instead of tabs up top.
- This is to prepare for more extensive preferences and categories being added, which would have caused the space in the tab bar to overflow.
- There are also some under-the-hood changes to the preferences system which will become more relevant in the future.
- Moved Proxy out of the Experimental section in Preferences and into its own section.
- Changed the Accounts view so that it remembers which accounts were selected when navigating forwards/backwards in the tab.
- Added automatic "opening" of DM and group DM channels when they're viewed in a tab in Ripcord.
- "Open" is a state on the Slack server for DM and group DMs that you want to have listed in the sidebar. (This applies to both the web client and in Ripcord.)
- Slack can apparently automatically "close" DMs and group DMs. Or, the user may have intentionally closed one.
- Previously, Ripcord would not automatically issue the "open" command to the Slack server when a DM or group DM was opened or viewed in a tab. This was confusing, because it could cause a channel to be open in a tab, but there was no entry for it in the sidebar.
- Ripcord will now attempt to automatically send the "open" command to the Slack server when it thinks it is appropriate.
- It will try to avoid doing stupid things like immediately re-"opening" a channel if you tell it to close a channel while a tab for that channel is still visible.
- This is the first half of fixing the problem where DMs and group DMs do not show up in the sidebar in Ripcord when the user expects them to.
- Note that there is still an issue in Ripcord where DMs and group DMs with unread messages may not show up in the sidebar if the DM or group DM is in the "closed" state. Special listing of unread-but-closed channels in the sidebar is planned for implementation in the next update.
- This is due to some fussy behavior with how the Slack server treats the "open" and "closed" state of DMs and group DMs.
- Notifications for these channels should still appear fine in Ripcord while online, even in the current version. (Please send an email if this is not the case.)
- If you participate in many DMs or group DMs in a large workspace, I would recommend using the mobile or web client to occasionally check to see if any stale DM or group DM channels have unread messages in them, because the channels may not be listed in the sidebar in Ripcord if Slack has automatically put them into the "closed" state.
- After implementing the show-unread-but-closed-DMs-in-the-sidebar feature, upon connecting to a workspace, "closed" channels which have unreads will have a way to be reached from the sidebar.
- This should be remedied/implemented in the next release, at which point there should no longer be cases where DMs and group DMs unexpectedly do not show up in the sidebar. I hope.
- Fixed switching tabs via shortcut while an emoji reaction tooltip is visible causing the tooltip to get stuck.
Ripcord version 0.4.21 (2019-11-25)
- Overhauled the Slack stuff in the sidebar.
- Workspaces are grouped singularly (you'll understand what that means when you see it.)
- Channels and DMs now have the kind of subgrouping you would expect.
- Channels are now positioned above DMs in each workspace group, the same as the original Slack web client.
- The workspace group now shows an unread badge at the top level (the total number of channels and DMs with unread messages.)
- There is now a "Slack" section which can be used to fold away all Slack workspace groups.
- Added support for channel muting.
- The muting state of public channels, private channels, DM channels and group DM channels are all respected.
- Muted channels are synchronized correctly with the Slack server and your other Slack clients you may be using.
- Muted channels won't have unread badges appear for them.
- Muted channels will have an eye-slash icon in the sidebar.
- Channels can be muted and unmuted via the context menu in the sidebar, or from the "Channel" menu when a Slack channel tab is selected.
- Ripcord will also let you mute DMs with "apps" -- which the normal Slack client won't let you.
- Fixed 'seletion' typo in the toolbar for Slack threads overview tabs.
- Fixes for Slack group DMs not appearing in the sidebar when they were previously closed but a new message has arrived, which should have caused them to reopen automatically.
- Japanese localization.
Further down the pipeline...
- Ability to manually mark Slack messages as unread.
- Option to order Slack channels in the ctrl+k by recently unread.
Ripcord version 0.4.20 (2019-11-21)
This release has only a few new features. A lot of work over the last few weeks has gone into localizations, which should be appearing in future builds.
- Added Unicode 12 emoji for both Slack and Discord.
- Added an optimization for PhantomStyle (the GUI styling engine for Ripcord) which slightly reduces the per-element CPU overhead for most GUI painting operations.
- Fixed wrong unread counter badge showing up in tabs during a drag operation when there are multiple tabs open, the first tab has an unread badge and is not the tabbed being dragged and the tab being dragged does not have an unread badge.
- Added filtering logic to hide incompatible Unicode 12 emoji when adding an emoji reaction.
- Slack's servers apparently do not support emoji from the Unicode 12 standard being used as reaction emoji, and would reject attempts to use them.
- Ripcord will now hide emoji from the Unicode 12 standard from the emoji picker when adding a reaction.
- Unicode 12 emoji can still be used in chat messages.
- Added "Advanced -> Copy link to message" in the chat message right-click menu.
Ripcord version 0.4.19 (2019-10-27)
This release adds a test of the shareware licensing system to Ripcord. If you want to support Ripcord's development, you can now, finally, buy a license key! License keys cost $20, do not expire, and include 1 year of free version upgrades. You can use the same license key on multiple computers and operating systems, as long as they belong to you, and nobody else uses it at the same time. There is no online activation or tracking.
License keys purchased during the alpha and beta preview period will still give free version upgrades for 1 year after the alpha/beta preview period ends. More information is available on the homepage.
Buy a license via FastSpring: https://cancel.fm/ripcord/buy (also available in the "Help" menu in Ripcord)
If you only use the Discord features of Ripcord, you won't need to buy a license. Discord support in Ripcord is just a hobby.
I've also added a page which describes the shareware redistribution rules for Ripcord. This gives you explicit permission to add Ripcord to package managers: https://cancel.fm/ripcord/shareware-redistribution/
- Added shareware licensing system.
- This is still in the experimental phase.
- You can access the license entry dialog from the "Help" menu.
- Purchasing a license is currently voluntary.
- Nagging and trial periods are not yet enabled, and won't be enabled until I'm confident the basic licensing system is working properly.
- Added better handling of public channels being converted into private channels.
- The UI in Ripcord will now reflect the change immediately instead of requiring a reconnect.
- Added handling of channel deletion events.
- Deleted channels will now be immediately removed from the sidebar, instead of requiring a reconnect.
- If you have any tabs that are open on a deleted channel, they will not be automatically closed.
- You will be unable to send new messages to that channel.
- Fixed typo in localization string: "Channel Properites" instead of "Channel Properties" in the Channel menu.
- Improved visuals of "Drop HAR file here" indicator in account import dialog.
- Fixed regression that used the wrong text for the name of the "Close Window" menu item ("Ctrl+Shift+W" instead of "Close Window", which should have only been used for the shortcut.)
Ripcord version 0.4.18 (2019-10-5)
This release of Ripcord adds full support for localization. However, even though the system for localization has been added, this release still includes only an English localization of the program. The goal is to test that the system is working alright. The actual localizations for different languages will come in the future. If you experience any issues with the program not correctly displaying the text in buttons, window titles, etc., please let me know.
- Added "Language" tab to preferences.
- Renamed "Fonts and Colors" preferences tab to "Style."
- Changed tooltips to respect palette/theme colors instead of always being the default yellow color.
- Added mentions view.
- Added the Workspace context menu when right-clicking the Channels and DMs sections, in addition to the main section for each workspace.
- Added display of message attachments and "blocks" to the details view for message search results.
- Added ability to sort by either relevancy or by date/time in when searching messages.
- Added icons for the various views in the Workspace menu.
- Improved visuals and spacing for the message search results list.
- Tweaked activity indicators to use text color instead of highlight color.
- The .app bundle is now run through the "notarization" process from Apple. This should stop "gatekeeper" from preventing users from running the program on macOS 10.15 "Catalina".
- Special addendum, 2019-10-6: the .app file within the .zip file has been updated to include the "stapled" "notarization" information, which will stop "gatekeeper" from preventing users from the running the program for the first time even if they're offline, or Apple's services are not reachable or not responding.
- If you've already downloaded Ripcord 0.4.18 for Mac and it works for you, there's no need to redownload it. There are no changes other than the extra metadata being attached.
- This only affects the first time a new version Ripcord is run.
Ripcord version 0.4.17 (2019-9-17)
- Changed tab text, when there's not enough room for the text to fit in the tab, to put the "..." on the right side instead of the left side.
- The number of unread messages in the current tab is no longer appended to the window title of minimized windows. Instead, if any tabs in the window have any unread messages, a
*will be prefixed to the window title.
#general (1)will now be
* #general, and the
*shows up even if it's not the currently selected tab.
- This is probably a lot more useful than the old system.
- On Mac and Linux (and on Windows high DPI), the unread badge visuals have been tweaked to produce more consistent spacing around the numbers.
- This is especially visible for unread badges which are drawn in tabs title areas and the "Go to" list.
- CPU usage when redrawing the sidebar with many unread badges visible has been reduced.
- Added tooltip when hovering over emoji reactions which shows the name of the emoji and the list of users who added a reaction.
- Added preferences option to control the size of emoji reactions.
- Added unread indicator badges on "Threads" overview tabs.
- Added a "Return to Channel" menu and toolbar action for navigating to the parent channel of a thread.
- Added "Threads Overview" item in the "Workspace" menu. This is the same as clicking on the "Threads" item in the sidebar underneath a workspace.
- Fixed the "+" part of unread badges like "1+" not appearing in the "Go to" (Ctrl+K) menu.
- Added the ability to view "announcements"/"news" special channels.
- These are only available to "partnered" Discord guilds.
- Ripcord will not display them with a bullhorn icon or with any extra special feature -- they'll look just like regular text channels.
- But at least you'll be able to see and read them now.
Ripcord version 0.4.16 (2019-9-13)
- Tweaked sizes of icons in the sidebar (the small icons, like the lock symbol, microphone, etc.) to be slightly larger.
- The new icon set has slightly smaller icon main shapes by default, so this change brings the indicator icons in the sidebar back to roughly the same size as they were before the new icon set was adopted.
- Changed Event Log view toolbar buttons to be narrower.
- Changed some of the icons in the Event Log view to make better use of the new icon set.
- Fixed header text in the Event Log not being center aligned.
- Tweaked icon color in the default Polar light color scheme.
- Tweaked the color of disabled text in the default Stealth dark color scheme.
- Tweaked the way tab frames are drawn to make it easier to distinguish between the foreground and background tabs.
- The background tabs no longer have a subtle edge highlight on them.
- Changed the generic emoji face icon in the toolbar to a coffee mug.
- Faces are out. Coffee is in.
- Fixed alignment of the right-arrow icon in the toolbar extension overflow button.
- Overhauled the "All Threads" tab/view.
- Now just called "Threads" or "threads overview."
- Changed row height to a single line.
- Only threads that you are involved with or subscribed to are shown.
- A "Fetching..." indicator is shown when the data is being re-fetched from the server.
- More accurate tracking of thread state, new messages, unread count, etc.
- Threads list is now sorted by most recent activity/reply.
- Threads list now shows the number of unread messages per thread.
- Added actions available in the toolbar, context menu and menu bar:
- Unsubscribe from selected threads.
- Open selected threads in new tabs.
- Mark selected threads as read.
- Mark all threads as read.
- Threads list now remembers which threads were selected when navigating away and then back.
- The scroll position of the threads list is also saved.
- Improved the accuracy and synchronization of unread states of threads.
- Tabs of threads should now always show when you have unread messages in them.
- The unread position/marker in threads should now be correctly synchronized with the Slack server and with other Slack clients you may be using.
- Added an unread indicator in the sidebar on the "Threads" item for the number of threads with unread messages.
- Added a "Subscribe" or "Unsubscribe" item to the right-click menu of threads in channel/message log views.
- Added the name of the team/workspace to the threads overview tab title.
- Fixed the read/unread indicators in channels sometimes not having their synchronized state sent back to the server.
- This could occur with the combination of briefly navigating to and away from a channel and when no new messages were sent in that channel (from any user) for the duration of the session.
- Added some minor optimizations when drawing long lists of users in the sidebar and other list views.
- Updated HAR ("Import from browser") account importing logic to deal with changes to the HAR files created by Chrome and Chromium in certain Slack workspaces.
- Added ability to filter the ignored users list.
- Fixed editing a role's name not allowing changes to be applied until some other edit had been performed as well.
- Fixed disclosure icons for channel categories in the sidebar being incorrect or invisible.
- Added better connected/disconnected account state display in the accounts list view.
- Previously, an account that was connecting/disconnecting would have shown "Connected" before it was actually fully connected.
- "Unbundled" Ripcord: added a workaround for crashes caused by distro-provided Qt binaries and plugins at startup (when not using the AppImage.)
- A recent change to Qt on Linux was causing Ripcord to crash on startup when using various Qt binaries and plugins provided by distros instead of the ones bundled in the AppImage.
- The culprit has not been identified. However, it appears to be some Linux-specific platform plugin or component of Qt. It may be an official part of the Qt project, or distro-provided extensions to Qt, or something else.
- This component was injecting itself into the process (probably by the plugin mechanism) and crashing during initialization.
- It appears to be triggered by the application QPalette being set before QApplication has been constructed.
- Ripcord on Linux will now attempt to work around this by delaying the palette and theming initialization.
Ripcord version 0.4.15 (2019-9-1)
- Added right-click (or on Mac, Ctrl-click) context menu to tabs.
- Added "reopen closed tabs" feature, available on Ctrl-Shift-T (on Mac, Cmd-Shift-T), or from the "View" menu, or in the tab context menu.
- Added "move tab to new window" in the tab context menu.
- Added "duplicate tab" to the tab context menu.
- Added Ctrl-click (on Mac, Cmd-click) (or middle-click) to the forward and backward history navigation buttons, which will cause the current tab to be duplicated with its history stepped forward or backward.
- Added preservation of unset message contents when navigating, duplicating, closing, and reopening tabs.
- This works even if you navigate between channels from different services, or between tabs/views that don't have message input boxes.
- Added Ctrl-clicking (on Mac, Cmd-clicking) on channels in the sidebar to open them in new tabs.
- Previously, only middle-clicking worked.
- Added common Slack items to the right-click context menu on the workspace top-level sections in the sidebar ("Channels", "Workspace Members", etc.)
- Added support for the preference setting "return creates newlines in code blocks" from the Ripcord general preferences.
- Added common Discord items to the right-click context on the "Discord" item in the sidebar ("Friends", "Mentions", etc.)
- Fixed DM notifications not drawing an arrow icon separator between the sending and receiving accounts.
Ripcord version 0.4.14 (2019-8-26)
This update changes the UI icons in Ripcord. Please report any issues or incorrect icons that you find.
- Changed to use a new general-purpose UI icon set.
- "GLYPHICONS Halflings" by Jan Kovařík.
- Removed old font-based icon rendering/caching system.
- Added new custom icon rendering/caching system.
- Application startup time has been reduced.
- Memory usage has been reduced.
- Application binary size has been reduced.
- Icons should render more cleanly across different DPIs and interface scales.
- Updated Slack logo from the old mark to the new mark.
- Fixed application aborting with a font-related error during start up on some versions of Windows which use certain combinations of Russian/Cyrillic locales.
- This was caused by a bug in Qt's font handling system when trying to load the icon font that Ripcord bundles in its executable resources.
- Ripcord no longer uses an icon font and doesn't need to instruct Qt to load any additional fonts, so this bug is no longer a problem in Ripcord.
- Fixed blurry icons under certain configurations of FreeType.
- Ripcord no longer uses FreeType to render icons.
Ripcord version 0.4.13 (2019-8-22)
- Added support for Slack "blocks."
- This is the third and newest method of creating "rich messages" and bot-generated UIs for Slack.
- Added support for all Slack "block layouts" and "block elements", including:
- Dropdown/combo boxes
- Overflow/burger menus
- Selection popups
- Date pickers
- Inline images and "context" lines
- Side-images and side-widgets in "section" layouts
- Full-size images
- Paragraph-like layouts of widgets
- Two-column "fields" layouts
- Horizontal separators
- Added "Open URL" confirmation dialog for when a bot tries to force you to open a URL from a Slack "blocks" action.
- Fixed @mentions not being sent correctly when entered from the file upload dialog.
- Fixed a potential crash when clicking, holding, and then dragging out of the window starting from a button in a bot "attachment action."
- Fixed topic label being displayed clipped off when the toolbar is too narrow for text elision or fade-out.
- Fixed an unnecessary debug print to console on Mac and Linux when a Slack "dialog" created from a bot returns an unknown error from the server.
- Added "Copy Guild ID" to the "Advanced" sub-menu in the context menu for servers/guilds.
Ripcord version 0.4.12 (2019-8-8)
- Fixed a bug which could cause the menu bar in Ripcord to switch to a corrupted white-and-black incorrect color scheme after the wallpaper or Windows color schemes are changed in Windows 10.
- This would have required restarting Ripcord to fix.
- It can also sometimes happen after a GPU crash/restart or when disconnecting/connecting multiple external displays.
- This is caused by a bug in the QtWidgets library.
- Ripcord now works around this bug in Qt to avoid the problem.
- Upgraded compiler version and runtime library version.
- Added a "Slack" preferences section in Ripcord preferences.
- Added a preference for displaying avatars in chat with three choices:
- Full size, to the side of messages (default)
- Small size, in-line with the user name
- No avatars in chat
- Added a preference for join/leave messages with three choices:
- Treat like normal messages (default)
- No effect on unread counters
- Completely hidden
- Added "leave channel" menu item to the right-click menu for regular channels in the sidebar.
- DM and group DM channels already had the "close conversation" menu item.
- Added a second automatic fallback method for fetching user/member data from Slack servers.
- The Slack servers may sometimes stall or return incorrect results when the client software requests information about other users in a workspace.
- Requests for user information which fail with the primary method will be automatically retried with the fallback method.
- This happens automatically and doesn't require any intervention from the user.
- This will reduce the occurrences of other users being stuck as "....." in the UI, especially in Slack workspaces with shared or linked channels and teams.
- Fixed text not wrapping correctly in displayed chat messages when a message contains a single unbroken word which is longer/wider than the width of the chat viewport.
- Fixed channels which were added to bookmark lists but then were subsequently left (as in no longer joined to the channel) but remaining in the sidebar showing up as "....." for some amount of time after restarting Ripcord and signing back onto the workspaces.
- Fixed chat history not always re-fetching properly after joining a channel, leaving, then joining again.
- Fixed mouse 4 and mouse 5 buttons (forward/backward in history) being ignored while hovering the mouse pointer over an emoji reaction.
- Overhauled several internal event and data handling systems to reduce code bloat.
Ripcord version 0.4.11 (2019-7-30)
- Added display of "language" part of non-standard Markdown code blocks.
- This part of the text is traditionally not required to be displayed, but many users will mistakenly put code content into this area instead of the name of the programming language used in the code block.
- The Discord web client will usually display this area as text if it doesn't match a list of known programming languages.
- Ripcord will now always display the "language" part of code blocks, if it exists.
- Increased contrast on the check/neutral/cross channel permissions editor controls to make the active choice more visible.
- Added "all users" matching to the Ctrl+K "Go to.." popup.
- All users in a workspace should now show up, whether or not you already have an open DM with them.
- Added ability to start or open new or existing DMs to a user via the "Go to..." popup.
- This works seamlessly with any user, whether or not you already have an open DM with them.
- Please report if this doesn't work properly in your Slack workspace.
- Overhauled relevancy system for the "Go to..." popup filtering.
- Matches are now sorted based on a comprehensive fuzzy scoring system that includes multiple factors, like which channels are already joined/opened, whether or not they are from the same workspace as the current tab, the quality of the string match, etc.
- This system is still incomplete. Notably, it does not yet account for unreads or mentions.
- This will soon be further improved.
- Fixed the "Go" button in notifications generated by messages in threads navigating to the channel of the thread instead of to the thread itself.
- Fixed unread badges in thread tabs not displaying the correct unread count of the thread.
- Fixed viewing a thread causing the unreads of a channel to be marked as read instead of just the thread.
- Fixed certain newer variations of "thread broadcast" messages delivered by some Slack servers/workspaces not being interpreted as thread broadcasts.
- Improved internal unread marker tracking in channels and threads.
- Ripcord doesn't yet visibly display unread marker lines in the UI. This is just for the internal system that manages the unread badge counters. Eventually, it will be displayed in the message log itself (optionally.)
- Fixed custom user status emojis in user completion popups displaying as text instead of as images.
- Fixed extra-long user names potentially not being tab-completable in the message input box.
- Fixed disconnecting from a Slack server that had malfunctioned and then reconnecting to the workspace not causing Ripcord to re-request the user information for other users in the workspace which were stuck in the "....." state.
- Assuming Ripcord reconnects to a non-malfunctioning server, the user data should then be loaded correctly.
- In the future, there will be further improvements to the data querying retry system which will not require manual disconnecting/reconnecting (unless the Slack service experiences a major outage that lasts more than several minutes.)
- Added support for an upcoming Slack protocol change for how participating users in threads are accounted for.
- Disabled the feature that locks out the chat message input field from being able to send messages in a channel if your user account is not authorized to do so.
- Slack currently has a server-side bug/flaw that prevents this feature from being implemented correctly. The regular Slack web client is also affected by this.
- Improved some event log error messages for several types of errors that can arise from a misbehaving Slack server.
- Reduced some minor compiler-related code bloat in several graphics resources internal tracking systems.
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