* Wed May 24 2023 Matej Cepl <mcepl@suse.com>
- Update to 0.19.15:
- Fixed dispatching room ephemeral events (i.e. typing
notifications) in syncer.
* Thu May 18 2023 Matej Cepl <mcepl@suse.com>
- Update to 0.19.14:
- bridge Implemented appservice pinging using MSC2659.
- bridge Started reusing aiosqlite connection pool for crypto db.
- This fixes the crypto pool getting stuck if the bridge exits unexpectedly
(the default pool is closed automatically at any type of exit).
- Update to 0.19.13:
- crypto Fixed bug with redacting megolm sessions when device is deleted.
- Update to 0.19.12:
- bridge Fixed backwards-compatibility with new key deletion config options.
- Update to 0.19.11:
- crypto Fixed bug in previous release which caused errors if the `max_age`
of a megolm session was not known.
- crypto Changed key receiving handler to fetch encryption config from
server if it's not cached locally (to find `max_age` and `max_messages` more
reliably).
- Update to 0.19.10:
- crypto, bridge Added options to automatically ratchet/delete megolm
sessions to minimize access to old messages.
- Update to 0.19.9:
- crypto Fixed bug in crypto store migration when using outbound sessions
with max age higher than usual.
- Update to 0.19.8:
- crypto Updated crypto store schema to match mautrix-go.
- types Fixed `set_thread_parent` adding reply fallbacks to the message body.
- Update to 0.19.7:
- bridge, crypto Fixed key sharing trust checker not resolving cross-signing
signatures when minimum trust level is set to cross-signed.
- Update to 0.19.6:
- crypto Added cache checks to prevent invalidating group session when the
server sends a duplicate member event in /sync.
- util.proxy Fixed `min_wait_seconds` behavior and added `max_wait_seconds`
and `multiply_wait_seconds` to `proxy_with_retry`.
- Update to 0.19.5:
- util.proxy Added utility for dynamic proxies from mautrix-instagram/facebook.
- types Added default value for `upload_size` in `MediaRepoConfig` as the
field is optional in the spec.
- bridge Changed ghost invite handling to only process one per room at a time
(thanks to [@maltee1] in [#132]).
- Update to 0.19.4:
- types Changed `set_thread_parent` to inherit the existing thread parent
if a `MessageEvent` is passed, as starting threads from a message in a thread
is not allowed.
- util.background_task Added new utility for creating background tasks
safely, by ensuring that the task is not garbage collected before finishing
and logging uncaught exceptions immediately.
- Update to 0.19.3:
- bridge Bumped default timeouts for decrypting incoming messages.
- Update to 0.19.2:
- util.async_body Added utility for reading aiohttp response into a bytearray
(so that the output is mutable, e.g. for decrypting or encrypting media).
- client.api Fixed retry loop for MSC3870 URL uploads not exiting properly
after too many errors.
- Update to 0.19.1:
- Marked Python 3.11 as supported. Python 3.8 support will likely be dropped in
the coming months.
- client.api Added request payload memory optimization to MSC3870 URL uploads.
- aiohttp will duplicate the entire request body if it's raw bytes, which
wastes a lot of memory. The optimization is passing an iterator instead of
raw bytes, so aiohttp won't accidentally duplicate the whole thing.
- The main `HTTPAPI` has had the optimization for a while, but uploading to
URL calls aiohttp manually.
- Update to 0.19.0:
- Breaking change appservice Removed typing status from state store.
- Breaking change appservice Removed `is_typing` parameter from
`IntentAPI.set_typing` to make the signature match `ClientAPI.set_typing`.
`timeout=0` is equivalent to the old `is_typing=False`.
- Breaking change types Removed legacy fields in Beeper MSS events.
- bridge Removed accidentally nested reply loop when accepting invites as
the bridge bot.
- bridge Fixed decoding JSON values in config override env vars.
- Update to 0.18.9:
- util.async_db Changed aiosqlite connector to force-enable foreign keys,
WAL mode and busy_timeout.
- The values can be changed by manually specifying the same PRAGMAs in the
`init_commands` db arg, e.g. `- PRAGMA foreign_keys = OFF`.
- types Added workaround to `StateEvent.deserialize` to handle Conduit's
broken `unsigned` fields.
- client.state_store Fixed `set_power_level` to allow raw dicts the same
way as `set_encryption_info` does (thanks to [@bramenn] in [#127]).
- Update to 0.18.8:
- crypto.store.asyncpg Fixed bug causing `put_group_session` to fail when
trying to log unique key errors.
- client Added wrapper for `create_room` to update the state store with
initial state and invites (applies to anything extending `StoreUpdatingAPI`,
such as the high-level `Client` and appservice `IntentAPI` classes).
- Update to 0.18.7:
- Update to 0.18.6:
- util.formatter Added conversion method for `<hr>` tag and defaulted to
converting back to `---`.
- Update to 0.18.5:
- appservice Added try blocks around [MSC3202] handler functions to log
errors instead of failing the entire transaction. This matches the behavior
of errors in normal appservice event handlers.
- Update to 0.18.4:
- client.api Added option to pass custom data to `/createRoom` to enable
using custom fields and testing MSCs without changing the library.
- client.api Updated [MSC3870] support to send file name in upload complete
call.
- types Changed `set_edit` to clear reply metadata as edits can't change
the reply status.
- util.formatter Fixed edge case causing negative entity lengths when
splitting entity strings.
- Update to 0.18.3:
- util.async_db Fixed mistake in default no-op database error handler
causing the wrong exception to be raised.
- crypto.store.asyncpg Updated `put_group_session` to catch unique key
errors and log instead of raising.
- client.api Updated [MSC3870] support to catch and retry on all
connection errors instead of only non-200 status codes when uploading.
- Update to 0.18.2:
- crypto Fixed handling key requests when using appservice-mode MSC2409
encryption.
- appservice Added workaround for dumb servers that send `"unsigned": null`
in events.
- Update to 0.18.1:
- crypto Fixed error sharing megolm session if a single recipient device
has ran out of one-time keys.
- Update to 0.18.0:
- Breaking change util.async_db Added checks to prevent calling
`.start()` on a database multiple times.
- appservice Fixed [MSC2409] support to read to-device events from the
correct field.
- appservice Added support for automatically calling functions when a
transaction contains [MSC2409] to-device events or [MSC3202] encryption data.
- bridge Added option to use [MSC2409] and [MSC3202] for end-to-bridge
encryption. However, this may not work with the Synapse implementation as it
hasn't been tested yet.
- bridge Replaced `homeserver` -> `asmux` flag with more generic `software`
field.
- bridge Added support for overriding parts of config with environment
variables.
- If the value starts with `json::`, it'll be parsed as JSON instead of using
as a raw string.
- client.api Added support for [MSC3870] for both uploading and downloading
media.
- types Added `knock_restricted` join rule to `JoinRule` enum.
- crypto Added warning logs if claiming one-time keys for other users fails.
- Add no-immutable.patch (gh#mautrix/python#147) to make tests
work with SQLAlchemy 2.* (bad hack).
Version: 0.17.8-bp155.1.5
* Wed Aug 31 2022 Matej Cepl <mcepl@suse.com>
- Update to 0.17.8:
- (crypto) Fixed parsing /keys/claim responses with no failures
field.
- (bridge) Fixed parsing e2ee key sharing allow/minimum level
config.
- (util.async_db) Added init_commands to run commands on
each SQLite connection (e.g. to enable PRAGMAs). No-op on
Postgres.
- (bridge) Added check to make sure e2ee keys are intact on
server. If they aren't, the crypto database will be wiped and
the bridge will stop.
- (bridge) Added hidden option to use appservice login for
double puppeting.
- (client) Fixed sync handling throwing an error if event
parsing failed.
- (errors) Added M_UNKNOWN_ENDPOINT error code from MSC3743
- (appservice) Updated MSC3202 support to handle one time keys
correctly.
- (types) Added m.read.private to receipt types.
- (appservice) Stopped ensure_registered and invite_user
raising IntentErrors (now they raise the original Matrix
error instead).
- (bridge) Started rejecting reusing access tokens when
enabling double puppeting. Reuse is detected by presence of
encryption keys on the device.
- (client.api) Added wrapper method for the /context API.
- (api, errors) Implemented new error codes from MSC3848.
- (types) Disabled deserializing m.direct content (it didn't
work and it wasn't really necessary).
- (client.state_store) Updated set_encryption_info to allow raw
dicts. This fixes the bug where sending a m.room.encryption
event with a raw dict as the content would throw an error
from the state store.
- (crypto) Fixed error when fetching keys for user with no
cross-signing keys (thanks to @maltee1 in #109).
- (types) Updated BeeperMessageStatusEventContent fields.
- (api) Updated request logging to log full URL instead of only
path.
- (bridge) Fixed migrating key sharing allow flag to new config
format.
- (appservice) Added beeper_new_messages flag for batch_send
method.
- (crypto) Fixed Python 3.8/9 compatibility broken in v0.17.0.
- (crypto) Added some tests for attachments and store code.
- (crypto) Improved logging when device change validation
fails.
- Breaking change (bridge) Added options to check cross-signing
status for bridge users. This requires changes to the base
config.
New options include requiring cross-signed devices (with
TOFU) for sending and/or receiving messages, and an
option to drop any unencrypted messages.
- Breaking change (crypto) Removed sender_key parameter from
CryptoStore's has_group_session and put_group_session, and
also OlmMachine's wait_for_session.
- Breaking change (crypto.store.memory) Updated the key of the
_inbound_sessions dict to be (room_id, session_id), removing
the identity key in the middle. This only affects custom
stores based on the memory store.
- (crypto) Added basic cross-signing validation code.
- (crypto) Marked device_id and sender_key as deprecated in
Megolm events as per Matrix 1.3.
- (api) Bumped request logs to DEBUG level.
Also added new sensitive parameter to the request method
to prevent logging content in sensitive requests. The
login method was updated to mark the content as sensitive if a
password or token is provided.
- (bridge.commands) Switched the order of the user ID parameter
in set-pl, set-avatar and set-displayname.
- (bridge) Started requiring Matrix v1.1 support from
homeservers.
- (bridge) Added hack to automatically send a read receipt for
messages sent to Matrix with double puppeting (to work around
weird unread count issues).
- (client) Added support for knocking on rooms (thanks to
@maltee1 in #105).
- (bridge) Added config option to set key rotation settings
with e2be.
- (bridge) Updated e2be helper to stop bridge if syncing fails.
- (util.async_db) Updated asyncpg connector to stop program
if an asyncpg InternalClientError is thrown. These errors
usually cause everything to get stuck.
The behavior can be disabled by passing meow_exit_on_ice
= false in the db_args.
* Tue Jun 21 2022 Ben Greiner <code@bnavigator.de>
- Enable test suite for TW. The do have one.
* Update test requirements.
* Skip tests on Leap, async packages not available.
* Tue Jun 21 2022 Matej Cepl <mcepl@suse.com>
- Update to 0.16.8:
Complete log is included as CHANGELOG.md, but it has been too
long since we have updated last time.
* Wed Jun 09 2021 Sasi Olin <hel@lcp.world>
- Update to 0.9.3:
- Switched to stable space prefixes.
- Added option to send arbitrary content with membership events.
- Added warning if media encryption dependencies aren't installed.
- Added support for pycryptodomex for media encryption.
- Added utilities for pushing bridge status to an arbitrary HTTP endpoint.
- Changed update_direct_chats bridge method to only send updated m.direct data if the content was modified.
- Added type classes for VoIP.
- Added methods for modifying push rules and room tags.
- Switched to asyncio.create_task everywhere (replacing the older loop.create_task and asyncio.ensure_future).
- Added option to retry all HTTP requests when encountering a HTTP network error or gateway error response (502/503/504)
- Disabled by default, you need to set the default_retry_count field in HTTPAPI (or Client), or the default_http_retry_count field in AppService to enable.
- Can also be enabled with HTTPAPI.request()s retry_count parameter.
- The mautrix.util.network_retry module was removed as it became redundant.
- Fixed GET requests having a body (#44).
* Tue Mar 16 2021 Matej Cepl <mcepl@suse.com>
- Update to version 0.8.15:
- Add option to not use transaction for db upgrades
- Return None instead of attr.NOTHING for fields without value
- Crash if server doesn't advertise appservice login
- Switch BaseFileConfig to use pkgutil instead of pkg_resources
- Catch MNotFound when updating m.direct
- Log data when deserialization fails
- Expose ExtensibleEnum in mautrix.types
- Allow postgresql:// scheme in encryption database URL
- Add better error message if deserialization fails
- Log full data instead of only known fields when failing to
deserialize
- Automatically retry login if custom puppet start fails
- Fix ExtensibleEnum leaking keys between different types
- Allow changing bot used in ensure_joined
- Add custom puppet relogin when sync fails
- Handle MNotFound when getting pinned events
- Use same txn_id when retrying sends in bridges
- Update client state store with events from sync
- Don't check message in whoami forbidden error
- Fix fault for rooms without power_levels state event.
- Graceful handling of missing or empty event.unsigned object.
- Send warning when receiving encrypted messages with e2be
disabled
- Add utility for async getter locking
- Allow overriding asyncpg pool in async_db Database wrapper
- Only update state if state_store is set
* Mon Jan 04 2021 Dead Mozay <dead_mozay@opensuse.org>
- Update to version 0.8.6:
* Switched to secrets.token_urlsafe for generating tokens
(e.g. registration hs/as_tokens).
* Changed sync error logging to warning instead of exception.
* Allowed sending read receipts even if appservice user is not
in room (#34).
* Tue Dec 29 2020 Dead Mozay <dead_mozay@opensuse.org>
- Update to version 0.8.5:
* Made SerializableEnum work with int value
* Added TraceLogger type hints to command handling classes
* Thu Nov 19 2020 Dead Mozay <dead_mozay@opensuse.org>
- Update to version 0.8.3:
* Fixed typo in HTML reply fallback generation when target
message is plaintext.
* Made CommandEvent.mark_read async instead of returning an
awaitable, because sometimes it didn't return an awaitable.
* Wed Jun 03 2020 Dead Mozay <dead_mozay@opensuse.org>
- Update to version 0.5.0:
* No changelog was made available.
* Fri Feb 28 2020 Tomáš Chvátal <tchvatal@suse.com>
- Format with spec-cleaner
- Sort out the deps
* Thu Feb 27 2020 Dead Mozay <dead_mozay@opensuse.org>
- Initial package