@jcbrand jcbrand released this Sep 7, 2018 · 164 commits to master since this release

Assets 2

New Features

  • #161 XEP-0363: HTTP File Upload
  • #194 Include entity capabilities in outgoing presence stanzas
  • #337 API call to update a VCard
  • #421 XEP-0308: Last Message Correction
  • #497 XEP-0384: OMEMO encrypted messaging
  • #968 Use nickname from VCard when joining a room
  • #986 Affiliation changes aren't displayed in the chat
  • #1081 Allow for shift-enter to insert newlines
  • #1091 There's now only one CSS file for all view modes.
  • #1094 Show room members who aren't currently online
  • #1106 Support for Roster Versioning
  • #1137 Autocompletion and support for XEP-0372 References, specifically section "3.2 Mentions".
  • It's now also possible to edit your VCard via the UI
  • Automatically grow/shrink input as text is entered/removed
  • MP4 and MP3 files when sent as XEP-0066 Out of Band Data, are now playable directly in chat
  • Support for rendering URLs sent according to XEP-0066 Out of Band Data.
  • Geo-URIs (e.g. from Conversations) are now replaced by links to openstreetmap (works in reverse also)
  • Add a checkbox to indicate whether a trusted device is being used or not.
    If the device is not trusted, sessionStorage is used and all user data is deleted from the browser cache upon logout.
    If the device is trusted, localStorage is used and user data is cached indefinitely.
  • Initial support for XEP-0357 Push Notifications, specifically registering an "App Server".
  • Add support for logging in via OAuth (see the oauth_providers setting)


  • Spoiler messages didn't include the message author's name.
  • Documentation includes utf-8 charset to make minfied versions compatible across platforms. #1017
  • #1026 Typing in MUC shows "Typing from another device"
  • #1039 Multi-option data form elements not shown and saved correctly
  • #1143 Able to send blank message

API changes

  • _converse.api.vcard.get now also accepts a Backbone.Model instance and
    has an additional force parameter to force fetching the vcard even if it
    has already been fetched.
  • New API method _converse.api.vcard.update.
  • The contactStatusChanged event has been renamed to contactPresenceChanged
    and a event presenceChanged is now also triggered on the contact.
  • _converse.api.chats.open and _converse.api.rooms.open now returns a
    Presence which resolves with the Backbone.Model representing the chat

UI changes

  • #956 Conversation pane should show my own identity in pane header
  • The UI is now based on Bootstrap4 and Flexbox is used extensively.
  • Fontawesome 5 is used for icons.
  • User Avatars are now shown in chat messages.

Configuration changes

  • Removed the storage configuration setting, use trusted instead.
  • Removed the use_vcards configuration setting, instead VCards are always used.
  • Removed the xhr_custom_status and xhr_custom_status_url configuration
    settings. If you relied on these settings, you can instead listen for the
    event and make the XMLHttpRequest yourself.
  • Removed xhr_user_search in favor of only accepting xhr_user_search_url as configuration option.
  • xhr_user_search_url has to include the ? character now in favor of more flexibility. See example in the documentation.
  • The data returned from the xhr_user_search_url must now include the user's
    jid instead of just an id.
  • New configuration settings nickname
    and auto_join_private_chats.

Architectural changes

  • Extracted the views from converse-muc.js into converse-muc-views.js and
    where appropriate moved methods from the views into the models/collections.
    This makes MUC possible in headless mode.
  • Created a new core plugin converse-roster.js which contains the models for
    roster-related data. Previously this code was in converse-core.js.
  • VCards are now stored separately from chats and roster contacts.


  • Support for OTR (off-the-record) encryption has been dropped.