Skip to content

Releases: conversejs/converse.js

Version 4.0.0 - 2018-09-07

07 Sep 14:23
v4.0.0
Compare
Choose a tag to compare

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)

Bugfixes

  • 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
    object.

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
    statusMessageChanged
    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.

Other

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

Release 3.3.4 (2018-03-05)

05 Mar 13:54
v3.3.4
Compare
Choose a tag to compare
  • Don't show bookmark toggles when PEP bookmarking not supported by the XMPP server.
  • Emojis are now sent in unicode instead of short names (also in MUCs)

Bugfixes

  • Server field in Rooms tab showed MUC supporting clients instead of only components.
  • Avatars weren't being shown.
  • Bookmarks list and open rooms list weren't recreated after logging in for a 2nd time (without reloading the browser).
  • #1022 Status message not sent out on subsequent presences
  • #1024 null reference on MUC Invite
  • #1025 OTR lock icon disappears
  • #1027 new Event not supported in IE11
  • #1028 Avoid eval (crept in via _.template from lodash).

Translation changes

  • New locale: Bulgarian
  • Updated German, Russian, Chinese (traditional), Norwegian Bokmål and French translations.

Release 3.3.3 (2018-02-14)

14 Feb 16:21
v3.3.3
Compare
Choose a tag to compare

Changelog

3.3.3 (2018-02-14)

Bugfixes

  • Attribute error when empty IQ stanza is returned for vCard query
  • In fullscreen view, sometimes a background MUC would come into the foreground
    when a new message appears inside it.

Security fixes

  • CVE-2018-6591: Don't allow PEP bookmarks if pubsub#publish-options is not advertised by the server.

    In previous versions of converse.js, bookmarks sent to servers that don't
    support pubsub#publish-options were visible to all your contacts, even
    though they should be kept private. This is due to those servers simply
    ignoring the pubsub#publish-options directive and converse.js not checking
    first whether pubsub#publish-options is supported before setting bookmarks
    via PEP.

    More info here: https://gultsch.de/converse_bookmarks.html

New features

  • XEP-0382 Spoiler Messages (currently only for private chats)
  • Listen for new room bookmarks pushed from the user's PEP service.
  • Simplified the embedded usecase.
    • No need to manually blacklist or whitelist any plugins.
    • Relies on the view_mode being set to 'embedded'.
    • The main converse.js build can be used for the embedded usecase.
    • Maintain MUC session upon page reload

API changes

  • New API method _converse.disco.getIdentity to check whether a JID has a given identity.

Configuration settings

  • auto_reconnect is now set to true by default.
  • New configuration setting allow_public_bookmarks
  • New configuration setting root
  • The view_mode setting now has a new possible value: embedded

Translation updates

  • Chinese (Traditional), French, German, Portuguese (Brazil), Russian, Ukrainian

Release 3.3.2 (2018-01-29)

29 Jan 15:52
3.3.2
Compare
Choose a tag to compare

Bugfixes

  • Various fixes for IE11.
  • Could not register on Ejabberd 18. "Missing attribute 'id' in tag qualified by namespace 'jabber:client'"
  • #878 Ending slash in link not recognized
  • #921 FATAL error when visible_toolbar_buttons.emoji = false
  • #959 Add padding for the iPhone X (to the mobile CSS).
  • #993 moment.format is not a function error when sending a message.
  • #994 TypeError when using the user.login API.
  • #995 ChildNode.replaceWith is not available in Internet Explorer or Safari. Use Node.replaceChild instead.
  • #999 MUC Chat Send button causes page reload
  • #1000 Scroll to bottom when maximizing a chat room.
  • #1003 Handle bare MUC room JIDs

Translation changes

  • Updated Dutch, French, Japanese, Norwegian Bokmål and Ukrainian translations

Release 3.3.1 (2018-01-18)

18 Jan 14:17
v3.3.1
Compare
Choose a tag to compare

Changes

UI/UX changes

  • Add new configuration option
    show_message_load_animation
    with a default value of false. The message load animations (added in 3.3.0)
    cause slowness and performance issues in Firefox, so they're now disabled by default.

Translation changes

  • Updated Spanish and French translations.
  • New translation: "Simplified Chinese"
  • Rename zh language code to zh_TW and add Simplified Chinese as zh_CN

Release 3.3.0 (2018-01-17)

17 Jan 18:50
v3.3.0
Compare
Choose a tag to compare

Changes

Bugfixes

  • #800 Could not register successfully in ejabberd 17.01
  • #949 Don't flash the roster contacts filter (i.e. hide by default)
  • #951 Duplicate messages received in an MUC chat room.
  • #953 MUC "Features" displayed when exiting configuration
  • #967 Rooms list doesn't show when the server doesn't support bookmarks
  • Don't require auto_login to be true when using the API to log in.
  • Moment locale wasn't being set to the value passed via the i18n option.
  • In the chat heading, two avatars sometimes get rendered.
  • Refetch the roster from the server after reconnection.
    From the perspective of the XMPP server, this is an entirely new login,
    and therefore as per RFC-6121
    the roster SHOULD be queried, making the client an "interested resource".
    Otherwise connected contacts might not get your presence updates.
  • The way the archive ID of a MAM message is specified, has changed.
    See https://xmpp.org/extensions/xep-0313.html#archives_id
  • Fixed error building DOM toggle_chats.html span.unread-message-count class attribute
  • Bugfix. In a MUC the /help command didn't render properly.
  • The /voice MUC command didn't set the right role in order to grant voice again.

