Skip to content

v0.8.0

Compare
Choose a tag to compare
@lukebarnard1 lukebarnard1 released this 15 Aug 16:11

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:

  1. 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 calling startClient, to
    give the crypto layer a chance to initialise.
  2. 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.
  1. MatrixClient.listDeviceKeys has been removed altogether. It's been
    deprecated for some time. Applications using it should instead be changed to
    use MatrixClient.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 to userId if membership has displayname=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