v0.8.0
Full Changelog
BREAKING CHANGE
In order to support a move to a more scalable storage backend, we need to make
a number of the APIs related end-to-end encryption asynchronous.
This release of the JS-SDK includes the following changes which will affect
applications which support end-to-end encryption:
MatrixClient
now provides a new (asynchronous) method,
initCrypto
. Applications which support end-to-end encryption must call
this method (and wait for it to complete) before callingstartClient
, to
give the crypto layer a chance to initialise.- The following APIs have been changed to return promises:
MatrixClient.getStoredDevicesForUser
MatrixClient.getStoredDevice
MatrixClient.setDeviceVerified
MatrixClient.setDeviceBlocked
MatrixClient.setDeviceKnown
MatrixClient.getEventSenderDeviceInfo
MatrixClient.isEventSenderVerified
MatrixClient.importRoomKeys
Applications using the results of any of the above methods will need to be
updated to wait for the result of the promise.
MatrixClient.listDeviceKeys
has been removed altogether. It's been
deprecated for some time. Applications using it should instead be changed to
useMatrixClient.getStoredDevices
, which is similar but returns its results
in a slightly different format.
- Make bits of
olmlib
asynchronous
#521 - Make some of DeviceList asynchronous
#520 - Make methods in crypto/algorithms async
#519 - Avoid sending unencrypted messages in e2e room
#518 - Make tests wait for syncs to happen
#517 - Make a load of methods in the 'Crypto' module asynchronous
#510 - Set
rawDisplayName
touserId
if membership hasdisplayname=null
#515 - Refactor handling of crypto events for async
#508 - Let event decryption be asynchronous
#509 - Transform
async
functions to bluebird promises
#511 - Add more group APIs
#512 - Retrying test: wait for localEchoUpdated event
#507 - Fix member events breaking on timeline reset, 2
#504 - Make bits of the js-sdk api asynchronous
#503 - Yet more js-sdk test deflakification
#499 - Fix racy 'matrixclient retrying' test
#497 - Fix spamming of key-share-requests
#495 - Add progress handler to
uploadContent
#500 - Switch matrix-js-sdk to bluebird
#490 - Fix some more flakey tests
#492 - make the npm test script windows-friendly
#489 - Fix a bunch of races in the tests
#488 - Fix early return in MatrixClient.setGuestAccess
#487 - Remove testUtils.failTest
#486 - Add test:watch script
#485 - Make it possible to use async/await
#484 - Remove m.new_device support
#483 - Use access-token in header
#478 - Sanity-check response from /thirdparty/protocols
#482 - Avoid parsing plain-text errors as JSON
#479 - Use external mock-request
#481 - Fix some races in the tests
#480 - Fall back to MemoryCryptoStore if indexeddb fails
#475 - Fix load failure in firefox when indexedDB is disabled
#474 - Fix a race in a test
#471 - Avoid throwing an unhandled error when the indexeddb is deleted
#470 - fix jsdoc
#469 - Handle m.forwarded_room_key events
#468 - Improve error reporting from indexeddbstore.clearDatabase
#466 - Implement sharing of megolm keys
#454 - Process received room key requests
#449 - Send m.room_key_request events when we fail to decrypt an event
#448