New Features

  • Emojis are now sent in unicode instead of short names
  • #314 Add support for opening chat rooms with a URL fragment such as #converse/room?jid=room@domain
    and private chats with a URL fragment such as #converse/chat?jid=user@domain
  • #828 Add routing for the #converse/login and #converse/register URL
    fragments, which will render the registration and login forms respectively.
  • New configuration setting view_mode
    This removes the need for separate inverse.js and converse-mobile.js
    builds. Instead the converse.js build is now used with view_mode set to
    fullscreen and mobile respectively.
  • Fetch VCard when starting a chat with someone not in the user's roster.
  • Show status messages in an MUC room when a user's role changes.
  • In MUC chat rooms, collapse multiple, consecutive join/leave messages.
  • Performance improvements for rendering private chats, rooms and the contacts roster.
  • MUC Leave/Join messages now also show a new day indicator if applicable.

API changes

  • New API method _converse.disco.supports to check whether a certain
    service discovery feature is supported by an entity.
  • New API method _converse.api.vcard.get which fetches the VCard for a
    particular JID.

Configuration changes

  • hide_open_bookmarks is now by default true.

UX/UI changes

  • #984 Improve loading of archived messages via "infinite scroll"
  • Use CSS3 fade transitions to render various elements.
  • Remove Login and Registration tabs and consolidate into one panel.
  • Show validation error messages on the login form.
  • Don't hang indefinitely and provide nicer error messages when a connection
    can't be established.
  • Consolidate error and validation reporting on the registration form.
  • Don't close the emojis panel after inserting an emoji.
  • Focus the message textarea when the emojis panel is opened or closed.
  • MUC chatroom occupants are now sorted alphabetically and according to their roles.

Technical changes

  • Converse.js now includes a Virtual DOM
    via backbone.vdomview and uses
    it to render various views.
  • Converse.js no longer includes all the translations in its build. Instead,
    only the currently relevant translation is requested. This results in a much
    smaller filesize but means that the translations you want to provide need to
    be available. See the locales_url
    configuration setting for more info.
  • The translation machinery has now been moved to a separate module in src/i18n.js.
  • jQuery has been completely removed as a dependency (still used in tests though).

Release 3.2.1 (2017-08-29)

29 Aug 11:33
v3.2.1
Compare
Choose a tag to compare

Bugfixes

  • Various IE11 fixes.
  • #907 Unnecessary login validation error when default_domain or locked_domain are set.
  • #908 Login form for inVerse is only 200px when allow_registration is set to false.
  • #909 Translations written as template literals aren't parsed properly by xgettext.
  • #911 Use getDefaultNickName consistently to allow better overrides via plugins.
  • #912 maximize method in converse-minimize fails if the controlbox is not there.

Release 3.2.0 (2017-08-09)

09 Aug 16:06
v3.2.0
Compare
Choose a tag to compare

New Plugins

  • New plugin converse-disco which replaces the original support for
    XEP-0030 and which has been
    refactored to allow features for multiple entities to be stored.

New features and improvements

  • Add support for Emojis (either native, or via Emojione).
  • Add JID validation to the contact add form, the occupant invite form and the login form.
  • #896 Consistently use XMPP username in user-facing text (instead of JID, Jabber ID etc.).

New configuration settings

  • The visible_toolbar_buttons.emoticons configuration option is now changed to visible_toolbar_buttons.emoji.
  • use_emojione
    is used to determine whether Emojione should be used to render emojis,
    otherwise rendering falls back to native browser or OS support.
  • emojione_image_path
    is used to specify from where Emojione will load images for rendering emojis.

New events

Code changes

  • Removed jQuery from converse-core, converse-vcard and converse-roomslist.
  • Remove jquery.easing from the full build. Was only being used by the
    conversejs.org website, which has been updated to not rely on it.
  • All promises are now native (or polyfilled) ES2015 Promises instead of jQuery's Deferred.
  • #866 Add babel in order to support ES2015 syntax

Bugfixes:

  • The domain was queried for MAM:2 support, instead of the JID.
  • Roster filter is not shown when all groups are collapsed.
  • When filtering, contacts in closed groups appear.
  • Room name wasn't being updated after changing it in the configuration form.
  • Server disco features were "forgotten" after logging out and then logging in again.
  • Don't show duplicate sent groupchat messages in Slack chat rooms.
  • Bookmark icon shown in the open rooms list when allow_bookmarks is to false.
  • It wasn't possible to add or remove bookmarks via the "Open Rooms" list.
  • #879 Text in links are converted to smileys leading to non-clickable links.
  • #899: Only touch stamp-npm if npm install was successful
  • #902 make build dependends on non-existing files

Release candidate for 3.2.0

22 Jul 20:26
Compare
Choose a tag to compare
Pre-release

Refer to CHANGES.md for the changelog.

Release 3.1.1 (2017-07-12)

12 Jul 20:57
v3.1.1
Compare
Choose a tag to compare
  • Use a patched version of awesomplete which doesn't render suggestions as HTML (possible XSS attack vector). [jcbrand]

More info here: LeaVerou/awesomplete#17082