@jcbrand jcbrand released this Dec 7, 2018 · 30 commits to master since this release

Assets 9
  • Updated translations: ar, cs, de, es, eu, fr, gl, hu, id, it, ja, nb, pt_BR
  • Don't render http (i.e. non-TLS) resources
  • Bugfix: Converse caused RID out of range errors on Prosody
  • Bugfix: MUC messages sometimes appear twice after resync.
  • #1331 Fix missing checkmarks in old muc messages
  • #1333 Don't send receipt requests in MUCs
  • #1348 Font gets cut off in Firefox #1348

@jcbrand jcbrand released this Nov 15, 2018 · 89 commits to master since this release

Assets 8
  • Error FATAL: TypeError: Cannot read property 'extend' of undefined when using embedded view mode.
  • Default paths in converse-notifications.js are now relative
  • Add a button to regenerate OMEMO keys
  • Add client info modal which shows Converse's version number
  • New config setting theme
  • #141 XEP-0184: Message Delivery Receipts
  • #1033 Setting show_send_button to true didn't work
  • #1188 Feature request: drag and drop file to HTTP Upload
  • #1268 Switch from SASS variables to CSS custom properties
  • #1278 Replace the default avatar with a SVG version
  • #1288 Add CSS classes to differentiate between incoming and outgoing messages
  • #1305 added value 'all' for 'show_desktop_notifications' to notifiy even if converse.js is open
  • #1306 added option notification_delay
  • #1312 Error unrecognized expression in Safari
  • #1316 show version info in login dialog
  • #1317 Don't show errors for CSI messages
  • #1318 added values 'on' and 'off' for 'trusted' option which removes the "This is a trusted device" checkbox from the login form
  • #1319 Implement sending of presences according to XEP-0319: Last User Interaction in Presence

@jcbrand jcbrand released this Oct 29, 2018 · 182 commits to master since this release

Assets 10


  • Use Lerna to create the @converse/headless package
  • Use ES2015 modules instead of UMD.
  • #1252 Correctly reflect the state in bookmark icon title.
  • #1257 Prefer 'probably' over 'maybe' when evaluating audio play support.
  • #1259 Don't inform of affiliation change after user leaves MUC
  • #1261 File upload not working
  • #1264 Right Align badges of room occupants
  • #1272 Hiding MUC occupants leaves a blank space
  • #1278 Replace the default avatar with a SVG version

@jcbrand jcbrand released this Oct 22, 2018 · 260 commits to master since this release

Assets 2
  • New translations: Arabic, Basque, Czech, French, German, Hungarian, Japanese, Norwegian Bokmål, Polish, Romanian, Spanish
  • Bugfix. Converse continuously publishes an empty OMEMO devicelist for itself
  • Bugfix. Handler not triggered when submitting MUC password form 2nd time
  • Bugfix. MUC features weren't being refreshed when saving the config form
  • Don't show duplicate notification messages
  • New config setting show_images_inline
  • Disable OMEMO when the user has indicated that Converse is running on an untrusted device.
  • #537 Render xmpp: URI as link
  • #1058 Send an inactive chat state notification when the user switches to another tab
  • #1062 Collapse multiple join/leave messages into one
  • #1063 URLs in the topic / subject are not clickable
  • #1140 Add support for destroyed chatrooms
  • #1169 Non-joined participants display an unwanted status message
  • #1185 Added Contact still shown as pending
  • #1190 MUC Participants column disappears in certain viewport widths
  • #1193 OMEMO messages without a <body> fallback are ignored
  • #1199 Can't get back from to login screen from registration screen
  • #1204 Link encoding issue
  • #1209 Bring color codes of users' status in line with other clients
  • #1214 Setting allow_contact_requests to false has no effect
  • #1221 Avoid creating a headlines box if we don't have anything to show inside it
  • #1222 Adding a bookmark should prefill the room name
  • #1228 Converse automatically visits links (to try and determine whether they're images to show inline)

@jcbrand jcbrand released this Oct 2, 2018 · 333 commits to master since this release

Assets 6
  • M4A and WEBM files, when sent as XEP-0066 Out of Band Data, are now playable directly in chat
  • Updated French and Spanish translations
  • Two new languages supported, Hindi and Romanian
  • #1187 UTF-8 characters have the wrong encoding when using OMEMO
  • #1189 Video playback failure
  • #1220 Converse not working in Edge
  • #1225 User profile sometimes not displayed when libsignal-protocol.js is used
  • #1227 Login form does not work in Epiphany

@jcbrand jcbrand released this Sep 19, 2018 · 358 commits to master since this release

Assets 2

@jcbrand jcbrand released this Sep 7, 2018 · 401 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.

@jcbrand jcbrand released this Mar 5, 2018 · 1330 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 · 1357 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 · 1439 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