-#2348:`auto_join_room` not showing the room in `fullscreen``view_mode`.
-#2400: Fixes infinite loop bug when appending .png to allowed image urls
-#2409: Integrate App Badging API for unread messages
-#2464: New configuration setting [allow-url-history-change](https://conversejs.org/docs/html/configuration.html#allow-url-history-change)
-#2497: Bugfix /nick command is not working
- Add support for XEP-0437 Room Activity Indicators see [muc-subscribe-to-rai](https://conversejs.org/docs/html/configuration.html#muc-subscribe-to-rai)
- Bugfix: Use real JID in XEP-0372 references only when the MUC is non-anonymous
- Bugfix: Connection protocol not updated based on XEP-0156 connection methods
The [afterMessageBodyTransformed](https://conversejs.org/docs/html/api/-_converse.html#event:afterMessageBodyTransformed) and [beforeMessageBodyTransformed](https://conversejs.org/docs/html/api/-_converse.html#event:beforeMessageBodyTransformed) events now has a different signatures.
When leaving a MUC, the message history is deleted. This means that decrypted
OMEMO messages are gone and cannot be recovered on that device. See [muc_clear_messages_on_leave](https://conversejs.org/docs/html/configuration.html#muc-clear-messages-on-leave).
Removed events:
*`chatBoxInsertedIntoDOM`
*`bookmarkViewsInitialized`
*`rosterGroupsFetched`
*`messageSend` (use `sendMessage` instead)
The `chatBoxClosed`, `chatBoxMaximized` and `chatBoxMinimized` events now have the `model` as
payload and not the `view`.
## 7.0.6 (unreleased)
-#2500: Wrong assignment in OMEMO code
## 7.0.5 (2021-03-16)
-#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
## 7.0.4 (2020-12-09)
Bugfix: Set protocol after discovering connection methods
Otherwise if an endpoint was passed in with `converse.initialize`, then
that endpoint's protocol is (potentially wrongly) used.
## 7.0.3 (2020-12-02)
- Bugfix: `null` inserted by emoji picker and can't switch between skintones
-#2285: Rename config option `muc_hats_from_vcard` to [muc_hats](https://conversejs.org/docs/html/configuration.html#muc-hats). Now accepts a list instead of a boolean and allows for more flexible choices regarding user badges.
-#2300: Fix message reorder issue 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, enable browser sync and local storage for persistent storage
- The `persistent_store` setting can now also be set to `sessionStorage`
- The `api.archive.query` method no longer accepts an RSM instance as argument.
- The plugin `converse-uniview` has been removed and its functionality merged into `converse-chatboxviews`
- Removed the mockups from the project. Recommended to use tests instead.
- The API method `api.settings.update` has been deprecated in favor of `api.settings.extend`.
- The API methods under the `api.user.status` namespace are now asynchronous and need to be `await`ed.
- Filter roster contacts via all available information (JID, nickname and VCard full name).
- Allow ignoring of bootstrap modules at build using environment variable. For xample: `export BOOTSTRAP_IGNORE_MODULES="Modal,Dropdown" && make dist`
- Bugfix. Handle stanza that clears the MUC subject
- Replace Backbone with [Skeletor](https://github.com/skeletorjs/skeletor)
- Start using [lit-html](https://lit-html.polymer-project.org/) instead of lodash for templating.
- [muc_fetch_members](https://conversejs.org/docs/html/configuration.html#muc-fetch-members) now also accepts an array of affiliations to fetch.
- Remove the configuration setting `muc_show_join_leave_status`. The optional status message is no longer shown at all.
- Support for XEP-0156 is now enabled by default (which means that
[discover_connection_methods](https://conversejs.org/docs/html/configuration.html#discover-connection-methods) now has a default value of `true`).
- [show_send_button](https://conversejs.org/docs/html/configuration.html#show-send-button) now has a default value of `true`.
- The [api.confirm](https://conversejs.org/docs/html/api/-_converse.api.html#.confirm) method now accepts a list of fields and returns the filled in list upon confirmation.
- New config option [allow_adhoc_commands](https://conversejs.org/docs/html/configuration.html#allow-adhoc-commands)
- New config option [modtools_disable_assign](https://conversejs.org/docs/html/configuration.html#modtools-disable-assign)
- New config option [modtools_disable_query](https://conversejs.org/docs/html/configuration.html#modtools-disable-query)
- New config option [muc_hats_from_vcard](https://conversejs.org/docs/html/configuration.html#muc-hats-from-vcard).
- New config option [muc_send_probes](https://conversejs.org/docs/html/configuration.html#muc-send-probes).
- New config option [notify_nicknames_without_references](https://conversejs.org/docs/html/configuration.html#notify-nicknames-without-references).
- New config option [show_message_avatar](https://conversejs.org/docs/html/configuration.html#show-message-avatar).
- New public API [converse.insertInto](https://conversejs.org/docs/html/api/converse.html#.insertInto)
## 6.0.0 (2020-01-09)
- [enable_smacks](https://conversejs.org/docs/html/configuration.html#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](https://xmpp.org/extensions/xep-0045.html#example-196)
- Add support for [XEP-0424 Message Retraction](http://xmpps.org/extensions/xep-0424.html)
- Add support for [XEP-0425 Message Moderation](http://xmpps.org/extensions/xep-0425.html)
- New API [\_converse.api.headlines](https://conversejs.org/docs/html/api/-_converse.api.headlines.html#.get)
- New config option [allow_message_retraction](https://conversejs.org/docs/html/configuration.html#allow-message-retraction)
- New config option [muc-show-logs-before-join](https://conversejs.org/docs/html/configuration.html#muc-show-logs-before-join)
- New config option [muc_mention_autocomplete_filter](https://conversejs.org/docs/html/configuration.html#muc-mention-autocomplete-filter)
- New config option [muc_mention_autocomplete_show_avatar](https://conversejs.org/docs/html/configuration.html#muc-mention-autocomplete-show-avatar)
- New config option [persistent_store](https://conversejs.org/docs/html/configuration.html#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](https://xmpp.org/extensions/xep-0156.html). 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
-#1322 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: Fix `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: Fix: 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
-#1819: Click on a desktop notification now opens corresponding chat.
-#1836: MUC invites appear to come from the MUC name
### Breaking changes
- The ``debug`` configuration option has been replaced with [loglevel](https://conversejs.org/docs/html/configuration.html#loglevel).
- In contrast to sessionStorage and localStorage, IndexedDB is an asynchronous database.
A lot of code that relied on database access to be synchronous had to be
updated to work with asynchronous access via promises.
- In order to add support for XEP-0156, the XMPP connection needs to be created
only once we know the JID of the user that's logging in. This means that the
event now fires much later than before. Plugins that rely on `connectionInitialized`
being triggered before the user's JID has been provided will need to be updated.
- The following API methods now return promises:
*`_converse.api.chats.get`
*`_converse.api.chats.create`
*`_converse.api.rooms.get`
*`_converse.api.rooms.create`
*`_converse.api.roomviews.close`
- Changes the events:
* The `chatBoxInitialized` event now triggers when a `_converse.ChatBox` (not the view) is opened.
* Renamed the old `chatBoxInitialized` to `chatBoxViewInitialized` and trigger only for `ChatBoxView` instances.
* Renamed `chatRoomOpened` event to `chatRoomViewInitialized`
* The order of certain events have now changed: `statusInitialized` is now triggered after `initialized` and `connected` and `reconnected`.
-`_converse.api.chats.get()` now only returns one-on-one chats, not the control box or headline notifications.
- The `show_only_online_users` setting has been removed.
-`_converse.api.alert.show` is now `_converse.api.show` and instead of taking
an integer for the `type`, "info", "warn" or "error" should be passed in.
- The `converse-headline` plugin has been split up into `converse-headlines` and `converse-headlines-view`.
## 5.0.5 (2019-11-20)
- 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.4 (2019-10-08)
- New config option [allow_message_corrections](https://conversejs.org/docs/html/configuration.html#allow-message-corrections)
which, if set to `last`, limits editing of sent messages to the last message sent.
- Bugfix: 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.
- Bugfix: 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](https://conversejs.org/docs/html/configuration.html#assets-path)
which lets you set the path from which "chunks" are loaded.
## 5.0.3 (2019-09-13)
- Emit `chatBoxFocused` and `chatBoxBlurred` events for emoji picker input
- SECURITY FIX: Reject unencapsulated forwarded messages, since we don't support XEP-0297 on its own
## 5.0.2 (2019-09-11)
-`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 FIX: Ignore MAM `chat` messages not sent from yourself
-#1692 Bugfix: `TypeError: oldest_message is undefined`
-#1704: SECURITY FIX: Impersonation by misusage of groupchat carbons
-#1705: Bugfix: `this.roomspanel` is `undefined` after hibernating
## 5.0.1 (2019-08-14)
- 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
- Bugfix: `TypeError: o.getAttribute is not a function converse-chatview.js` (can cause messages to not appear).
-#1679: Room invitation fails with singleton and random server assigned room name
## 5.0.0 (2019-08-08)
- 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](https://developer.mozilla.org/en-US/docs/Web/API/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
- Bugfix: Don't set `muc_domain` for roomspanel if `locked_muc_domain` is `true`.
- Bugfix: Modal auto-closes when you open it for a second time.
- Bugfix: `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 bugfixes and improvements
- Continuously retry (in 2s intervals) to fetch login credentials (via [credentials_url](https://conversejs.org/docs/html/configuration.html#credentials-url)) in case of failure
- Replace `moment` with [DayJS](https://github.com/iamkun/dayjs).
- New config option [auto_focus](https://conversejs.org/docs/html/configuration.html#auto-focus)
- New config option [clear_messages_on_reconnection](https://conversejs.org/docs/html/configuration.html#clear-messages-on-reconnection)
- New config option [enable_smacks](https://conversejs.org/docs/html/configuration.html#enable-smacks)
- New config option [message_limit](https://conversejs.org/docs/html/configuration.html#message-limit)
- New config option [muc_fetch_members](https://conversejs.org/docs/html/configuration.html#muc-fetch-members)
- New config option [muc_mention_autocomplete_min_chars](https://conversejs.org/docs/html/configuration.html#muc-mention-autocomplete-min-chars)
- New config option [muc_show_join_leave_status](https://conversejs.org/docs/html/configuration.html#muc-show-join-leave-status)
- New config option [singleton](https://conversejs.org/docs/html/configuration.html#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](https://conversejs.org/docs/html/configuration.html#keepalive)
- New event: [chatBoxBlurred](https://conversejs.org/docs/html/api/-_converse.html#event:chatBoxBlurred)
- New event: [chatReconnected](https://conversejs.org/docs/html/api/-_converse.html#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 MUC invitation popup
-#1445: Participants list uses big font in embedded mode
-#1455: Avatar in controlbox status-view not updated
-#1465: When highlighting a roster contact, they're incorrectly shown as online
-#1476: Support OMEMO on by default for chats via a config variable
-#1494: Trim whitespace around messages
-#1495: Mentions should always include a URI attribute
-#1532: Converse reloads on enter pressed in the filter box
-#1538: Allow adding self as contact
-#1548: Add support for paging through the MAM results when filling in the blanks
-#1550: Legitimate carbons being blocked due to erroneous forgery check
-#1554: Room auto-configuration broke if the config form contained fields with type `fixed`
-#1558:`this.get` is not a function error when `forward_messages` is set to `true`.
-#1561: Don't call `clear` on local or session storage
-#1572: In `fullscreen` view mode the top is cut off on iOS
-#1575: MUC invitation autocomplete list doesn't appear
-#1576: Converse gets stuck with spinner when logging out with `auto_login` set to `true`
-#1579: Trim spaces at the beginning and end of a JID (when adding contact)
-#1585: Upload files by pasting from clipboard
-#1586: Not possible to kick someone with a space in their nickname
-#1664: Blacklisting converse-profile makes the control box totally blank
### Breaking changes
- The minimum required NodeJS version for making builds is now 8.9.0
- Rename `muc_disable_moderator_commands` to [muc_disable_slash_commands](https://conversejs.org/docs/html/configuration.html#muc-disable-slash-commands).
-`_converse.api.archive.query` now returns a Promise instead of accepting a callback functions.
-`_converse.api.disco.supports` now returns a Promise which resolves to a Boolean instead of an Array.
- The `forward_messages` config option (which was set to `false` by default) has been removed.
Use [message_carbons](https://conversejs.org/docs/html/configuration.html#message-carbons) instead.
- Remove the `keepalive` configuration setting. It is now always implicitly `true`.
- Remove the `expose_rid_and_sid` configuration setting.
- A `prebind_url` is now mandatory when setting `authentication` to `prebind`.
It's no longer possible to pass in `rid` and `sid` values to `converse.initialize.
- Removed events `statusChanged` and `statusMessageChanged`. Instead, you can
listen on the `change:status` or `change:status\_message` events on
`_converse.xmppstatus`.
-#1403: Rename show_chatstate_notifications to show_chat_state_notifications
### API changes
-`_converse.chats.open` and `_converse.rooms.open` now take a `force`
parameter to force maximizing (in `overlayed` view mode) or bringing a
background chat into the foreground (in `fullscreen` view mode). Previously
this was the default behavior.
-`_converse.api.emit` has been removed in favor of [\_converse.api.trigger](https://conversejs.org/docs/html/api/-_converse.api.html#.trigger)
-`_converse.updateSettings` has been removed in favor of [\_converse.api.settings.update](https://conversejs.org/docs/html/api/-_converse.api.settings.html#.update)
-`_converse.api.roster.get` now returns a promise.
- New API method [\_converse.api.disco.features.get](https://conversejs.org/docs/html/api/-_converse.api.disco.features.html#.get)
- New API method [\_converse.api.connection.reconnect](https://conversejs.org/docs/html/api/-_converse.api.connection.html#.reconnect)
## 4.2.0 (2019-04-04)
**Note:** This release introduces a hard requirement on [MAM:2](https://xmpp.org/extensions/xep-0313.html),
specifically the requirement that the MAM archive ID matches the [XEP-0359 stanza-id](https://xmpp.org/extensions/xep-0359.html).
Patches intended to make Converse work with MAM:1 will cause problems and
unexpected behaviour due to the above requirement, which is not met with MAM:1.
This will affect OpenFire users who use the [monitoring plugin](https://www.igniterealtime.org/projects/openfire/plugin-archive.jsp?plugin=monitoring)
version 1.7.0 and below. You're advised to stay on Converse version 4.1.2 until an update to that plugin has been released.
- Updated translation: 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
- Fix "flashing" of roster filter when you have less than 5 roster contacts
- Fix handling of CAPTCHAs offered by ejabberd
- Don't send out receipts or markers for MAM messages
- Allow setting of debug mode via URL with `/#converse?debug=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](https://conversejs.org/docs/html/configuration.html#autocomplete-add-contact)
- New config setting [locked_muc_domain](https://conversejs.org/docs/html/configuration.html#locked-muc-domain)
- New config setting [locked_muc_nickname](https://conversejs.org/docs/html/configuration.html#locked-muc-nickname)
- New config setting [show_client_info](https://conversejs.org/docs/html/configuration.html#show-client-info)
- Document new API method [sendMessage](https://conversejs.org/docs/html/api/-_converse.ChatBox.html#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: fix False mentions positives in URLs and Email addresses
-#1352: Add [Jed](https://github.com/messageformat/Jed) as dependency of `@converse/headless`
-#1373: Re-add support for the [muc_domain](https://conversejs.org/docs/html/configuration.html#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: Fix rendering of URLs enclosed with sharp brackets such as <https://example.org>
-#1479: Allow file upload by drag & drop also in MUCs
-#1487: New config option [muc_respect_autojoin](https://conversejs.org/docs/html/configuration.html#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](https://conversejs.org/docs/html/configuration.html#auto-join-on-invite) is `true`
-#1507: Make message id and origin-id identical in order to fix LMC with Conversations
-#1508: Minimized bookmarked chatboxes should not be always maximized after page reload.
-#1512: Allow manual entry of jid even with [xhr_user_search_url](https://conversejs.org/docs/html/configuration.html#xhr-user-search-url).
The JID input field is now also visible. To hide it simply hide `.add-xmpp-contact__jid` via CSS.
## 4.1.2 (2019-02-22)
- Updated translations: af, cz, de, es, he, it, nl, nl_BE, pt_BR, zh_CN
- Bugfix. Prevent duplicate messages by comparing MAM archive id to XEP-0359 stanza ids.
- Bugfix. Open groupchats not shown when logging in after disconnection.
-#1406:`TypeError: e.devicelists is undefined` when unchecking the "trusted device" checkbox
## 4.1.1 (2019-02-18)
- 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.
- Bugfix: restore textarea size after sending a message
- Bugfix: MUC invite form not appearing
-#1369 Don't wrongly interpret message with `subject` as a topic change.
-#1405 Status of contacts list are not displayed properly
-#1408 New config option [roomconfig_whitelist](https://conversejs.org/docs/html/configuration.html#roomconfig-whitelist)
-#1410 HTTP upload not working if conversations push proxy is used
-#1412 MUC moderator commands can be disabled selectively by config
-#1413 Fix moderator commands that change affiliation
-#1414 Prevent duplicate messages on MUC join
-#1417 Margin between nickname and badge
-#1421 Fix direct invite for membersonly room
-#1422 Resurrect the `muc_show_join_leave` option
-#1438 Update contact nickname when receiving a roster push
-#1442 MUC read receipts causing empty lines
## 4.1.0 (2019-01-11)
- Bugfix: MUC commands were being ignored
- Bugfix: Multiple rooms shown active in the rooms list
- Bugfix: Don't open chats when receiving messages without a `body`
- Bugfix: 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
-#1180 It's now possible to use OMEMO in a MUC (if it's members-only and non-anonymous)
-#1334 Force avatar refetch when receiving `vcard-temp:x:update`
-#1337`send_chat_state_notifications` doesn't work in MUCs
-#1353 Message Delivery Receipts not working because of the message "type" attribute
-#1356 Make triangle icon usable
-#1374 Can't load embedded chat when changing `view_mode` between page reloads
-#1376 Fixed some alignment issues in the sidebar
-#1378 Message Delivery Receipts were being sent for carbons and own messages
-#1379 MUC unread messages indicator is failing
-#1382 Message Delivery Receipts: Set store hint and type='chat'
- 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](https://conversejs.org/docs/html/configuration.html#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)
## 4.0.2 (2018-10-02)
- 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](https://hosted.weblate.org/languages/hi/conversejs/) and [Romanian](https://hosted.weblate.org/languages/ro/conversejs/)
-#279 Handle more field types for MUC config forms. [gbonvehi]
-#280 New config option, `hide_offline_users` [gbonvehi]
## 0.8.3 (2014-09-22)
- The Javascript build files in the 0.8.2 release weren't updated due to a
unnoticed build error. [jcbrand]
## 0.8.2 (2014-09-22)
- Converse.js now has the ability to maintain sessions across page loads.
Previously, the session tokens had to be handled externally and passed in.
See the [keepalive](https://conversejs.org/docs/html/configuration.html#keepalive) configuration setting. [jcbrand]
- Allow changing of nickname in a chat room via /nick command. [jcbrand]
- Allow a chat room user to be muted or unmuted with the /mute and /voice commands. [jcbrand]
- Add a chat room toolbar button for toggling the list of occupants. [jcbrand]
- Converse.js now responds to XEP-0030: Service Discovery requests. [jcbrand]
- Bugfix. Roster groups all appear offline after page reload (with prebind).
See http://librelist.com/browser//conversejs/2014/8/26/problem-with-contact-list-everyone-is-offline/ [heban and jcbrand]
- Bugfix concerning trimmed chats. Chats were being trimmed even though there was enough room. [jcbrand]
-#62 Sound notifications will now also play when you are mentioned in a chat room. [jcbrand]
-#212 Bugfix. Groups weren't being show again after the live filter was cleared. [jcbrand]
-#215 (and also #75) XEP-0249: Direct MUC Invitations. [jcbrand]
-#216 Contacts tab empty when using xhr_user_search. [hcderaad and jcbrand]
-#219 New contacts added need page refresh to be accepted and become visible. [hcderaad and jcbrand]
-#220 Non-AMD example page was not working. [xavier83ar and jcbrand]
-#222 Control box state not remembered. [priyadi and jcbrand]
-#223 Provide API to query buddy status. [priyadi and jcbrand]
-#227 Updated Hebrew translations [GreenLunar]
## 0.8.1 (2014-08-23)
- Bugfix: Roster contacts' cache key too vague. [jcbrand]
- Bugfix: Roster contacts weren't properly sorted according to chat status. [jcbrand]
-#63 Support for sound notification when message is received. [jcbrand]
-#212 Provide a live filter of the roster contacts. [jcbrand]
## 0.8.0 (2014-08-04)
**note**:
1. Converse.js is now relicensed under the [Mozilla Public License](http://www.mozilla.org/MPL/2.0/).
2. Configuration options for the chat toolbar have changed. Please refer to the [relevant documentation](http://devbox:8890/docs/html/configuration.html#visible-toolbar-buttons).
3. This release has reduced support for IE8 (some features won't work).
4. Events have been renamed to remove "on" prefix (sorry for any inconvenience).
- No initial HTML markup is now needed in the document body for converse.js to work. [jcbrand]
- All date handling is now done with moment.js. [jcbrand]
- Add a new toolbar button for clearing chat messages. [jcbrand]
- Chat boxes and rooms can now be resized vertically. [jcbrand]
- Upgraded dependencies to their latest versions. [jcbrand]
- Add new configuration setting [forwarded_messages](https://conversejs.org/docs/html/configuration.html#forwarded-messages).
Message forwarding was before a default behavior but is now optional (and disabled by default). [jcbrand]
- Newly opened chat boxes always appear immediately left of the controlbox. [jcbrand]
-#71 Chat boxes and rooms can be minimized. [jcbrand]
-#83 Roster contacts can be shown according to their groups. [jcbrand]
Note: Converse.js can show users under groups if you have assigned them
already via another client or server configuration. There is not yet a way
to assign contacts to groups from within converse.js itself.
-#123 Show converse.js in the resource assigned to a user. [jcbrand]
-#130 Fixed bootstrap conflicts. [jcbrand]
-#132 Support for [XEP-0280: Message Carbons](https://xmpp.org/extensions/xep-0280.html).
Configured via [message_carbons](https://conversejs.org/docs/html/configuration.html#message-carbons) [hejazee]
-#176 Add support for caching in sessionStorage as opposed to localStorage. [jcbrand]
-#180 RID and SID undefined [g8g3]
-#191 No messages history [heban]
-#192 Error: xhr_user_search_url is not defined. [jcbrand]
-#195 Chinese translations. [lancelothuxi]
-#196 [Safari v7.0.5] TypeError: Attempted to assign to readonly property. [g8g3]
-#199 Improved Spanish translations [chilicuil]
-#201 Add zh-locale to fix build task [schoetty]
## 0.7.4 (2014-03-05)
**note:**
*This release contains an important security fix. Thanks to Renaud Dubourguais from [Synacktiv](http://synacktiv.com) for reporting the vulnerability.*
-#125 Bugfix: crypto dependencies loaded in wrong order [jcbrand]
- Bugfix: action messages (i.e. /me) didn't work in OTR mode. [jcbrand]
- Security fix: Ensure that message URLs are properly encoded. [jcbrand]
## 0.7.3 (2014-02-23)
-#93 Add API methods exposing the RID and SID values. Can be disabled. [jcbrand]
-#102 Option to enable OTR by default. [Aupajo]
-#103 Option to display a call button in the chatbox toolbar, to allow third-party libraries to provide a calling feature. [Aupajo]
-#108 Japanese Translations [mako09]
-#111 OTR not working when using converse.js with prebinding. [jseidl, jcbrand]
-#114, #124 Hewbrew Translations [GreenLunar]
-#115 Indonesian Translations [priyadi]
## 0.7.2 (2013-12-18)
**note**
*This release contains an important security fix. Thanks to hejsan for reporting the vulnerability.*
-#48 Add event emitter support and emit events. [jcbrand]
-#97 Wrong number of online contacts shown with config option `show_only_online_users`. [jcbrand]
-#100 Make the fetching of vCards optional (enabled by default). [jcbrand]
- Sanitize message text to avoid Javascript injection attacks. [jcbrand]
## 0.7.1 (2013-11-17)
- Don't load OTR crypto if the browser doesn't have a CSRNG [jcbrand]
- Don't break when crypto libraries aren't defined. [jcbrand]
- Check if canvas is supported before trying to render the user avatar [jcbrand]
- Use newest strophe.muc plugin. Fixes #85 [jcbrand]
**note:**
If you are using the development libraries, you'll need to run ``bower update``
to fetch the newest strophe.muc.plugin (for bugfix of #85).
This release contains 3 different builds:
- converse.min.js
- converse-no-otr.min.js (Without OTR encryption)
- converse-no-locales-no-otr.min.js (Without OTR encryption or any translations)
## 0.7.0 (2013-11-13)
### Important:
This release includes support for [Off-the-record encryption](https://otr.cypherpunks.ca).
For this to work, your browser needs a CSPRNG (Cryptographically secure pseudorandom number generator).
Internet Explorer of all versions doesn't have one at all, neither does older versions of Firefox.
If you need to support older browsers, please download the latest release from the 0.6 bran
#### Features:
- Add a toolbar to the chat boxes [jcbrand]
- Add support for OTR (off-the-record) encryption [jcbrand]
- Add support for smileys [jcbrand]
- Simplified boilerplate markup [jcbrand]
- New configuration settings, `xhr_custom_status_url` and `xhr_user_search_url` [jcbrand]
**note:**
*This release introduces a backward incompatible change. The boilerplate
HTML needed in your webpage for converse.js to work has been reduced to a
single div: `<div id="conversejs"></div>`*
#### Bugfixes:
-#58 Contact's name gets replaced with their JID [jcbrand]
-#81 Requesting contacts appear as pending contacts [jcbrand]
## 0.6.6 (2013-10-16)
- Bugfix: Presence stanza must be sent out after roster has been initialized [jcbrand]
- Bugfix: Don't reconnect while still disconnecting, causes endless authentication loops. [jcbrand]
- Dutch translation [maartenkling]
## 0.6.5 (2013-10-08)
- Fetch vCards asynchronously once a roster contact is added [jcbrand]
- Hungarian translation [w3host]
- Russian translation [bkocherov]
- Update CSS to avoid clash with bootstrap [seocam]
- New config option `allow_muc` toggles multi-user chat (MUC) [jcbrand]
- New config option `allow_contact_requests` toggles user adding [jcbrand]
- New config option `show_only_online_users` [jcbrand]
## 0.6.4 (2013-09-15)
- Add icon for the unavailable chat state. [jcbrand]
- Chat state descriptions weren't translation aware. [jcbrand]
- Clear messages from localStorage when user types "/clear". [jcbrand]
- The 'xa' chat state wasn't being handled properly. [jcbrand]
- Updated pt-BR translations [seocam]
- Updated af and de translations [jcbrand]
## 0.6.3 (2013-09-12)
*NB: This release contains an important security fix. Please don't use older
versions of the 0.6 branch.*
- French translations. [tdesvenain]
- Bugfix: Messages were stored against buddy JID and not own JID. [jcbrand]
## 0.6.2 (2013-08-29)
- Bugfix. The remove icon wasn't appearing in the contacts roster. [jcbrand]
- Bugfix. With auto_subscribe=True, the "Pending Contacts" header didn't disappear
after a new user was accepted. [jcbrand]
## 0.6.1 (2013-08-28)
- IE9 and IE8 CSS fixes. [jcbrand]
- Bugfix: Pencil icon not visible (for setting status update). [jcbrand]
- Bugfix: RID, JID and SID initialization values were being ignored. [jcbrand]
- Bugfix: Fall back to English if a non-existing locale was specified. [jcbrand]
## 0.6.0 (2013-08-26)
-#39 Documentation for minifying JS is wrong. [jcbrand]
-#41 prebind and show_controlbox_by_default true fails. [jcbrand]
- With prebinding, attaching to the connection now happens inside Converse and
not as a separate step after initialization. [jcbrand]
- Register presence and message handlers before fetching the roster. Otherwise
some presence notifications might be missed. [jcbrand]
- Add a debug option (logs to the browser console). [jcbrand]
- Use font icons from http://icomoon.io [jcbrand]
- Added a static mockup to aid CSS/design process. [jcbrand]
- Save language codes with hyphens. Thanks to @seocam. [jcbrand]
- The combined and minified JS file now uses almond and not require.js. [jcbrand]
## 0.5.2 (2013-08-05)
- Important security update. Don't expose the Strophe connection object globally. [jcbrand]
## 0.5.1 (2013-08-04)
-#13, #14: Messages sent between to GTalk accounts weren't being received. [jcbrand]
-#32: Default status was offline when user didn't have contacts. [jcbrand]
- Attach panels to the DOM upon initialize. [jcbrand]
## 0.5.0 (2013-07-30)
-#09 Remove dependency on AMD/require.js [jcbrand]
-#22 Fixed compare operator in strophe.muc [sonata82]
-#23 Add Italian translations [ctrlaltca]
-#24 Add Spanish translations [macagua]
-#25 Using span with css instead of img [matheus-morfi]
-#26 Only the first minute digit shown in chatbox. [jcbrand]