Converse.js 8.0.1

Converse.js is an instant messaging client for websites. It provides an entirely browser-based Jabber/XMPP interface, and can connect to any XMPP public server. Converse implementes single and multiuser chats, invitations, service discovery, direct registration, contact lists, roosters and vCard exchange, status changes and messages, typing and state notification, and OTR encryption.

Tags javascript html5 xmpp jabber chat messaging instant-messaging web-based
License MPL
State stable

Recent Releases

8.0.110 Sep 2021 08:05 minor feature: #2326: 404 for asset /logo/conversejs-filled.svg. #2628: Open groupchats toggle emits an error. #2629: OMEMO button tooltip is wrong in private chat. #2633: Excessive logging of warning. #2634: Image previews not loading when not serving Converse locally. #2636: Don't fail when setting up a new XEP-0198 managed stream and _converse.session is undefined. Don't show minimized chats when logged out.
8.0.004 Sep 2021 07:45 minor feature: #2500: SECURITY : wrong assignment in OMEMO code. #2496: /nick command is not working.
7.0.611 Jun 2021 11:45 minor feature: #2377: The @converse/headless NPM package is missing the dist directory, causing import errors. #2396: @converse/headless wrongly depends on CustomElement from the view layer. #2381: Converse does not reflect the browser language. Update to latest Strophe which a reconnection when using SCRAM-SHA1 SASL auth.
7.0.517 Mar 2021 14:25 minor feature: #2377: The @converse/headless NPM package is missing the dist directory, causing import errors. #2396: @converse/headless wrongly depends on CustomElement from the view layer. #2381: Converse does not reflect the browser language. Update to latest Strophe which a reconnection when using SCRAM-SHA1 SASL auth.
7.0.303 Dec 2020 11:45 minor feature: null inserted by emoji picker and can't switch between skintones.
7.0.227 Nov 2020 21:45 minor feature: Updated translations: de, nb, gl, tr. Still more necessary files not included in the 7.0.1 NPM package, causing Module not found errors. #2337: Newly opened headline chat isn't hidden by default.
7.0.123 Nov 2020 21:25 minor feature: #2328: Honor use_system_emojis in emoji-picker. Not all *.js files were included in the 7.0.0 package, causing:Module not found: Error: Can't resolve 'templates/*.js'.
7.0.019 Nov 2020 11:05 minor feature: #2231: add sort_by_query and remove sort_by_length. #1313: Stylistic improvements to the send button. #1481: MUC OMEMO: Error No record for device. #1490: Busy-loop when fetching registration form fails. #1535: Add option to destroy a MUC. #1715: Update chat state notification after receiving a message correction. #1793: Send button doesn't appear in Firefox in 1:1 chats. #1820: Set focus on jid field after controlbox is loaded. #1822: Don't log error if user has no bookmarks. Add support for XEP-0050 Ad-Hoc commands. #1823: New config options muc_roomid_policy. and muc_roomid_policy_hint. #1826: A user can now add himself as a contact. #1839: Headline messages are shown in controlbox. #1924: Configuring an ejabberd room fails. #1896: Don't send receipts for messages fetched from the archive. #1937: Editing a message removes the mentions highlight. #1963: Mentions are visually incorrect when used in message replies. #1999: Demarcate first unread message. #2002: rendering of muc_roomid_policy_hint. #2006: rendering of emojis in case use_system_emojis == false. #2028: Implement XEP-0333 displayed chat marker. #2101: Improve contrast of text in control box. #2187: Avoid merging initial settings with themselves every time settings are extended. #2199: BOSH session restore. #2201: added html to converse.env. #2213: added CustomElement to converse.env. #2220: rendering of emojis in case use_system_emojis == false (again). #2092: room list update loop when having the locked_muc_domain truthy or 'hidden'. #2285: Rename config option muc_hats_from_vcard to muc_hats. Now accepts a list instead of a boolean and allows for more flexible choices regarding user badges. #2300: message reorder after message correction. #2304: Custom emojis (stickers) images not shown. #2307: BootstrapModal is not accessible to plugins. #2308: Allow getHats method to be overriden in the overrides object in plugins. #2321: When Converse runs inside a browser extension,
6.0.114 Feb 2020 09:45 minor feature: Handle stanza that clears the MUC subject. #1313: Stylistic improvements to the send button. #1793: Send button doesn't appear in Firefox in 1:1 chats. #1822: Don't log error if user has no bookmarks. #1820: Set focus on jid field after controlbox is loaded. #1823: New config options muc_roomid_policy. And muc_roomid_policy_hint. #1826: A user can now add himself as a contact.
6.0.011 Jan 2020 16:45 minor feature: enable_smacks is not set to true by default. . Refactor some presence and status handling code from converse-core into @converse/headless/converse-status. . It's now possible to navigate the emoji-picker via the keyboard arrow keys. . Add support for notifications about affiliation change for users not in a room. . Add support for XEP-0424 Message Retraction. . Add support for XEP-0425 Message Moderation. . New API _converse.api.headlines. . New config option allow_message_retraction. . New config option muc-show-logs-before-join. . New config option muc_mention_autocomplete_filter. . New config option muc_mention_autocomplete_show_avatar. . New config option persistent_store. . Initial support for sending custom emojis. Currently only between Converse. instances. Still working out a wire protocol for compatibility with other clients. To add custom emojis, edit the emojis.json file. . #129: Add support for XEP-0156: Disovering Alternative XMPP Connection Methods. Only XML is supported for now. . #1105: Support for storing persistent data in IndexedDB. . #1253: Show contacts with unread messages at the top of the roster. . Display occupants avatars in the occupants list. . #1640: Add the ability to resize the occupants sidebar in MUCs. . #1666: Allow scrolling of the OMEMO fingerprints list. . #1691: collection.chatbox is undefined errors. . #1767: credentials_url is not called when logging out and then in again. . #1764: Incorrect URI encoding in "mention" references. . #1772: _converse.api.contact.add(jid, nick) fails, says not a function. . #1791: auto_focus set to false is ignored when switching back to a MUC. . #1792: : modals don't have scrollbars. . #1796: Don't show "back" arrow navigation (on mobile) in the chat header when in singleton mode. . #1821: Errors caused by malformed URLs are now handled. . The deconfiguration option has been replaced with loglevel. . In contrast to sessionStorage and localSt
5.0.521 Nov 2019 09:25 minor feature: Prevent editing of sent file uploads. #1089: When filtering the roster for online users, show all non-offline users. #1733: New message notifications for a minimized chat stack on top of each other. #1757: Chats are hidden behind the controlbox on mobile. #1760: Private messages no longer received after websocket reconnect.
5.0.409 Oct 2019 11:25 minor feature: New config option allow_message_corrections Which, if set to last, limits editing of sent messages to the last message sent. Don't treat every duplicate message ID as a message correction; since some clients don't use globally unique ID's this causes false positives. process stanzas from mam one-by-one in order to correctly process message receipts. #1712: TypeError: plugin._features is not a function. #1714: Don't notify the user in case we're receiving a message delivery receipt only. #1739: New config option assets_path. Which lets you set the path from which "chunks" are loaded.
5.0.316 Sep 2019 03:25 minor feature: Emit chatBoxFocused and chatBoxBlurred events for emoji picker input. SECURITY : Reject unencapsulated forwarded messages, since we don't support XEP-0297 on its own.
5.0.212 Sep 2019 16:25 minor feature: po translations files are now loaded via Webpack. As a result the locales_url config option is now removed given that the path to the locale JSON files is now determined by the webpack config and can't be changed at runtime. The JSON representing emojis is now fetched asynchronously as a separate file converse.emojis.js. Webpack is now configured with a publicPath set to /dist/. This is necessary so that chunks (such as the emojis and locales JSON files) can be fetched asynchronously. This means that all your assets need to be served at /dist. If you need to set a different path, you'll need to set publicPath in webpack.config.js to your preferred path and then rebuild all assets (e.g. make dist). Use listenTo to avoid memory leaks when views get removed. SECURITY : Ignore MAM chat messages not sent from yourself. #1692 : TypeError: oldest_message is undefined. SECURITY : Impersonation by misusage of groupchat carbons. #1705 : this.roomspanel is undefined after hibernating.
5.0.116 Aug 2019 06:45 minor feature: Add a new GUI for moderator actions. You can trigger it by entering /modtools in a MUC. Reconnect if the server doesn't respond to a ping within 10 seconds. Don't query for MAM MUC messages before the cached messages have been restored (another cause of duplicate messages). Show an error message and option to retry when fetching of the MAM archive times out. TypeError: o.getAttribute is not a function converse-chatview.js (can cause messages to not appear).
5.0.009 Aug 2019 13:25 minor feature: BOSH support has been moved to a plugin. Support for XEP-0410 to check whether we're still present in a room. Initial support for the CredentialsContainer web API. Allow for synchronous events. When a synchronous event is fired, Converse will wait for all promises returned by the event's handlers to finish before continuing. Properly handle message correction being received before the corrected message. Groupchat default configuration now supports list-multi fields. Don't set muc_domain for roomspanel if locked_muc_domain is true. Modal auto-when you open it for a second time. Cannot read property 'parentElement' of null in shadow DOM. Take roster nickname into consideration when rendering messages and chat headings. Hide the textarea when a user is muted in a groupchat. Don't restore a BOSH session without knowing the JID. In the /help menu, only show allowed commands. Message deduplication and improvements. Continuously retry (in 2s intervals) to fetch login credentials (via credentials_url) in case of failure. Replace moment with DayJS. New config option auto_focus. New config option clear_messages_on_reconnection. New config option enable_smacks. New config option message_limit. New config option muc_fetch_members. New config option muc_mention_autocomplete_min_chars. New config option muc_show_join_leave_status. New config option singleton By setting this option to false and view_mode to 'embedded', it's now possible to "embed" the full app and not just a single chat. To embed just a single chat, it's now. necessary to explicitly set singleton to true. Re-add the previously removed config option keepalive. New event: chatBoxBlurred. New event: chatReconnected. #316: Add support for XEP-0198 Stream Management. #1071: x clear cross of same size as text. #1142: Up/down arrow shouldn't erase current message. #1196: Use alternative connection method upon connfail. #1296: embedded view mode shows chatbox-navback arrow in header. #1330: Missing room name in M
4.2.005 Apr 2019 14:25 minor feature: Updated translations: af, cz, de, es, gl, he, lt, nl, nl_BE, ru. Upgrade to Backbone 1.4.0, Strophe 1.3.2 and Jasmine 2.99.2. Remove dependency on (our fork of) Awesomplete. Prevent user from adding themselves as contact. "flashing" of roster filter when you have less than 5 roster contacts. handling of CAPTCHAs offered by ejabberd. Don't send out receipts or markers for MAM messages. Allow setting of demode via URL with /#converse?de=true. Render inline images served over HTTP if Converse itself was loaded on an unsecured (HTTP) page. Make sure nickname passed in via _converse.initialize has first preference as MUC nickname. Make sure required registration fields have "required" attribute. New config setting autocomplete_add_contact. New config setting locked_muc_domain. New config setting locked_muc_nickname. New config setting show_client_info. Document new API method sendMessage. Don't filter out own device when sending an OMEMO message. #1149: With xhr_user_search_url, contact requests are not being sent out. #1213: Switch roster filter input and icons. #1327: False mentions positives in URLs and Email addresses. #1352: Add Jed as dependency of @converse/headless. #1373: Re-add support for the muc_domain setting. #1400: When a chat message is just an emoji, enlarge the emoji. #1407: Silent errors when trying to use whitespace as MUC nickname. #1437: List of groupchats in modal doesn't scroll. #1457: Wrong tooltip shown for "unbookmark" icon. #1467: rendering of URLs enwith sharp brackets such as . #1479: Allow file upload by drag drop also in MUCs. #1487: New config option muc_respect_autojoin. #1488: In error message, fall back to JID if name is not available. #1501: Don't prompt for a reason if auto_join_on_invite is true. #1507: Make message id and origin-id identical in order to LMC with Conversations. #1508: Minimized bookmarked chatboxes should not be always maximized after page reload. #1512: Allow manual entry of jid even with xhr_use
4.1.223 Feb 2019 07:25 minor feature: Updated translations: af, cz, de, es, he, it, nl, nl_BE, pt_BR, zh_CN. Prevent duplicate messages by comparing MAM archive id to XEP-0359 stanza ids. Open groupchats not shown when logging in after disconnection. #1406: TypeError: e.devicelists is undefined when unchecking the "trusted device" checkbox.
4.1.119 Feb 2019 04:25 minor feature: Updated translations: af, cz, de, es, eu, ga, he, hi, ja, nb, nl_BE, zh_CN. New language supported: Esperanto. Accessibility: Tag the chat-content as an ARIA live region, for screen readers. Set releases URL to new Github repo. Rudimentary support for XEP-0333 chat markers. Better support for XEP-0359 stanza-id and origin-id elements. restore textarea size after sending a message. MUC invite form not appearing. Don't wrongly interpret message with subject as a topic change. Status of contacts list are not displayed properly. New config option roomconfig_whitelist. HTTP upload not working if conversations push proxy is used. MUC moderator commands can be disabled selectively by config. moderator commands that change affiliation. Prevent duplicate messages on MUC join. Margin between nickname and badge. direct invite for membersonly room. Resurrect the muc_show_join_leave option. Update contact nickname when receiving a roster push. MUC read receipts causing empty lines.
4.1.012 Jan 2019 10:25 minor feature: MUC commands were being ignored. Multiple rooms shown active in the rooms list. Don't open chats when receiving messages without a body. Typing in the textarea can become very slow in large MUCs. UI: Always show the OMEMO lock icon (grayed out if not available). Use publish-options with pubsub#access_model set to open when publishing OMEMO public keys and devices. Add a new converse-pubsub plugin, for generic PubSub operations. It's now possible to use OMEMO in a MUC (if it's members-only and non-anonymous). Force avatar refetch when receiving vcard-temp:x:update. send_chat_state_notifications doesn't work in MUCs. Message Delivery Receipts not working because of the message "type" attribute. Make triangle icon usable. Can't load embedded chat when changing view_mode between page reloads. some alignment in the sidebar. Message Delivery Receipts were being sent for carbons and own messages. MUC unread messages indicator is failing. Message Delivery Receipts: Set store hint and type='chat'. implement muc-owner command /destroy.
4.0.608 Dec 2018 06:05 minor feature: 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. Converse caused RID out of range errors on Prosody. MUC messages sometimes appear twice after resync. missing checkmarks in old muc messages. Don't send receipt requests in MUCs. Font gets cut off in Firefox #1348.
4.0.516 Nov 2018 06:25 minor feature: 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. XEP-0184: Message Delivery Receipts. Setting show_send_button to true didn't work. Feature request: drag and drop file to HTTP Upload. Switch from SASS variables to CSS custom properties. Replace the default avatar with a SVG version. Add CSS classes to differentiate between incoming and outgoing messages. added value 'all' for 'show_desktop_notifications' to notifiy even if converse.js is open. added option notification_delay. Error unrecognized expression in Safari. show version info in login dialog. Don't show errors for CSI messages. added values 'on' and 'off' for 'trusted' option which removes the "This is a trusted device" checkbox from the login form. Implement sending of presences according to XEP-0319: Last User Interaction in Presence.
4.0.431 Oct 2018 10:05 minor feature: Use Lerna to create the @converse/headless package. Use ES2015 modules instead of UMD. Correctly reflect the state in bookmark icon title. Prefer 'probably' over 'maybe' when evaluating audio play support. Don't inform of affiliation change after user leaves MUC. File upload not working. Right Align badges of room occupants. Hiding MUC occupants leaves a blank space. Replace the default avatar with a SVG version.
4.0.323 Oct 2018 03:25 minor feature: New translations: Arabic, Basque, Czech, French, German, Hungarian, Japanese, Norwegian Bokmål, Polish, Romanian, Spanish. Converse continuously publishes an empty OMEMO devicelist for itself. Handler not triggered when submitting MUC password form 2nd time. 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. Render xmpp: URI as link. Send an inactive chat state notification when the user switches to another tab. Collapse multiple join/leave messages into one. URLs in the topic / subject are not clickable. Add support for destroyed chatrooms. Non-joined participants display an unwanted status message. Added Contact still shown as pending. MUC Participants column disappears in certain viewport widths. OMEMO messages without a fallback are ignored. Can't get back from to login screen from registration screen. Link encoding. Bring color codes of users' status in line with other clients. Setting allow_contact_requests to false has no effect. Avoid creating a headlines box if we don't have anything to show inside it. Adding a bookmark should prefill the room name. Converse automatically visits links (to try and determine whether they're images to show inline).
4.0.203 Oct 2018 18:45 minor feature: 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. UTF-8 characters have the wrong encoding when using OMEMO. Video playback failure. Converse not working in Edge. User profile sometimes not displayed when libsignal-protocol.js is used.
4.0.120 Sep 2018 04:05 minor feature: Use https://compliance.conversations.im instead of (dead) https://xmpp.net. New config setting auto_register_muc_nickname. New config setting enable_muc_push. MUC occupants without nick or JID created. Notification error when message has no body. Emoji picker appears when pressing enter.
4.0.008 Sep 2018 07:05 minor feature: XEP-0363: HTTP File Upload. Include entity capabilities in outgoing presence stanzas. API call to update a VCard. XEP-0308: Last Message Correction. XEP-0384: OMEMO encrypted messaging. Use nickname from VCard when joining a room. Affiliation changes aren't displayed in the chat. Allow for shift-enter to insert newlines. There's now only one CSS file for all view modes. Show room members who aren't currently online. Support for Roster Versioning. 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. Typing in MUC shows "Typing from another device". Multi-option data form elements not shown and saved correctly. Able to send blank message. _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
3.3.406 Mar 2018 06:05 minor feature: 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). Status message not sent out on subsequent presences. null reference on MUC Invite. OTR lock icon disappears. new Event not supported in IE11. Avoid eval (crept in via _.template from lodash). New locale: Bulgarian. Updated German, Russian, Chinese (traditional), Norwegian Bokmål and French translations.
3.3.315 Feb 2018 19:05 minor feature: 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. 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 . 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 . 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. New API method _converse.disco.getIdentity to check whether a JID has a given identity. 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. Chinese (Traditional), French, German, Portuguese (Brazil), Russian, Ukrainian.
3.3.230 Jan 2018 12:05 minor feature: Various for IE11. Could not register on Ejabberd 18. "Missing attribute 'id' in tag qualified by namespace 'jabber:client'". Ending slash in link not recognized. FATAL error when visible_toolbar_buttons.emoji = false. Add padding for the iPhone X (to the mobile CSS). moment.format is not a function error when sending a message. TypeError when using the user.login API. ChildNode.replaceWith is not available in Internet Explorer or Safari. Use Node.replaceChild instead. MUC Chat Send button causes page reload. Scroll to bottom when maximizing a chat room. Handle bare MUC room JIDs. Updated Dutch, French, Japanese, Norwegian Bokmål and Ukrainian translations.
3.3.122 Jan 2018 06:45 minor feature: Add new configuration optionshow_message_load_animation with a default value of false. The message load animations (added in 3.3.0) cause slowness and performance in Firefox, so they're now disabled by default. Updated Spanish and French translations. New translation: "Simplified Chinese". Rename zh language code to zh_TW and add Simplified Chinese as zh_CN.
3.3.018 Jan 2018 06:25 minor feature: Could not register successfully in ejabberd 17.01. Don't flash the roster contacts filter (i.e. hide by default). Duplicate messages received in an MUC chat room. MUC "Features" displayed when exiting configuration. 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. error building DOM toggle_chats.html span.unread-message-count class attribute. 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. Emojis are now sent in unicode instead of short names. 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. 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 tofullscreen 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 me
3.2.130 Aug 2017 06:45 minor feature: Various IE11. Unnecessary login validation error when default_domain or locked_domain are set. Login form for inVerse is only 200px when allow_registration is set to false. Translations written as template literals aren't parsed properly by xgettext. Use getDefaultNickName consistently to allow better overrides via plugins. maximize method in converse-minimize fails if the controlbox is not there.
3.2.010 Aug 2017 18:05 minor feature: New plugin converse-disco which replaces the original support forXEP-0030 and which has been refactored to allow features for multiple entities to be stored. 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. Consistently use XMPP username in user-facing text (instead of JID, Jabber ID etc.). 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. 'discoInitialized'. 'afterMessagesFetched'. Removed jQuery from converse-core, converse-vcard and converse-roomslist. Remove jquery.easing from the full build. Was only being used by theconversejs.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. 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 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. Text in links are converted to smileys leading to non-clickable links. #899: Only touch stamp-npm if npm install was successful. make build dependends on non-existing files.
3.2.0-rc23 Jul 2017 07:05 minor feature: Add support for Emojis. Remove the ability to use emojione for rendering emoji. Merge branch 'master' into emoji. Some usability around the toolbar and emojis. Pad the emoji categories. Pad the emoji categories. Filter out some emojis which don't have native support yet. CSS. Rounded corners in inverse. Mention inverse in the readme and index.html. Mention inverse on demo page. Forgot to add link. Update contact section. Add website CSS and fonts. core: Some more logging improvements. bookmarks: clear the `fetched_flag` upon logout. Initial steps to adding babel. Initial stab at using ES2015. Builds are now created from babel transpiled code. Use uglify-es to minimize files.o. Use esnext to auto-generate es2015 syntax. Some work on using es6 promises. Recreate promises whenever `initialize` is called. broken tests due to using ES2015 promises. Replace .Deferred with ES2015 promises. broken tests and update changelog. Merge branch '3.1.x'. Don't blanket ignore dist dir, to avoid confusion. Add build scripts for esnext version. vcard: remove jQuery as dependency. roomslist: Room name wasn't being shown in `confirm` dialog. Don't escape room name. roomslist: replace jQuery methods with native. Add `slideUp` and `slideDown` methods. Add package-lock.json. Update the website to not use jquery.easing. Merge branch 'master' into emoji. Updated package-lock. tests. Remove the `visible_toolbar_buttons.emoticons` config option. Refactor slide methods in utils and use them for toolbar menus. Improve styling for emoji-picker in the converse theme. Use `emoji` instead of `emoticon`. failing test for emoji picker. Reuse code for submitting a message. Refactor slightly to improve readability. Don't specify method. vcard: 'FN' may not be defined. Add `js-xss` and use it to sanitize message HTML. emoji: Allow the option of using emojione (now that we sanitize). emoji: rendering of emojione images. Expand test for rendering of images. emoji: Add a skin-tone picker to the emoji toolb
3.1.113 Jul 2017 08:25 minor feature: Use a patched version of awesomplete which doesn't render suggestions as HTML (possible XSS attack vector). jcbrand .
3.1.006 Jul 2017 03:45 minor feature: 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 andchatbox attributes, instead of just the stanza. jcbrand . 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. jcbrand . New non-core plugin converse-roomslist, which shows a list of open rooms in the Rooms tab of the control box. jcbrand . New setting for converse-bookmarks:hide_open_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). jcbrand . Unreaded message count reset on page load novokrest . Logging out from converse.js doesn't clear the connection status from the sessionStorage jcbrand . Unread message counter is reset when the chatbox is novokrest . Show unread messages next to roster contacts. jcbrand . Remove all inline CSS to comply with strict Content-Security-Policy headers mathiasertl . Inconsistent unread messages count updating novokrest . Make embedded images clickabe jcbrand . Message carbons not sent out after reconnection jcbrand . 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 .
3.0.224 Apr 2017 13:45 minor feature: Don't rerender the text input when filtering contacts. jcbrand . Show the MUC server in a bookmarked room's info view (in the bookmarks list). jcbrand . Enable creation of dist/converse-muc-embedded.js build file for the embedded MUC room demo. jcbrand . Use noConflict to avoid polluting globale namespace with lodash and Backbone. jcbrand . MUC user's nickname wasn't being shown in HTML5 notification messages. jcbrand . OTR meta-messages were being shown in HTML5 notifications. jcbrand . CSS : Icon lock wasn't showing. jcbrand . Open chat minimised novokrest . Persistent muc room creation not working jcbrand . OTR doesn't start when cache_otr_key is set to true. jcbrand . TypeError: _converse.i18n.locale_data is undefined when reconnecting. jcbrand . Roster not loading when group names are numbers. jcbrand .
3.0.105 Apr 2017 15:25 minor feature: Endless spinner when trying to log in after rendering the registration form. jcbrand . Duplicate contact created due to JID case sensivity saganshul . the in displaying chat status during private chat. saganshul . Changes the message displayed while typing from a different resource of the same user. smitbose . Time format made configurable. See time_format smitbose . Add "Send" button to input box in chat dialog window. See show_send_button saganshul . Automatic fetching of registration form when registration_domain is set. smitbose . The _converse.listen API event listeners aren't triggered. jcbrand . Error: Plugin "converse-dragresize" tried to override HeadlinesBoxView but it's not found. jcbrand . jQuery wasn't being closured in builds. jcbrand . Images from URLs with query strings aren't being rendered. novokrest . Inconsistency in displaying room features. jcbrand .
3.0.006 Mar 2017 03:17 minor feature: Breaking changes: Callbacks for converse.on now no longer receive an event object as first parameter. The API has been split into public and private parts. The private API methods are now only available to plugins. For more info, read developer API and the plugin_development documentation. To prevent confusion the private, closured object, only available to plugins, has been renamed from converse to _converse. The public API is accessible via a global converse object. The keepalive and roster_groups options are now set to true by default. Templates are no longer stored as attributes on the _converse object. If you need a particular template, use require to load it. . Callbacks for converse.on now no longer receive an event object as first parameter. The API has been split into public and private parts. The private API methods are now only available to plugins. For more info, read developer API and the plugin_development documentation. To prevent confusion the private, closured object, only available to plugins, has been renamed from converse to _converse. The public API is accessible via a global converse object. The keepalive and roster_groups options are now set to true by default. Templates are no longer stored as attributes on the _converse object. If you need a particular template, use require to load it. After bookmarking a room for which a nickname is required, return to the nickname form. jcbrand . . Show the chat states of room occupants. jcbrand . . The no-jQuery build has been renamed from converse.nojquery.js to converse-no-jquery.js to fit the convention used for other build names. jcbrand . . 50 is the new default archived_messages_page_size jcbrand . . Better support for delayed delivery of presence stanzas (XEP-0203). jcbrand . . The chat room description is now shown in the heading, not the subject. jcbrand . . Chat room features are shown in the sidebar. jcbrand . . Hide the chat room invite widget if the room is not open o
2.0.614 Feb 2017 09:05 minor feature: Escape user-generated input to prevent JS-injection attacks. (Thanks to SamWhited) jcbrand . Honor existing mam user configuration throwaway42 . #749 /me will show your contact's name in the sent field jcbrand . Browser language (fr-fr or fr) is not detected by default jcbrand . Anonymous login form is a text field instead of a push button jcbrand .
1.0.702 Feb 2017 14:05 minor feature: Prevent message forging via carbons. (Thanks to ge0rg) jcbrand .
2.0.414 Dec 2016 11:25 minor feature: #737: Translations weren't being applied. jcbrand . Fetch room info and store it on the room model. For context, see: http://xmpp.org/extensions/xep-0045.html#disco-roominfo jcbrand . Switching from bookmarks form to config form shows only the spinner. jcbrand . Other room occupants sometimes not shown when reloading the page. jcbrand . Due to changes in converse-core the controlbox wasn't aware anymore of. disconnection or reconnection events. jcbrand . Optimize fetching of MAM messages (in some cases happened on each page load). jcbrand . empty controlbox toggle after disconnect. jcbrand . When inviting someone to a members-only room, first add them to the member list. jcbrand . New configuration setting muc_disable_moderator_commands jcbrand .
2.0.301 Dec 2016 17:25 minor feature: keepalive not working with anonymous authentication jcbrand . #723 : Arrays in configuration settings were ignored. jcbrand . #734. converse.rooms.open ignored the muc_nickname_from_jid setting. jcbrand . Enable new rooms to be configured automatically, with a default config, via rooms.open. For details, refer to the relevant documentation jcbrand . Chatboxes aren't when logging out. jcbrand . Trying to save data on the ControlBox model before ChatBoxes. collection has its browserStorage configured. Causes Error: A "url" property or function must be specified. jcbrand . Don't open the controlbox on contact requests. jcbrand . Reconnection fails when original connection was never established. jcbrand . If a credentials_url is provided, then keep on attempting to reconnect when connection is down. jcbrand . Remove (undocumented) callback config parameter for converse.initialize. Instead, converse.initialize returns a promise which will resolve once initialization is complete. jcbrand . New event 'reconnecting' jcbrand . New configuration setting allow_bookmarks jcbrand . The rooms.open API method will no longer maximize rooms that are minimized (unless maximize: true is passed in). jcbrand .
2.0.108 Nov 2016 20:05 minor feature: New configuration setting muc_domain jcbrand . White content after submitting password on chatrooms jcbrand . Controlbox clicks stop responding after auto-reconnect jcbrand . Removed shared state between tests. All tests are now isolated. jcbrand . Allow the context (i.e. this value) to be passed in when registering event listeners with converse.listen.on and converse.listen.once. jcbrand . New event 'rosterContactsFetched' jcbrand . New event 'rosterGroupsFetched' jcbrand . HTML templates are now loaded in the respective modules/plugins. jcbrand . Start improving Content-Security-Policy compatibility by removing inline CSS. mathiasertl . Add support for XEP-0048, chat room bookmarks jcbrand . New configuration setting connection_options jcbrand .
2.0.017 Sep 2016 19:45 minor feature: Online users count not shown initially amanzur . Polish translation updated ser . Backwards incompatible change: the _super attribute in plugins is now named __super__. jcbrand . Continuously attempt to resurrect dead connections when auto_reconnect is true. jcbrand . Update the 'rooms' API to allow user to pass in room attributes. jcbrand . Add new configuration setting message_storage jcbrand . Hardcode the storage for roster contacts and chatroom occupants to sessionStorage. jcbrand . wrong chat state value, should be chat, not chatty. See RFC 3921. jcbrand . Adds support for SASL-EXTERNAL. jcbrand .
1.0.613 Aug 2016 15:25 minor feature: Offline and Logout states do not properly update once users start chatting. chrisuehlinger, jcband . Polish translation updated to the current master. ser . Chatbox does not open after. jcbrand . The behavior of converse.chats.get has changed. If the chat box is not already open, then undefined will be returned. jcbrand . Typing (i.e. chat state) notifications are now also sent out from MUC rooms. jcbrand . ChatRoomView.onChatRoomMessageSubmitted has been renamed to. onMessageSubmitted, to make it the same as the method on ChatBoxView. jcbrand . New config option muc_nickname_from_jid jcbrand . New config option muc_instant_rooms jcbrand .
1.0.501 Aug 2016 06:45 minor feature: In case of nickname conflict when joining a room, allow the user to choose a new one. jcbrand . Check whether the user has a reserved nickname before entering a room, and if so, Use it. jcbrand . Mention someone in your chat room message by clicking on their name in the occupants List. jcbrand . When accepting a contact request, the contact didn't appear in the. Pending contacts group. jcbrand . allow multiple MAM queries to be made simultaneously. jcbrand .
1.0.428 Jul 2016 21:05 minor feature: Restrict occupants sidebar to 30 chatroom width. jcbrand . Made requesting contacts more visible, by placing them at the top of the roster. jcbrand . insertIntoPage method of ChatBoxView has been renamed to insertIntoDOM. to make it the same as the method of ChatRoomView. jcbrand . Render error messages received from the server (for undelivered chat messages). jcbrand . Don't hide requesting contacts when filtering by chat state. jcbrand . When logging in anonymously, the server JID can now be passed in via converse.initialize or via converse.user.login. jcbrand .
1.0.322 Jun 2016 00:05 minor feature: Update the plugin architecture to allow plugins to have optional dependencies jcbrand . Login form doesn't render after logging out, when auto_reconnect = false jcbrand . Also indicate new day for the first day's messages. jcbrand . Chat bot messages don't appear when they have the same ids as their commands. jcbrand . Updated onDisconnected method to fire disconnected event even if auto_reconnect = false. kamranzafar . MAM messages weren't being fetched oldest first. jcbrand . Add processing hints to chat state notifications jcbrand . Don't use sound and desktop notifications for OTR messages (when setting up the session) jcbrand . New config option default_state jcbrand . New API method converse.rooms.() . New configuration setting allow_muc_invites jcbrand . Add new event pluginsInitialized . Add processing hints to OTR messages jcbrand . Don't ignore incoming messages with same JID as current user (might be MAM archived) jcbrand . online users count in minimized chat window on initialization corrected amanzur .
1.0.225 May 2016 13:05 minor feature: Bind sendPresence to the right context. that slipped in during The release of 1.0.1. jcbrand .
1.0.004 May 2016 16:45 major feature: Add catalan language JoseMariaRubioMoral . Split converse.js up into different plugin modules. jcbrand . Better Sass/CSS for responsive/mobile views. New mobile-only build. jcbrand . Roster contacts can now be filtered by chat state and roster filters are remembered across page loads. jcbrand . Add support for messages with type headline, often used for notifications from the server. jcbrand . Add stanza-specific event listener converse.listen.stanza. As a result converse.listen.on('message'); has been deprecated, use converse.stanza.on('message'); instead. jcbrand . Emit an event chatBoxInitialized once a chat box's initialize method has been called. jcbrand . Emit an event statusInitialized once the user's own status has been initialized upon startup. jcbrand . New config option chatstate_notification_blacklist jcbrand . New config option sticky_controlbox jcbrand . New config option credentials_url jcbrand . Don't play sound notifications for OTR messages which are setting up an encrypted session. jcbrand . RID, SID and JID tokens ignored when keepalive set to true. jcbrand . Removed the account.logout API, instead use user.logout. jcbrand . Use rel=noopener with links that contain target=_blank to prevent potential phishing attacks. More info here jcbrand . Add the option auto_join_rooms which allows you to automatically. connect to certain rooms once logged in. jcbrand . show_controlbox_by_default config not working diditopher . HTML5 notifications of received messages jcbrand . Updated Russian translation badfiles . Do not steal the focus when the chatbox opens automatically rlanvin . xgettext build error: 'javascript' unknown jcbrand . New config variable message_archiving_timeout jcbrand . when logging out with auto_logout=true davec82 . Save scroll position on minimize and restore it on maximize rlanvin . Add random resource for auto_login, add method generateResource to. generate random resource davec82 . Add
0.10.107 Feb 2016 19:05 minor feature: When the user has manually scrolled up in a chat window, don't scroll down on chat event notifications. jcbrand . Added auto_join_on_invite. parameter for automatically joining chatrooms. ben . Set specific domain. Two new options default_domain. and locked_domain. jcbrand . Not sending presence when connecting after disconnection. jcbrand . Messages not received when room with mixed-case JID is used. jcbrand . Presence not sent out (in cases where it should) after page refresh. jcbrand . bind is not a function error for plugins without initialize method. jcbrand . By default the offline state is no longer choosable. See include_offline_state for details. jcbrand . Empty the resources array when the resource is null rlanvin . Updated Russian translation LaconicTranslator . The status restored from sessionStorage is never updated jcbrand . Remove reconnection timer once connected succesfully m0cs . A chatroom invite might come from someone not in your roster list. ben .
0.10.006 Nov 2015 13:25 minor feature: Wrong datatype passed to converse.chatboxes.getChatBox. hobblegobber, jcbrand . Roster push jcbrand . emit an event rosterPush when a roster push happens teseo . #502. Chat room not opened in non_amd version. rjanbiah . Typo caused object Object in room info gromiak . #508 "Is typing" doesn't automatically disappear jcbrand . Updated Polish translations ser . MUC room memberlist is being cleared with page reload when keepalive option is set. jcbrand . Add the ability to also drag-resize chat boxes horizontally. jcbrand . Updated Sass files and created a new style. jcbrand .
0.9.613 Oct 2015 21:25 minor feature: XEP-0313: Message Archive Management jcbrand . auto_login and keepalive not working jcbrand . null added as resource to contact jcbrand . Add new event serviceDiscovered jcbrand . Add a new configuration setting muc_history_max_stanzas. jcbrand .
0.9.525 Aug 2015 13:25 minor feature: XEP-0313: Message Archive Management. Auto_login and keepalive not working. Null added as resource to contact. Add new event serviceDiscovered. Add a new configuration setting muc_history_max_stanzas.
0.9.405 Jul 2015 12:25 minor feature: Add the ability to log in automatically. jcbrand . Remove type=email from JID field in login form. Resulting validation error confuses people. jcbrand . Add Ukranian translations Andriy Kopystyansky . Add the ability to log in anonymously. jcbrand . Enable the path to the sound files to be configured thierrytiti and jcbrand . Unable to register a new user to ejabberd 2.1.11. gbonvehi . Some offline users have a visible empty in the roster. floriancargoet . Fix collapsed group visibility on page load. floriancargoet . Expect full JIDs to be returned via XHR user search thierrytiti . Updated French translations thierrytiti . Fix for bower not finding crypto-js-evanvosberg#3.1.2-5 any more. jcbrand .
0.9.323 May 2015 10:25 minor feature: Add the ability to log in automatically. Remove type=email from JID field in login form. Resulting validation error confuses people. Add Ukranian translations. Add the ability to log in anonymously. Enable the path to the sound files to be configured. Unable to register a new user to ejabberd 2.1.11. Some offline users have a visible empty in the roster. Fix collapsed group visibility on page load. Expect full JIDs to be returned via XHR user search. Updated French translations. Fix for bower not finding crypto-js-evanvosberg#3.1.2-5 any more.
0.9.209 Apr 2015 13:05 minor feature: Bugfix. Prevent attaching twice during initialization. jcbrand . API method chats.get can now also return chat boxes which haven't been opened yet. jcbrand . Add API method contacts.add. pzia . Fix the plugin extend function. floriancargoet . Fix the known bug where a state notification reopens a chat box. floriancargoet . Bugfix. Chat rooms show the same occupants bug. floriancargoet . Fix a timeout bug in chat state notifications. floriancargoet . Incorrect roster height when allow_contact_requests=true. floriancargoet, jcbrand . Add API for retrieving and opening rooms. pzia . Text selection in chat boxes not shown in Firefox. jcbrand .
0.9.127 Mar 2015 16:25 minor feature: Set the JID input field in the login form to type=email. New configuration setting allow_contact_removal. Document that event handlers receive 'event' obj as first arg. Add a test to check that notifications are played in chat rooms. Enable automatic reconnection when prebind and prebind_url are specified. Require the JID to be specified when using keepalive with prebind. Also add a logout API method. Indicate visitors in chat rooms.
0.9.008 Mar 2015 03:40 minor feature: Support websocket connections. Add fullname and jid to contact's tooltip in roster. Better support for XEP-0085 Chat State Notifications. Document "allow_registration". Added Polish translations. Presence/show text in XMPP request isn't allowed by specification. Add new API method chats.open to open chat boxes. Add new API method to set and get configuration settings. Add responsiveness to CSS. We now use Sass preprocessor for generating CSS. Bugfix. Custom status message form doesn't submit/disappear. Calling the API method contacts.get() without parameters now returns all contacts. Don't send out the message carbons IQ stanza on each page load. New Makefile.win to build in Windows environments. Norwegian Bokmål translations. Removed deprecated API methods. Strophe.log and Strophe.error now uses converse.log to output messages. The API method chats.get now only returns already opened chat boxes. Updated Afrikaans translations. Add new configuration setting prebind_url.
0.8.608 Dec 2014 06:25 minor bugfix: Login panel didn't appear under certain conditions. Error when trying to render chat room configuration form. Text on the registration form was not configurable or i18n aware. With prebind the jid, rid and sid settings were ignored.