@jcbrand jcbrand released this Mar 5, 2018 · 747 commits to master since this release

Assets 16
  • 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)


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

@jcbrand jcbrand released this Feb 14, 2018 · 774 commits to master since this release

Assets 2


3.3.3 (2018-02-14)


  • 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

@jcbrand jcbrand released this Jan 29, 2018 · 856 commits to master since this release

Assets 2


  • 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

@jcbrand jcbrand released this Jan 18, 2018 · 886 commits to master since this release

Assets 2


UI/UX changes

  • Add new configuration option
    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

@jcbrand jcbrand released this Jan 17, 2018 · 956 commits to master since this release

Assets 10



  • #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).

@jcbrand jcbrand released this Aug 29, 2017 · 1308 commits to master since this release

Assets 16


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

@jcbrand jcbrand released this Aug 9, 2017 · 1341 commits to master since this release

Assets 16

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


  • 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

@jcbrand jcbrand released this Jul 5, 2017 · 1450 commits to master since this release

Assets 6

API changes

  • Deprecate the updateSettings method in favour of
    _converse.settings.update. [jcbrand]
  • Add a new API method _converse.promises.add for exposing promises to be
    used with _converse.waitUntil. [jcbrand]
  • The message event now returns a data object with stanza and
    chatbox attributes, instead of just the stanza. [jcbrand]

New Plugins

  • New non-core plugin converse-singleton which ensures that no more than
    one chat is visible at any given time. Used in the mobile build:
    converse-mobile.js and makes the unread messages counter possible there.
  • New non-core plugin converse-roomslist, which shows a list of open rooms
    in the Rooms tab of the control box. [jcbrand]

New configuration settings

  • New setting for converse-bookmarks:
    It is meant to be set to true when using converse-roomslist so that open
    rooms aren't listed twice (in the rooms list and the bookmarks list).

Github tickets resolved

  • #567 Unreaded message count reset on page load [novokrest]
  • #575 Logging out from converse.js doesn't clear the connection status from the
    sessionStorage [jcbrand]
  • #591 Unread message counter is reset when the chatbox is closed [novokrest]
  • #754 Show unread messages next to roster contacts. [jcbrand]
  • #864 Remove all inline CSS to comply with strict Content-Security-Policy headers [mathiasertl]
  • #873 Inconsistent unread messages count updating [novokrest]
  • #887 Make embedded images clickabe [jcbrand]
  • #890 Message carbons not sent out after reconnection [jcbrand]
  • #894 Room affiliation lost when connection jid and room presence jid are of different case [Rayzen]


  • Support for XMPP-0313 Message Archive Management
    has been upgraded to version 2. [jcbrand]
  • Show unread messages for minimized chats. [jcbrand]
  • Render nickname form when entering a room via invitation. [jcbrand]