All notable changes to this project will be documented in this file.
- Upgrade dependencies
- Various test, formatting, type hinting fixes
- Update GitHub Workflow Actions versions for CI
- [#384] Add content to
built-with-nio
- [#335] Default to the configured request timeout when syncing
- [#354] Fix
first_sync_filter
parameter ofAsyncClient.sync_forever
- [#357] Element exports keys without required fields
- [#396] Fix
timeline->limited
being required
- Fix Python 3.11 compatibility
- Fix import sequence errors.
- Exclude
tests/data/
from pre-commit workflow. - Only accept forwarded room keys from our own trusted devices
- Mention that room key backups are unsupported.
- Add matrix-webhook to built-with-nio
- Add matrix-asgi to built-with-nio
- Add
mxc
URI parameter toAsyncClient.download
and deprecateserver_name
andmedia_id
.
- Remove the usage of the imp module
- Fix our import order
- Fix a bunch of typos
- Remove key re-sharing
- Remove some unnecessary test code
- Add poetry to the test requirements
- Style fixes
- Sort our imports
- Clean up and make a bunch of tests more consistent
- Add config for
pre-commit
. - Fix formatting using
black
andisort
. - Convert from
str.format
to f-strings.
- Update test for
AsyncClient.download
. - Fix our async tests
- Add
black
andisort
.
- [#296] Allow creating spaces
- [#293] Add special check for "room_id" in PushEventMatch
- [#291] Send empty object with m.read receipt
- [#288] Update aiohttp-socks dependency
- [#286] Fix type annotation for async callbacks in add_event_callback
- [#285] Remove chain_index field when sending room keys
- [#281] Add support for room upgrades
- [#277] Allow setting custom headers with the client.
- [#276] Allow logging in using an email.
- [#273] Use the correct json format for login requests.
- [#272] Allow the mimetype to be in the info for encrypted images
- [1f17a20] Fix errors due to missing keys in syncs
- [#265] Fix parsing syncs missing invite/join/leave rooms
- [#264] Allow for devices in keys query that have no signatures
- [#261] Use the IV as is when decrypting attachments
- [#260] Always load the crypto data, even if a new account was made
- [#258] Fix sticker event parsing
- [#256] Upgrade our dependencies
- [#255] Relax the sync response json schema
- [#253] Support the BytesIO type for uploads
- [#252] Add a sticker events type
- [#228] Add support for global account data
- [#222] Add support for push rules events and API
- [#233] Treat
device_lists
inSyncResponse
as optional - [#239] Add support for authenticated
/profile
requests - [#246] Add support for SOCKS5 proxies
- [#235] Expose the whoami API endpoint in the AsyncClient.
- [#233] Treat device lists as optional in the Sync response class.
- [#228] Add support for account data in the AsyncClient.
- [#223] Percent encode user IDs when they appear in an URL.
- [#220] Copy the unencrypted
m.relates_to
part of an encrypted event into the decrypted event.
- [#216]
AsyncClient.room_get_state_event()
: return aRoomGetStateEventError
if the server returns a 404 error for the request - [ffc4228] When fetching the full list of room members, discard the members we previously had that are absent from the full list
- [c123e24]
MatrixRoom.members_synced
: instead of depending on the potentially outdated room summary member count, becomeTrue
when the full member list has been fetched for the room.
- [#194] Add server discovery info (.well-known API) support to AsyncClient
- [#206] Add support for uploading sync filters to AsyncClient
- New examples and documentation improvements
- [#206] Fix
AsyncClient.room_messages()
to not accept filter IDs, using one results in a server error - [4b6ea92] Fix the
SqliteMemoryStore
constructor - [4654c7a] Wait for current session sharing operation to finish before starting a new one
- [fc9f5e3] Fix
OverflowError
occurring inAsyncClient.get_timeout_retry_wait_time()
after a thousand retries
- [238b6ad] Fix the schema for the devices response.
- [#166] Add a method to restore the login with an access token.
- [#159] Allow whitespace in HTTP headers in the HttpClient.
- [42e70de] Fix the creation of PresenceGetError responses.
- [bf60bd1] Split out the bulk of the key verification events into a common module.
- [9a01396] Don't require the presence dict to be in the sync response.
- [cc789f6] Remove the PartialSyncResponse. This is a breaking change, but hopefully nobody used this.
- [#145] Added the
room_get_event()
method toAsyncClient
. - [#151] Added the
add_presence_callback
method to baseClient
. - [#151] Added the
get_presence()
andset_presence()
methods toAsyncClient
. - [#151] Added the
presence
,last_active_ago
,currently_active
andstatus_msg
attributes toMatrixUser
- [#152] Added a docker container with E2E dependencies pre-installed.
- [#153] Added the
add_room_account_data_callback
method to baseClient
. - [#153] Added the
fully_read_marker
andtags
attributes toMatrixRoom
. - [#156] Added the
update_receipt_marker()
method toAsyncClient
. - [#156] Added the
unread_notifications
andunread_highlights
attributes toMatrixRoom
.
- [#141] Improved the upload method to accept file objects directly.
- [#140] Added the
update_device()
method to theAsyncClient
. - [#143] Added the
login_info()
method to theAsyncClient
. - [c4f460f] Added support for the new SAS key agreement protocol.
- [#146] Fix room summary updates when new summary doesn't have any attributes.
- [#147] Added missing requirements to the test requirements file.
- Fixed support to run nio without python-olm.
- Fixed an incorrect raise in the group sessions sharing logic.
- Handle 429 errors correctly even if they don't contain a json response.
- Fix a wrong assertion resulting in errors when trying to send a message.
- Kick, ban, unban support to the AsyncClient.
- Read receipt sending support in the AsyncClient.
- Read receipt parsing and emitting.
- Support token login in the AsyncClient login method.
- Support for user registration in the BaseClient and AsyncClient.
- Support for ID based filters for the sync and room_messages methods.
- Support filter uploading.
- Convert attrs classes to dataclasses.
- Fire the
synced
asyncio event only in the sync forever loop.
- Don't encrypt reactions.
- Properly put event relationships into the unencrypted content.
- Catch Too Many Requests errors more reliably.
- Better room name calculation, now using the room summary.
- Removed the legacy store.