# Version history All notable changes to the Zulip server are documented in this file. ## Zulip 4.x series ### 4.0 -- Unreleased This section lists notable unreleased changes; it is generally updated in bursts. #### Highlights - Added copy-to-clipboard button on code blocks, making it convenient to extract code for external use. Code blocks now have a "View in playground" button for certain programming languages. - Recent topics is no longer beta, no longer an overlay, and is now the default landing view. The previous default, "All messages", is still available, and the default view can now be configured via "Display settings". - Completed API documentation for Zulip's real-time events system. It is now possible to write a decent Zulip client with minimal interaction with the Zulip server development team. - Added new organization settings: wildcard mention policy. - Integrated [smokescreen][smokescreen], an outgoing proxy designed to help protect against SSRF attacks; outgoing HTTP requests that can be triggered by end users are routed through this service. We recommend that self-hosted installations configure it. - Links to issues or pull requests on GitHub are now automatically converted to have shorter labels for more convenient reading. - Over 20 changes to the [Zulip API](https://zulip.com/api/changelog), largely to support new settings or simplify API documentation. #### Upgrade notes for 4.0 - Changed the Tornado service to use 127.0.0.1:9800 instead of 127.0.0.1:9993 as its default network address, to simplify support for multiple Tornado processes. Since Tornado only listens on localhost, this change should have no visible effect unless another service is using port 9800. - Zulip's top-level puppet classes have been renamed, largely from `zulip::foo` to `zulip::profile::foo`. Configuration referencing these `/etc/zulip/zulip.conf` will be automatically updated during the upgrade process, but if you have a complex deployment or you maintain `zulip.conf` is another system (E.g. with the [manual configuration][docker-zulip-manual] option for [docker-zulip][docker-zulip]), you'll want to manually update the `puppet_classes` variable. - Zulip's supervisord configuration now lives in `/etc/supervisor/conf.d/zulip/` - Consider enabling [smokescreen][smokescreen] - Private streams can no longer be default streams (i.e. the ones new users are automatically added to). - As this is a major release, we recommend [carefully updating the inline documentation in your `/etc/zulip/settings.py`][update-settings-docs]. Notably, we rewrote the template to be better organized and more readable. [docker-zulip-manual]: https://github.com/zulip/docker-zulip#manual-configuration [smokescreen]: ../production/deployment.html#using-an-outgoing-http-proxy [update-settings-docs]: ../production/upgrade-or-modify.html#updating-settings-py-inline-documentation #### Full feature changelog - Community topic editing time limit increased to 3 days for members. - Added support for moving topics to private streams. - Added support for subscribing another stream's membership to a stream. - Added RealmAuditLog for most settings state changes in Zulip; this data will fascilitate future features showing a log of activity by a given user or changes to an organization's settings. - Added support for using Sentry for processing backend exceptions. - Added documentation for using `wal-g` for continuous PostgreSQL backups. - Added loading spinners for message editing widgets. - Added live update of compose placeholder text when recipients change. - Added keyboard navigation for popover menus that were missing it. - Added documentation for all [zulip.conf settings][zulip-conf-settings]. - Added types for all parameters in the API documentation. - Added dozens of new notification sound options. - Added menu option to unstar all messages in a topic. - Added confirmation dialog before deleting your profile picture. - Added API endpoint to fetch user details by email address. - Added API endpoint to fetch presence details by user ID. - Added new LDAP configuration options for servers hosting multiple organizations. - Added new `@**|user_id**` mention syntax intended for use in bots. - Updated integrations: NewRelic, Bitbucket, Zabbix. - New integrations: JotForm. - Improved formatting of GitHub and GitLab integrations. - Improved the user experience for multi-user invitations. - Improved several rendered-message styling details. - Improved design of `