Add CHANGELOG.md
This commit is contained in:
parent
3d40f762ce
commit
4f9ed2a77f
367
CHANGELOG.md
Normal file
367
CHANGELOG.md
Normal file
|
@ -0,0 +1,367 @@
|
|||
# Changelog
|
||||
|
||||
All notable changes to this project will be documented in this file.
|
||||
|
||||
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
||||
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||
|
||||
|
||||
## Unreleased
|
||||
|
||||
### Added
|
||||
|
||||
- **Unread messages and mentions**:
|
||||
- Rooms in the left pane will now have a counter for unread messages and
|
||||
times you were mentioned
|
||||
|
||||
- `goToPreviousUnreadRoom` (default Alt+Shift+U) and
|
||||
`goToNextUnreadRoom` (default Alt+U) keybinds to cycle between rooms
|
||||
with unread messages
|
||||
|
||||
- `goToPreviousMentionedRoom` (default Alt+Shift+M) and
|
||||
`goToNextMentionedRoom` (default Alt+M) keybinds to cycle between rooms
|
||||
with mentions, or those with unread messages if no rooms with mentions
|
||||
are left
|
||||
|
||||
- Room with mentions will be sorted first, then room no mentions but unread
|
||||
messages, then the rest
|
||||
|
||||
- **Accounts navigation**:
|
||||
- With two or more accounts, an always visible account thumbnail grid will
|
||||
be visible in the left pane.
|
||||
Clicking on an account will make the room list jump to that account.
|
||||
The accounts will also show a total number of unread messages and
|
||||
mentions for all the rooms associated with it.
|
||||
|
||||
- `goToPreviousAccount` (default Alt+Shift+M) and
|
||||
`goToNextAccount` (default Alt+M) keybinds to cycle and jump between
|
||||
accounts in the room list.
|
||||
|
||||
- `keys.focusAccountAtIndex` in config file, a `{"<index>": "<keybind>"}`
|
||||
mapping similar to `focusRoomAtIndex` which by default binds
|
||||
Ctrl+1-9 and Ctrl+0 to jump to account 1 to 10 in the room list
|
||||
|
||||
- **Replies**:
|
||||
- The context menu for messages now has a "Reply" option
|
||||
|
||||
- The new `replyToFocusedOrLastMessage` keybind (default Ctrl+Q) can be used
|
||||
to reply to the focused message if any
|
||||
(use the `focusPreviousMessage` and `focusNextMessage` keybinds),
|
||||
or to the last message in the timeline not sent by you.
|
||||
|
||||
- Pressing escape will cancel the reply
|
||||
|
||||
- **Kick and bans**: room members can now be kicked or banned with an optional
|
||||
reason, using the option in the right pane's member context menu
|
||||
|
||||
- `openMessagesLinks` keybind (default Ctrl+O).
|
||||
Will open externally all the URLs present in the selected/focused message(s),
|
||||
or the last message that contains links if none are selected or focused.
|
||||
|
||||
- `clearMemberFilterOnEscape` setting.
|
||||
If `true` (default),
|
||||
pressing escape while focusing the "Filter members" field will not only
|
||||
focus the chat again but also clear the filter.
|
||||
|
||||
- `maxMessageCharactersPerLine` setting to control the maximum width of
|
||||
messages. If set to `-1`, there will be no limit.
|
||||
|
||||
- `ownMessagesOnLeftAboveWidth` setting, replaces the themes's
|
||||
`eventList.ownEventsOnRightUnderWidth` properties.
|
||||
Can be set to `-1` to always keep your own messages on the right.
|
||||
|
||||
- `enableKineticScrolling` setting, try setting it to `false` if you have
|
||||
scrolling issues on a trackpad
|
||||
|
||||
- Support a new `enabled` key for accounts in the accounts.json config file.
|
||||
If set to `false`, Mirage will not login to or show the account on startup.
|
||||
|
||||
- Support a new `order` key for accounts in the accounts.json config file
|
||||
The value is an integer that will determine how accounts in the left pane
|
||||
are sorted, lower comes first.
|
||||
If multiple accounts have the same `order` value, they are sorted by
|
||||
their user ID.
|
||||
|
||||
- Themes:
|
||||
- `mainPane.minimumSize` property
|
||||
- `mainPane.accountBar` section
|
||||
- `mainPane.listView.room.unreadIndicator` section
|
||||
- `chat.replyBar` section
|
||||
|
||||
### Changed
|
||||
|
||||
- **Performance**:
|
||||
- Use room members lazy-loading, accounts that have joined
|
||||
large numbers of rooms will now finally be able to finish their
|
||||
initial sync.
|
||||
When the currently shown UI page is a room, the full members list for it
|
||||
will be loaded.
|
||||
|
||||
- Request less events for the initial sync, and exclude some types like
|
||||
membership events to increase initial sync speed
|
||||
|
||||
- Retrieving profiles for events sent by users no longer present in a room
|
||||
will no block and delay past events loading.
|
||||
Missing profiles will be fetched asynchronously when the messages
|
||||
are currently in view in the UI.
|
||||
|
||||
- Reduce the number of events that need to be sent between Python and QML
|
||||
due to changes in list models data
|
||||
|
||||
- Consecutive syncs will now have a one second delay between them to reduce
|
||||
both client and server strain
|
||||
|
||||
- Improved group display name calculations (nio 0.11+ change):
|
||||
for example, a room that would previously be shown as "Alice and 6 others"
|
||||
will now be shown as "Alice, Bob, Carol, Dave, Erin and 1 other"
|
||||
(up to 5 visible names).
|
||||
|
||||
- Group rooms with more than two users and without an explicitely set avatar
|
||||
will no longer show their first member's profile picture as avatar
|
||||
|
||||
- The `unfocusOrDeselectAllMessages` keybind now defaults to Ctrl+D
|
||||
instead of Escape, which no longer works as of Qt 5.14.
|
||||
`debugFocusedMessage` is changed from Ctrl+D to Ctrl+Shift+D.
|
||||
|
||||
- Better QML logging format: messages will now be dated, and have a
|
||||
symbol + color (on Linux and OSX terminals) representing their category
|
||||
|
||||
- Messages containing code blocks will no longer have their max width limited
|
||||
|
||||
- Set `hideUnknownEvents` to `true` in the default config file
|
||||
|
||||
- Set a more useful default minimum size for the left pane
|
||||
|
||||
- The `collapseSidePanesUnderWindowWidth` setting now defaults to `450` instead
|
||||
of `400`, to account for the larger minimum pane size.
|
||||
|
||||
- Show a more useful error message with traceback when retrieving an account's
|
||||
profile or the server config fails on startup
|
||||
|
||||
- Hide `socket.gaierror` error popups
|
||||
|
||||
- When pressing the `startPythonDebugger` (default Alt+Shift+D) keybind,
|
||||
use `pdb` if `remote_pdb` isn't installed
|
||||
|
||||
- Themes:
|
||||
- `mainPane.bottomBar` properties: `background` is now by default
|
||||
`transparent`, `settingsButtonBackground` and `filterFieldBackground` are
|
||||
now set to `colors.strongBackground`
|
||||
|
||||
### Removed
|
||||
|
||||
- **Performance**:
|
||||
- After the initial sync, Mirage will no longer try to continually fetch
|
||||
previous events for rooms where the sync haven't brought any event that is
|
||||
suitable to be shown as room last event subtitle in the left pane.
|
||||
|
||||
- Mirage will no longer try to find and autolink display names in incoming
|
||||
events, which was a very costly operation for rooms with
|
||||
thousands of members.
|
||||
|
||||
- The uvloop python module is no longer supported or recommended as an optional
|
||||
dependency, due to being responsible for some segfaults
|
||||
|
||||
- The SortFilterProxyModel and RadialBarDemo git submodules are no longer
|
||||
used. hsluv-c is the only submodule still used currently.
|
||||
|
||||
### Fixed
|
||||
|
||||
- **Performance**:
|
||||
- Stop rendering and keeping in RAM rooms that aren't currently visible in
|
||||
the left pane.
|
||||
This fixes the massive memory usage that occured with hundreds of rooms and
|
||||
their avatar images loaded all at once.
|
||||
|
||||
- Room elements in the left pane will no longer be reloaded every time
|
||||
a list movement happens (e.g. a room is bumped to the top due to a new
|
||||
message).
|
||||
This also lets the movement animation correctly play insteas of being
|
||||
skipped.
|
||||
|
||||
- Don't show a popup when pressing the redact message keybind if that
|
||||
message can't be redacted
|
||||
|
||||
- Stricter mention parsing, fix various cases of text being autolinked when it
|
||||
shouldn't
|
||||
|
||||
- Fix exception when parsing `<a>` HTML tags without `href` attribute
|
||||
|
||||
- Fix crash on Python 3.6 due to `asyncio.current_task`
|
||||
|
||||
- Fix `AttributeError` when using matrix-nio v0.11+
|
||||
|
||||
- Fix potential crash on startup due to asyncio event loop and threading
|
||||
|
||||
- Fix uploads getting rejected by servers due to not passing a file size
|
||||
|
||||
- Fix extra spacing between "Add chat" and "Expand/Collapse" account buttons
|
||||
|
||||
- Hide the Binding deprecation warnings in terminal that Qt 5.14+ spams
|
||||
|
||||
- Fix client not waiting before retrying a failed sync due to server error
|
||||
|
||||
- Correctly handle server 429 "Too many requests" errors when they come purely
|
||||
in the form of a HTTP status code without a JSON object giving any info
|
||||
|
||||
- Fix left rooms remaining at full opacity in the left pane
|
||||
|
||||
- Fix escape key not working to clear the "Filter rooms" field and focus
|
||||
the chat again
|
||||
|
||||
- Fix event mention link detection, and stop trying to autolink event ID
|
||||
strings in messages as matrix.to URLs also need a room ID to make sense
|
||||
|
||||
|
||||
## 0.4.3
|
||||
|
||||
### Added
|
||||
|
||||
- Support for `MIRAGE_CONFIG_DIR` and `MIRAGE_DATA_DIR` environment variables
|
||||
to change the config and user data folders
|
||||
|
||||
- `inviteToRoom`, `leaveRoom` and `forgetRoom` keybindings
|
||||
(Alt+I, Alt+Esc and Alt+Shift+Esc by default)
|
||||
|
||||
- **Redactions support**: individual or selected messages can now be
|
||||
redacted/removed using the option from the message context menu,
|
||||
or the `removeFocusedOrSelectedMessages` keybind
|
||||
(by default Ctrl+R or Alt+Del).
|
||||
|
||||
- Themes: `colors.dimColoredTextSaturation` and
|
||||
`colors.dimColoredTextIntensity` color properties
|
||||
|
||||
- Themes: `controls.displayName.dimSaturation` and
|
||||
`controls.displayName.dimLightness` color properties
|
||||
|
||||
- Themes: `chat.message.redactedBody` color property
|
||||
|
||||
### Changed
|
||||
|
||||
- `unfocusOrDeselectAllMessages` keybind: now deselect messages first if any
|
||||
on first press, *then* cancels the keyboard message focus if possible on
|
||||
second press
|
||||
|
||||
### Fixed
|
||||
|
||||
- Segfault after login on KDE
|
||||
|
||||
- Buttons not displaying correctly on Qt 5.14
|
||||
|
||||
- Hard tab characters in theme files not being handled by the theme parser
|
||||
|
||||
- `focusRoomAtIndex` keybindings: default to Cmd+numbers on OSX instead of
|
||||
Alt/Option+numbers, which prevented typing special characters on some
|
||||
keyboard layouts
|
||||
|
||||
- Needing to press escape twice to close context menus and popups
|
||||
|
||||
- "Go back to chat" button not doing anything when the room settings pane was
|
||||
focused in narrow mode
|
||||
|
||||
|
||||
## 0.4.2
|
||||
|
||||
### Added
|
||||
|
||||
- Accounts, rooms, room members and messages can now be long-tapped on touch
|
||||
screens to open their context menu
|
||||
|
||||
- New touch screen and keyboard-friendly message selection system, replaces
|
||||
the previous slow and buggy text selection implementation:
|
||||
|
||||
- Tap a message to select or deselect it
|
||||
|
||||
- Press escape, or use the context menu entry "Deselect all" to deselect
|
||||
all messages
|
||||
|
||||
- Tap a first message, then shift+tap another one
|
||||
(or use "Select until here" from the context menu) to select all messages
|
||||
from the first to last
|
||||
|
||||
- With a mouse, a single message can be partially selected and copied
|
||||
|
||||
- The keyboard can be used to navigate with Ctrl+Up/Down (or Ctrl+J/K),
|
||||
Ctrl+Space to (de)select, Ctrl+Shift+Space for first-to-last selection,
|
||||
Ctrl+C for copying the selection, and Escape to focus the composer again
|
||||
(twice to also deselect messages).
|
||||
These shortcuts can be changed in the config file.
|
||||
|
||||
- Themes: `chat.message.focusedHighlight`,
|
||||
`chat.message.focusedHighlightOpacity`, `chat.message.checkedBackground` and
|
||||
`chat.message.thumbnailCheckedOverlayOpacity`
|
||||
|
||||
- Scripts and instructions to build a Flatpak package
|
||||
|
||||
The new selection system is still work in progress, dragging to select multiple
|
||||
messages at once on desktop is not implemented yet.
|
||||
|
||||
### Changed
|
||||
|
||||
- Themes: increased default `colors.accentBackground` brightness
|
||||
|
||||
### Fixed
|
||||
|
||||
- Possible error when handling a room member event that is missing previous
|
||||
display name or avatar info
|
||||
|
||||
- Correctly parse `mailto:` links where the mail address ends with a digit
|
||||
(e.g. `mailto:foo@localhost:8050`, or where the host is a single character
|
||||
|
||||
- Respect case when turning display names into mentions, typing a display name
|
||||
containing uppercase letters all in lowercase would result in a broken link
|
||||
|
||||
- Correctly handle `0` as a value for the `alertOnMessageForMsec` setting,
|
||||
this will now prevent urgency hints (window/desktop highlighting or flashing
|
||||
on new message for most desktops, "ready" notification on Gnome)
|
||||
|
||||
|
||||
## 0.4.1
|
||||
|
||||
### Added
|
||||
|
||||
- `hideMembershipEvents` setting, controls whether events such as
|
||||
"x joined the room" are shown in the timeline.
|
||||
|
||||
- `hideProfileChangeEvents` setting, controls whether display name and avatar
|
||||
change events are shown in the timeline.
|
||||
|
||||
- `hideUnknownEvents` setting, controls whether events not yet supported by
|
||||
Mirage (e.g. `m.reaction`) are shown in the timeline.
|
||||
|
||||
- Compact mode to make accounts, rooms, messages and room members take only
|
||||
one line as well as reducing vertical spacing between them.
|
||||
Set by the new `compactMode` setting in config file, can also be toggled
|
||||
with the `keys.toggleCompactMode` keybind which defaults to Alt+Ctrl+C.
|
||||
|
||||
- `keys.focusRoomAtIndex` in config file, a `{"<index>": "<keybind>"}` mapping
|
||||
which by default binds Alt+1-9 and Alt-0 to focus room 1 to 10
|
||||
in the current account.
|
||||
|
||||
- User ID, display names, room ID, room aliases and message ID are now
|
||||
automatically turned into [matrix.to](https://matrix.to) links and will be
|
||||
rendered as mentions by clients.
|
||||
In Mirage, user ID/names will be colored with the same color seen when they
|
||||
send messages.
|
||||
|
||||
- Track the number of times your user was mentioned in rooms.
|
||||
The visual counter is not yet displayed, since there currently is no way
|
||||
to mark messages as read and make the counter go down.
|
||||
|
||||
- Themes: `controls.avatar.compactSize` property
|
||||
- Themes: mention classes styling to `chat.message.styleSheet`
|
||||
|
||||
### Fixed
|
||||
|
||||
- Python exceptions occurring in the asyncio loop not being printed in
|
||||
the terminal
|
||||
|
||||
- Extra newline shown after code blocks in messages
|
||||
|
||||
- Constant CPU usage due to button loading animations still being rendered
|
||||
while unneeded and invisible
|
||||
|
||||
|
||||
## 0.4.0
|
||||
|
||||
Initial public release.
|
Loading…
Reference in New Issue
Block a user