0.18.2 (2026-06-08)
===================

1 person contributed to this release: @jubalh.

Bug Fixes:
- Guard terminal writes while suspended (#2167)
- Prevent OTR handshake from leaking presence to strangers (#2168)
- Silence 'no key' error for key transport messages (#2171)

Build System:
- Add configurable docdir option for documentation (#2174)

0.18.1 (2026-05-15)
===================

Special thanks to our sponsor Matthew Fennell!
We would appreciate if more people could support the development in one way or another.

3 people contributed to this release: @bkmgit, @mdosch and @jubalh.

Bug Fixes:
- Fix connect with empty resource
- Resolve issues with async editor (#2150)
- Resolve DB migration failure (#2163)
- Restore message receipt requests when capabilities unknown (#2161)

Build System:
- Fix running functional tests by meson (#2159)

Documentation:
- Explain how to enable spell checking (#2153)
- XEP list does not need to be updated manually on a release (#2155)

Tests:
- Add missing stub to unit tests

Chores:
- Explain how to add a backtrace in issue template (#2151)
- Mention omemo backend in issue template as well (#2151)

0.18.0 (2026-04-10)
===================

Special thanks to our sponsor Matthew Fennell!

4 people contributed to this release: @GunniBusch, @balejk, @paulfertser and @jubalh.

This release can only be build with Meson. Autotools support has been removed.

Features:
- Add spellcheck highlighting support (#2132)
- Implement asynchronous external editor support (#2145)

Bug Fixes:
- Add missing includes for libomemo-c builds (#2133)
- Ensure consistent unescaping and space handling (#2139)
- Fix crash when loading MAM for a contact with empty db (#2144)
- Fix removal of entries in account file (#2145)
- Handle X11 connection loss gracefully (#2140)
- Ignore key contents if there is no payload (#2147)
- Implement backslash escaping for contact names (#2139)
- Restore TTY access for eval_password commands (#2145)
- Standardize PreKey management to prevent decryption failures (#2137)
- Verify 'by' attribute of stanza-id and MAM result (#2136)

Chores:
- Fix release years in doap file
- Support building libstrophe as a subproject (#2141)

0.17.0 (2026-03-26)
===================

Special thanks to our sponsor Matthew Fennell!

3 people contributed to this release: @botantony, @sjaeckel and @jubalh.

The last release (0.16.0) was the first that could be compiled with the Meson build system.
It provided a tarball for autotools and a separate one for meson. The autotools tarball was done
so that distributions don't need dependencies on automake, autoconf and libtool.

Several distributions are dropping vendor tarballs and use git checkouts or autogenerated tarballs nowadays.
Meaning they need to run the above mentioned tools in the case of the autotools build anyways.

So this release will only be shipped with tarballs generated with meson. Profanity can still be compiled with both autotools or meson for easier adjustments. Autotols users just need to generate configure first. The next release will only use Meson. So we encourage everybody to build with Meson arleady and report any bugs they encounter.

We finally re-enabled functional tests (along with our existing unit tests) again!
It would be appreciated if we could find people who want to help us expand the unit and functional tests so we are less likely to introduce regressions when we rewrite existing code.

Features:
- Add OMEMO trust status indicators to the titlebar (#2104)
- Add command autocompletion for /stamp (#2126)
- Add jid_is_valid_user_jid() to check for valid user JIDs (#2102)
- Add unified quality-check script and git hook support (#2099)
- Display incoming reports (XEP-0377) (#2117)
- Handle and allow JIDs with trailing slashes (#2102)
- Implement color coded status messages for file transfers (#2131)
- Implement dynamic pad resizing (#2122)
- Improve XEP-0377 support with report-origin and third-party elements (#2117)
- Improve feedback during OMEMO session Initiation (#2104)
- Improve validation of JIDs (#2102)
- Notify users when new OMEMO devices or fingerprints are discovered (#2104)
- Only request receipts when supported (#2101)
- Provide descriptive fallback messages for OMEMO decryption failures (#2104)
- Provide detailed encryption failure messages for OMEMO (#2104)
- Sanitize illegal XML characters from outgoing messages (#2116)
- Show active and trust status in /omemo fingerprint (#2104)
- Support UTF-8 characters in autocompletion (#2115)
- Suppress "new device" alerts for already known devices (#2113)
- Suppress redundant `session already exists` messages (#2113)
- Suppress repetitive missing device ID warnings (#2113)
- Introduce `prof_date_time_format_iso8601()`. (#2112)
- Optimize random data generation. (#2109)

Bug Fixes:
- Allow adding own JID to roster (#2127)
- Check for necessary pointers in omemo_receive_message
- Correct handling of create_fulljid without resource (#2102)
- Database return NULL if no history limits are found (#2102)
- Define `prefs_changes_print` outside of `prefs_changes` (#2090)
- Dont OMEMO trust check so often (#2108)
- Fix -Wanalyzer-deref-before-check warning in cmd_ac_complete (#2095)
- Fix Floating Point Exception in OMEMO session building (#2096)
- Fix NULL dereference and memory leak in _mam_rsm_id_handler (#2094)
- Fix NULL dereference and memory leaks in OX logic (#2094)
- Fix api_get_current_occupants() memory problems (#2094)
- Fix custom outgoing stamp and fix stamp command help (#2126)
- Fix file autocompletion bugs and restore cycling (#2100)
- Fix memory leak and potential crash in iq_id_handler_add (#2094)
- Fix not saving first created account (#2107)
- Fix rare memleak (#2123)
- Fix redundant error reporting in http download (#2094)
- Fix usage error in /time command (#2101)
- Handle potential NULL from malloc in OMEMO fingerprint decoding (#2094)
- Ignore self-presence for untracked MUC rooms (#2097)
- Improve status reporting and filename handling for /url save (#2131)
- Incorrect omemo decryption error for Key Transport Messages (#2130)
- Increase max arguments for /connect to 9 (#2101)
- Initialize OMEMO pointers and add NULL checks (#2094)
- Missing plugins_post_chat_message_display calls (#2118)
- Only allow /msg with valid JIDs (#2102)
- Sanitize account names (#2105)
- Segfault when using /command help (#2094)
- Use <body> tag for spam reporting (XEP-0377) (#2117)
- Fix -Wanalyzer-deref-before-check warning in get_message_from_editor (#2095)
- Fix potential double free. (#2112)
- Fix potential segfault. (#2109)
- Flush OMEMO store only after encrypting for all recipients. (#2109)
- Check connection state before accepting command. (#2124)

Documentation:
- Add Conventional Commit Structure
- Add a section explaining how to write functional tests (#2101)
- Add information about footers in git commit messages
- Add note about sanitizers overhead (#2101)
- Add section explaining how to run functional tests (#2101)
- Expand the build section in CONTRIBUTING.md (#2099)
- Explain how to turn clang-format of for some blocks of code (#2099)
- Explain how to write unit tests (#2099)
- Improve help for /blocked (#2117)
- Mention generated html pages in release guide
- Sort entries in theme_template
- Update implemented XEPs
- Update theme_template with missing options

Cleanup:
- Adapt loop counter to proper type (#2089)
- Adapt type and cast to get ride of warnings (#2089)
- Add a defensive check in cmd_process_input() (#2094)
- Be a bit more defensive in (#2094)
- Be a bit more defensive in server_events.c (#2094)
- Cast device ids in omemo.c (#2089)
- Cast g_hash_table_lookup return to function pointer (#2089)
- Cast to get rid of warnings (#2089)
- Check for strdup() success in stanza_create_http_upload_request() (#2094)
- Cleanup log module (#2094)
- Cleanup types (#2104)
- Correct comparison in cons_show_wins() (#2089)
- Fix cast function type warnings in pgp.c (#2089)
- Fix potential NULL dereference and leaks in cmd_sendfile (#2094)
- Fix potential NULL dereference in cmd_omemo_(un)trust (#2094)
- Fix potential null pointer dereference (#2094)
- Fix uninitialized field in color_distance() (#2089)
- Initialize GOptionEntry entries correctly (#2089)
- Initialize optional fields in profModule (#2089)
- Initialize waittime to 0 (#2094)
- Make _connection_handler() safer (#2094)
- Make muc_nick() return const char* (#2089)
- Map test files according to structure in src (#2099)
- Move loop var from int to size_t in cmd_funcs.c (#2089)
- Move loop var from int to size_t in omemo.c (#2089)
- Move more functions from int to guint in statusbar.c (#2089)
- Move some variables from int to guint in statusbar.c (#2089)
- Refactor account_eval_password to use glib (#2094)
- Use auto_FILE and handle fopen failure in command_docgen (#2094)
- Use g_malloc and auto_gchar in _win_print_wrapped (#2094)
- Use g_new() instead of malloc in prof_add_shutdown_routine() (#2094)
- Use g_new0 and g_strdup for alias allocation (#2094)
- Use g_new0 instead of malloc in buffer_get_entry_by_id() (#2094)
- Wrap release handler in iq.c (#2089)
- The buffer API should use `unsigned` types. (#2112)

Tests:
- Add prof_send_raw (#2115)
- Add test for get_expanded_path() (#2093)
- Add test for get_mentions() (#2093)
- Add test for release_is_new() (#2093)
- Add test for string_to_verbosity() (#2093)
- Add test for tab autocompletion of /msg (#2115)
- Add test for valid_tls_policy_option() (#2093)
- Add tests for string_matches_one_of() (#2093)
- Add tests for strtoi_range() (#2093)
- Apply coding style to unit tests (#2099)
- Check for binary before starting functional tests
- Don't build functional test with analyzer and increase timeouts (#2101)
- Fix functional presence tests (#2101)
- Fix functional test connect_shows_presence_updates (#2101)
- Fix functional test message_receive_chatwin (#2101)
- Fix functional test message_send (#2101)
- Fix functional test ping_jid (#2101)
- Fix functional test ping_responds_to_server_request (#2101)
- Fix functional test receive_carbon (#2101)
- Fix functional test resets_to_barejid_after_presence_received (#2101)
- Fix functional test rooms_query (#2101)
- Fix functional test send_receipt_on_request (#2101)
- Fix functional test sends_room_join (#2101)
- Fix functional test test_ping (#2101)
- Fix passing of special characters to prof_expect() (#2101)
- Improve autocomplete unit tests (#2093)
- Re-enable functional tests (#2101)
- Remove apparently unused code (#2101)
- Standardize naming convention (#2099)
- Try two places for profanity binary (#2101)
- Update unit tests (#2094)

Build System:
- Add --enable-functional-tests switch (#2123)
- Add -Wpointer-arith flag (#2095)
- Add -fstack-protector-strong compiler flag (#2094)
- Add .gitattributes to exclude development files from exports (#2123)
- Add support for libomemo-c as OMEMO backend (#2120)
- Enable -fanalyzer for static analysis (#2094)
- Enable _FORTIFY_SOURCE and -Og optimization (#2094)
- Enable more warnings in debug mode (#2089)
- Set -Qunused-arguments depending on compiler not os

Refactorings:
- Centralize validation within jid_is_valid (#2102)
- Change vcard_print() checks (#2094)
- Fix clang-format expansion of table (#2099)
- Improve key transport message handling and deduplicate errors (#2130)
- Make Jid use glib functions (#2094)
- Make Resource use glib functions (#2094)
- Make _writecsv safer and with better performance (#2094)
- Modernize cmd_ac_complete_filepath and simplify path handling (#2094)
- Move pgp module to gchar (#2094)
- Optimize prof_occurrences() (#2093)
- Partly move plugins to glib (#2094)
- Refactor OMEMO error handling and add non-null attributes (#2104)
- Refactor form_set_value to use glib list management (#2095)
- Replace calloc with g_new0 for struct allocations (#2094)
- Replace malloc with g_new0 in many occasions (#2094)
- Roster export uses GString and g_file_set_contents now (#2094)
- Start to standardize on gchar (#2094)
- Use g_malloc0 instead of calloc in get_random_string() (#2094)
- Use g_new in message_pubsub_event_handler_add() (#2094)
- Use p_contact_new instead of malloc in p_contact_new() (#2094)

Chores:
- Add 0.16.0 to release in doap file
- Add README explaining the purpose and usage of helper scripts (#2128)
- Add XEP comparison script
- Add changelog-helper script (#2128)
- Add copyright header to C files who had none
- Add linter file to be ignored upon export
- Make meson doublecheck only available if the script exists
- Move to SPDX license header
- Require DCO from now on (#2123)
- Unify build configuration script into one (#2128)
- Update clang-format action to 4.16.0
- Update valgrind suppression file (#2123)
- Use more descriptive names for helper scripts (#2128)

0.16.0 (2026-02-23)
===================

5 people contributed to this release: @balejk, @mcalierno, @ritesh006, @sjaeckel and @jubalh.

Thanks a lot to our sponsors:  Matthew Fennell, Martin Dosch and one anonymous sponsor.
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on libstrophe >= 0.12.3.

Changes:
- Add new command /changes (#2080)
  With that command one can see the modifications of the runtime
  configuration vs. the saved configuration.
- Explain the different kinds of messages in the manpage (#2063)
- Fix OTR detection (#1957, #2072)
- Fix OMEMO startup (79ff9ba)
- Fix overwriting new accounts when running multiple instances (#2080)
- Fix reconnect when no account has been set up yet (#2080)
- Don't publish keys if the server doesn't support pubsub (#2078, #2080)
- Fix compilation on Apple silicon macs (#2075)
- Handle SIGTERM and SIGHUP (#2082)
- Cleanup (#2067, #2080)
- Add cygwin CI (#2066)
- Replace ACX_PTHREAD with AX_PTHREAD (#2062)
- Add meson build system (#2086)
  Mainly for testing purposes. Details will be announced in a later release.

0.15.1 (2025-08-22)
===================

5 people contributed to this release: @andreasstieger, @killerdevildog, @mdosch,
@sjaeckel and @jubalh.

Thanks a lot to our sponsors:  Matthew Fennell, Martin Dosch and one anonymous sponsor.
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on libstrophe >= 0.12.3.

Changes:
- Add `iso8601` as valid time format
  `/time all set iso8601` instead of manual specification
- Fix ignoring of roster pushes (#2035)
- Print location of decrypted files (#2041)
- Fix GPGME >= 2.0.0 compatibility issue (#2048)
- Fix tests with gcc15 and uintptr_t (#2055)
- Reduce noise in log files (#1911, #2060)
- Cleanup, code improvement and memory fixes (#2033, #2041, #2053)
- Improve documentation (#2040, 18f157b, #2058)

0.15.0 (2025-03-27)
===================

9 people contributed to this release: @DebXWoody, @H3rnand3zzz, @ike08, @mdosch,
@rodarima, @sjaeckel, @tjsweetblack, @ventosus and @jubalh.

Thanks a lot to our sponsors: Matteo Bini, @mdosch, @LeSpocky, and one anonymous sponsor.
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on libstrophe >= 0.12.3.

Changes:
- Don't use xscreensaver on wayland (#1876)
- Correctly recognize ox encrypted carbons (#1878)
- Don't crash when using /plugins install while disconnected (#1880, #1882)
- Unify loading of keyfile (#1886)
- Fix detection of some URLs (#1877, #1883)
- Improve MUC title behaviour for roster, statusbar, and titlebar (#1892)
- Improve logging of DB messages (#1893)
- Fix crash on reconnect (#1894, #1896)
- Check sender for LMC messages (#1893, #1898)
- Fix /plugins reload error message (2ab9a3)
- Add parameter support for aliases (#1900)
- Add section on how to use Profanity to man page (#1904)
- Improve history paging performance (#1905)
- Fix loading of encryption type (#1906)
- Refactor tests to use the new cmocka test runner (#1908)
- Add unicode support for correction char (#1909)
- Show encryption for messages from history (#1910)
- Fix /omemo fingerprint crashing in a MUC (#1913)
- Change DB structure (#1902)
- Allow redirects for /plugins install via URLs (#1922)
- Fix error message for /executable subcommands (#1921)
- Do not check for unique stanza-id for MAM messages (#1926)
- Handle alt+enter as newline char (#1927)
- Fix unintended exits on some commands (#1924)
- Introduce /redraw command (#1931)
- Fix prof_pre_chat_message_display does not replace sent messages (#1918)
- Add new dynamic mode for statusbar tab behaviour (#1912)
  `/statusbar tabmode default|dynamic|actlist`
- Smooth scrolling support (+mouse wheel scrolling in some terminals) (#1824)
- Fix scrolling (#1937, #1935, #1952)
- Remove unnecessary input win redisplay (#1948)
- Fix unable to download item twice (#1958)
- Check whether we are already in an omemo session for MUCs as well (#1973)
- Remove subscription when reporting spam/abuse (#1970, #1972)
- Make statusbar actlist respect the /statusbar show setting (#1974, #1978)
- Fix statusbar display of active tab (#1980)
- Reset autoconnect account when the account gets removed (#1976, #1982)
- Change default download location (#1983)
  `/url save $someurl` will now download to `~/.local/share/profanity/downloads/from_jid/date/filename`
  instead of `~/.local/share/profanity/downloads`.
- Fix outdated types in tests (#1992, #1993)
- Fix crash on startup when using sequoia-pgp (#1995)
- Remove plenking (#1998)
- Add valgrind checks to CI (#2023)
- Add --cmd option (#2023)
  This allows to kind of automate what profanity should do as first jobs,
  e.g. `--cmd /foo --cmd /bar --cmd /quit`
- Fix download of encrypted file (#1994, #2026)
- Improve documentation (beeddda, a8ba8af, 7e0338b
- Cleanup (#1885, #1884, #1897, #1914, #1923, #1920, #1930, #1933, #1941, #1942, #1981, 8a62d8e,
  c32aac7, cee92b0, #2014, #2007, 996a1fd)
- Memory related fixes (#1891, #1915, #1916, #1919, #1932, b04650f, d341705, #1979, 07900e9, #2022)

0.14.0 (2023-08-03)
===================

13 people contributed to this release: Daniel Santos, @DebXWoody, @H3rnand3zzz, @ike08, @MarcoPolo-PasTonMolo, @mdosch, @pasis, @paulfertser, @shahab-vahedi, @sjaeckel, @techmetx11, @thexhr and @jubalh.

Thanks a lot to our sponsors: @mdosch, @LeSpocky, @jamesponddotco and one anonymous sponsor.
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on libstrophe >= 0.12.3. This is not done for feature reasons, but because several issues were fixed inside libstrophe.

Changes:
- Introduce new `/privacy` command (#1836, #1870)
  `/os` -> `/privacy os`
  `/privacy logging`
- Fix crash when using NetBSD curses implementation (#1769)
- Fix OMEMO autodetection in autotools (#1865)
- Add ability to completely turn logs off (#1857)
- Extend `/pgp` command to make key exchange procedure easier (#1850)
  Used by PSI and Pidgin as well.
- Add ability to download and install plugins directly (#1842)
  `/plugins install`
- Improvements for /executable and /avatar code (#1845)
- Add ability to disable avatar publishing (#1843)
- Fix /plugins update (#1840)
- Improve logging (#1835)
- Add feature that can warn you when another client logs in (#1827)
  `/account set <account> session_alarm <max_sessions>`
- Don't add the same command twice to history (#1829)
- Improve manpage to inform users about encryption (#1823)
- Fix possible crash in PGP/OX (#1823)
- Add nickname support for /roster remove (#1826)
- Fix JID display in titlebar (#1816)
- Allow setting client identification (#1815)
  `/account set <account> clientid`
- Add /statusbar tabmode actlist (#1813)
- Fix color name in batman theme (#1810)
- Fix empty window after reconnect (#1556)
- Support passing flags to editor (#1801)
- OTR and PGP fixes (#1802)
- Adapt to g_string_free glib 2.75.3 change (#1799)
- Improve OMEMO QR code (#1796)
- Improve OMEMO help (#1838)
- Fix duplicate download IDs (#1794)
- Add macro for possible NULL prints (#1786)
- Prevent setting invalid combination of libstrophe flags
- Fix libstrophe timer-callback usage
- Fix memory leaks (#1780, #1814, #1837)
- Code cleanup (#1780, #1788, #1796, #1800, #1807, #1814, #1847, #1839, #1848, #1853, #1856, #1865, #1858)
- Add `now` option to `/reconnect` command (#1809)
- Add `/strophe` command to modify libstrophe-specific settings
- Fix xscreensaver detection (#1783)
- Make `/url save` autocomplete filenames after a url (#1783)
- Improve MAM support (#1724, #1791, #1868)
- Add vCard support (XEP-0054) (#1757)
- Fix autocompletion for lastactivity
- Improve `/msg` and `/win` autocompletion: autocomplete roster nickname and actual barejid
- UI improvements (#1800, #1773, #1821)

0.13.1 (2022-10-12)
===================

8 people contributed to this release: @omar-polo, @wahjava, @vinegret, @sgn, Max Wuttke, @tran-h-trung, @techmetx11 and @jubalh.

Changes:
- Fix configure parameter detection (#1752, #1753)
- Improve plugins management (#1755)
- Fix build with plugins enabled for Python >= 3.11 (#1756)
- Add gruvbox_transparent theme optimized for enabled transparency (#1763)
- Fix detection of first start used for welcome screen (#1767)
- Improve opening of URLs by spawning external program asynchronously (#1759, #1760)

0.13.0 (2022-09-13)
===================

11 people contributed to this release: @binex-dsk, @cockroach, @DebXWoody, @MarcoPolo-PasTonMolo, @mdosch, @nandesu-utils, @netboy3, @paulfertser, @sjaeckel, @Zash and @jubalh.

Thanks a lot to our sponsors: @mdosch, @wstrm, @LeSpocky and @jamesponddotco
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on libstrophe >= 0.12.2.

Changes:
- Print OMEMO verification QR code (#1320, #1568, #1718, #1720)
  `/omemo qrcode`
- Add option to configure stamp (#1663)
- Allow bold for default colors (#1674)
- Add irssi theme (#1680)
- Include useful aliases in profrc example (#1683)
- Improve man pages (#1688, #1703)
- Show return symbol for embedded newlines in multiline messages (#1690)
- Fix xscreensaver detection (#1696)
- Add support for offline MUC notifications (#1697)
  `/notify room offline on|off`
- Fix SIGABRT when using wrong argument order for receiving ox key (#1689, #1699)
- Use 3 digits for rotated log files (#1701)
- Fix autocomplete for /ox discover. (#1702)
- Fix segfault on /ox discover (#1713, #1715)
- Fix OX rpad generation (#1703)
- Don't forget encryption status for OX and PGP. (#733, #1694, #1722)
- Several OX improvements (#1703, #1705)
- Fix room name not updating. (#1710, #1711)
- Update capabilities of muc on available presence (#1347, #1712)
- Add /avatar set command to publish avatar (#1687, #1714)
- Respect silent nick change in mucs (#757, #1716)
- Fix duplicate messages in chat with oneself. (#1595, #1717)
- Improve cmd argument parser (#497, #1721)
- Make display of user mood optional (#1725)
- Switch log level while running (#1726)
- Split chatlog and log functions in separate files (#1727)
- Split pgp and ox into separate files (#1728)
- Various cleanups (#1729)
- Don't scroll if not needed (#1730)
- Retrieve encryption type from db (#1731)
- Be more resilient when receiving empty messages (#1734)
- Display a welcome message upon first start of Profanity (#1735)
  Explain for new users how to connect/set up a new account
- Fix /autoaway command logic (#1736)
- Fix segfault when requesting an avatar (#1738, #1740)
- Integrate XEP-0198 Stream-Management (#698, #1745, #1746)
- Fix avatar opening executable (#1742, #1748)
- Let slashguard ignore quoted messages (#1732)
- Update DOAP

Behaviour changes:
- Use ISO8601 as date format in chat logs and log files (#1700)
- Increase default log file size to 10MB (#1701)
- Name rotated log files profanity.001.log instead of profnaity.log.001 (#1701)
- Log encrypted messages by default to chatlog (#1707)
- Dont show presence status changes by default (59b9b44)

0.12.1 (2022-04-04)
===================

5 people contributed to this bugfix release: @sjaeckel, @paulfertser, @akaWolf, Max Wuttke and @jubalh.

Thanks a lot to our sponsors: @mdosch, @wstrm, @LeSpocky and @jamesponddotco
If you want to support us too: https://profanity-im.github.io/donate.html

Changes:
- Fix resetting colors when loading invalid theme (#1681)
- Use correct color for nick of others in history (#1675)
- Fix a segfault when uploading or downloading files (f11ad16)
- Fix logging of text chatlogs (#1672, #1673)
- Simplification of tab completion code (#1664)
- Add Alt/Ctrl-arrows combinations for GNU Screen (#1667)
- Make all existing input functions bindable from config (#1669)
- Cleanup (#1665, #1670)
- Improve man pages (#1666, #1668)
- Fix race condition on resize (#1671)

0.12.0 (2022-03-30)
===================

Eight months and 207 commits after 0.11.0 we are happy to release 0.12.0.

16 people contributed code to it: @sjaeckel, @MarcoPolo-PasTonMolo, @paulfertser,
@DebXWoody, @trofi, @nandesu-utils, @carlocab, @binex-dsk, @nlfx, @JurajMlich,
@wstrm, @arya-pratap-singh, @a02c1175-5220-4e75-b7a1-18e20548305f,
@mdosch, @jugendhacker and @jubalh.

Thanks a lot to our sponsors: @mdosch, @wstrm, @LeSpocky and @jamesponddotco
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on libstrophe >= 0.11.0, libsignal-protocol-c >= 2.3.2 and glib >= 2.62.0.
libmesode was deprecated, all functionality was merged into libstrophe.

Changes:
- Fix format string for ncurses 6.3 (#1597)
- Remove `/python sourcepath` command (#1598)
- Add option to install plugins from global plugin installation directory (#945)
- Fix wrong timestamp display in MUC history (#1423)
- Add in-band account registration (XEP-0077) (#1574)
- New theme: snikket (#1604)
- Allow more UI indicator signs to be UTF-8 characters (#1607)
- Add /correct-editor command (#1596)
- Fix message encryption for sender devices (#1609)
- Deprecate libmesode. We require libstrophe >= 0.11.0 (#1608)
- Fix OMEMO /sendfile on non-glibc systems (#1478)
- Cleanup plugins code (#1616)
- Make readline check more portable (#1617)
- Fix carbons criteria (#1614, #1618)
- Add support for User Mood (XEP 0107) (#1605)
- Use wildcard for man pages in Makefile.am (#1622)
- Fix inserting messages to chat logs if archive_id is empty (#1589, #1625)
- Implement RFC 6120 see-other-host during login (#1628, #1631, #1632, #1633, #1637)
- Guard against invalid input in presence stanza (#1630)
- Do not check for OMEMO device id for JIDs banned of a MUC (#1594)
- Minor cleanups (#1635, #1653)
- Cleanup build files (#1641, #1642, #1657, #1659)
- Improve documentation for new developers (#1640)
- Set libstrophe log verbosity to fix jump on unconditional value (e55f6d)
- Add DOAP file (XEP-0453) (bd8c32)
- Add `/subject editor` command
- Improve OX user experience (#1644)
- Add hotkey for sending readline text to editor (#1645, #1648)
- Fix breaking autocompletion with nicknames containing '/' (#1474)
- Add autocompletion for `/cmd` (#1650)
- Add easy quoting (#1651)
  When typing `>` you can now use TAB to cycle through the messages in the chat
  window to quote those messages easily.
- Make sendfile work with self signed certificates (#1624)
- Reset URL autocompletion after usage (#1654)
- Use EDITOR environment variable and only use vim if this is unset (#1658)
- Fix invalid mbrlen in input field (#1660)

Tips:
- You can press alt+c to open an external editor. This is handy for multiline editing
  Like replies, editing MUC subjects, long texts or copying texts from various files.
- Use `>` <TAB> to quote messages from the main window. Combine this with alt+c for
  multiline editing.
- We also want to highlight alt+a from an earlier release to switch between windows
  with new activity.

0.11.1 (2021-09-28)
===================

5 people contributed to this bugfix release: @a1346054, @d3npa, @paulfariello, @pasis and @jubalh.

Changes:
- Fix typo in `shade` color theme (#1579)
- Fix memory leaks (#1583) (#1584) (#1585)
- Fix buffer overread (#1586)
- Don't handle /me in the middle of a message with mentions (#1586)
- Explicitly check for curl version (#1581)
- Fix OMEMO devicelist access model by reconfiguring it (#1538) (#1591)
- Cosmetic cleanup (#1593)
- Change attentionflag shortcut from alt-f to alt+v (#1580)
- Update man page and /help information
- Enable whole word only notifications by default (#1578)

0.11.0 (2021-07-14)
===================

Six months and 242 commits after 0.10.0 we are happy to release 0.11.0.

10 people contributed code to it: @DebXWoody, @xenrox, @mwuttke97, @dustinlagoy, @kaffeekanne,
@CIacademic, @rjc, @raspbeguy, @Mic92 and @jubalh.

Thanks a lot to our sponsors: @mdosch, @wstrm, @huhndev, @matteobin and @jamesponddotco
If you want to support us too: https://profanity-im.github.io/donate.html

Changes:
- Fix 'headache' and 'whiteness' themes (#1471)
- Fix help text for `/logging` (#1470)
- Fix theme loading with -t parameter when a disconnect happens (#1472)
- Add `/mam` command (MAM is still experimental) (#660)
- Improve MAM support: load multiple pages with RSM (#660)
- Fix titlebar MUC name display when no name is set (#1481)
- Improved window title output (#1493)
- Show offline members in occupants panel (#1495)
  `/occupants default show|hide [jid|offline]`
  `/occupants show|hide [jid|offline]`
- Support handling `file://` prefix in paths (#1498)
- Update HTTP Upload XEP-0363 to 1.0.0 (#1499, #1500)
- New `/changepassword` command to change users password (XEP-0077) (#1501)
- Add ability to request 'voice' in MUCs (XEP-0045) (#1211, #1504)
  `/affiliation request`
- Add ability to approve MUC voice requests (XEP-0045) (#1507, #1508)
- Improve `/bookmark` help (#1511)
- Add ability to register a nickname with a MUC (XEP-0045) (#1510, #1210)
  `/affiliation register`
- Fix segfault on `/sendfile` using OMEMO on Raspberry Pi (#1512)
- Use shorter IDs (#1520)
- Add ability to launch external editor to write (multiline) messages (#1485, #1546)
  `/editor`
- Introdcue OMEMO trustmode (#1506)
  `/omemo trustmode manual|firstusage|blind`
- Fix random string generation (8e588d6)
- Separate settings to configure printing of typing information in console and titlebar (#1516, #1532)
  `/intype on|of` -> `/intype titlebar|console on|off`
- Use direct messages instead of MUC-PMs for non-anonymous MUCs (#1534)
- Add ability to mark a window with an attention flag as a reminder to read it later (#1543)
  ALT+F to toggle the flag
  ALT+M to switch to marked windows
  `/wins attention` to list windows with the attention flag set
- Don't log chat states as empty messages (#1550)
- Fix wrong message display when mention is triggered (#1557, #1231)
- Add command to show single bookmark details (#1558, #1559)
  `/bookmark list <jid>`
- Display a notice when someone tries to call (XEP-0353) (#1525, #1560)
- Fix logfile rotation (#1518, #1563)
- Disable notifications by default (#977, #1564)
- Add support for XEP-0157 server contact information discovery (#1524, #1567)
  `/disco info` does now include server contact information
- Fix segfault in `/url open` with OMEMO encrypted files (#1478)
- Add XEP-0377 Spam Reporting (#1434, #1569)
  `/blocked report abuse|spam <jid> <msg>`
- Remember status on reconnect (#1006, #1570)
- Option to accept chat messages only from known contacts (#955, #1571)
  `/silence on|off`
- Improve OX (XEP-0373) handling (#1566)
- Extend Python API (#1528, #1529)
- Cleanups (#1513, #1554, #1561)
- OMEMO related fixes (#1496, #1515, #1539, #1540, #1548, #1549, #1530, #1553, #1565)
- For details see https://github.com/profanity-im/profanity/milestone/26

0.10.0 (2021-01-09)
===================

Six months and 270 commits after 0.9.5 we are happy to release 0.10.0.

10 people contributed code to it: @wstrm, @DebXWoody, @pasis, @niacat, @kaffeekanne,
@timgates42, @spth, @licaon-kter, @misaflo and @jubalh.

Thanks a lot to our sponsors: @mdosch, @wstrm, @huhndev and one person who wants to stay anonymous.
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on:
- libstrophe/libmesode >= 0.10.0.
- glib >= 2.62.0
- sqlite >= 3.22.0
- gtk3 >= 3.24 or gtk2 >= 2.24.10

The goal for this release was mostly internal cleanup, like announced in
the 0.10.0 roadmap: https://lists.notraces.net/pipermail/profanity/2020/000018.html
There was also some undercover work done for MAM (XEP-0313).

Changes:
- Code cleanup
- Several memory leaks fixed (b45384, #805, #1416, #1427)
- Handle headline stanza (#1366)
- By default log only WARN not INFO (#1353)
- Fix OMEMO: check for current item (#1384)
- Fix request OMEMO device id (#1332)
- Add experimental OX (XEP-0373, XEP-0374) support (#1331)
- Add clang format file for uniform coding style (#1396)
- Add contributing guidelines (#1397)
- Dont highlight console once all messages have been read (#1399)
- New setting: Only highlight in console upon MUC mention (#1371)
  `/console muc mention`
- Remove `/tiny` command (#1370)
- Fix `/lastactivity` behaviour (#1411)
- Fix `/correct` quotation marks usage (#1404)
- Parse Stable Stanza IDs (XEP-0359) (#1207) (#660)
- Only insert new messages in database (c9b154) (#660)
- Support both gtk2 and gtk3 (05d19c)
- Update gruvbox theme (#1421)
- Add NetBSD support (#1424)
- Fix uninitialized field in bookmarks (#1432)
- Don't link functional tests against tcl (da513a)
- Fix date format for MAM requests (15f45f)
- Print error stanzas (#1435)
- Add man pages for each profanity command (#1444)
- Fix chatlogs for outgoing carbons (#1439)
- Add OMEMO media sharing support (#1375)
  See `/help sendfile` `/help executable`
- Expand trackbar to whole line (#1448)
- Set default color for trackbar (#1453)
- Log incoming carbons (#1446)
- Use whole path as logfile when defined via -f (#1442)
  `profanity -f ~/mylog`
- Fix color for outgoing messages when no receipts are enabled (#1441)
- Set input window size to max window size (#1458)
- For details see: https://github.com/profanity-im/profanity/milestone/20

0.9.5 (2020-07-01)
==================

Changes:
- Fix segfault in `/theme properties` due to uninitialized `titlebar.scrollable` (#1380)

0.9.4 (2020-06-24)
==================

Changes:
- Fix NULL terminated list (#1367)
- Add missing string.h (#1372) (@pasis)
- Fix gcc warnings for cygwin (#1373) (@pasis)

0.9.3 (2020-06-19)
==================

Changes:
- Fix expansion in eval_password (#1364)

0.9.2 (2020-06-13)
==================

Changes:
- Dont manipulate pointer from getenv (#1357)
- Fix reading/writing linked files (#1362)
- Use gnu99 C standard (#1357)

0.9.1 (2020-06-11)
==================

This release depends on libstrophe 0.9.3 only if you want to have legacy authentication.
Otherwise you can still use libstrophe 0.9.2.

Changes:
- Make legacy auth optional (#1360) (@pasis)

0.9.0 (2020-06-09)
==================

Four months and 350 commits after 0.8.1 we are happy to release 0.9.0.

7 people contributed code to it: @pasis, @wstrm, @DebXWoody, @toogley, @pmaziere, @moppman and @jubalh.

Thanks a lot to our sponsors: @mdosch and @wstrm!
If you want to support us too: https://profanity-im.github.io/donate.html

This release depends on libstrophe >= 0.9.3, sqlite >= 3.22.0 and glib >= 2.56.0.

Changes:
- Support for XEP-0308: Last Message Correction (#805)
  See `/correction` and `/correct`.
- Code cleanup of UI and Message functions
- Always send delivery receipts if they are enabled (#1268)
- By default don't allow sending unencrypted files in an encrypted chat session (#1270) (@moppman and @jubalh)
  See `/omemo|otr|pgp sendfile`.
- Add CI for OpenBSD via sr.ht (@wstrm)
- OMEMO: switch to 12 byte IV for sending (#1272)
- Allow UTF-8 symbols as OMEMO/OTR/PGP indicator char (#1264)
- Make color of the trackbar configurable
  Use `main.trackbar` in themes.
- Allow setting custom log file
  `profanity -f TEST` will log to `~/.local/share/profanity/logs/TEST.log`.
- Send proper OS names for OpenBSD and NetBSD if `/os` is enabled
- Fix plenty memory leaks (@pasis and @jubalh)
- XEP-0084: Add option to open avatars directly (#1281)
  `/avatar odin@valhalla.org` became `/avatar get odin@valhalla.org`
  New is:
  `/executable avatar feh`
  `/avatar open odin@valhalla.org`
  xdg-open is used by default. So it will take your default application.
- Enable popular features by default.
  For a nicer out of the box experience we enable:
  * allow message correction
  * sending receipts
  * enabling carbons
  * type/chat states
- Add slashguard feature to prevent sending commands with typos
  Should protect against `q/uit` or ` /quit`.
  See `/slashguard`.
- Optionally display both MUC name and MUC JID in titlebar (#1284)
  `/titlebar use name|jid` -> `/titlebar show|hide name|jid`.
- Add option to define a theme at startup (#1286)
  `/profanity -t bios`
- Add setting to not colorize own nick if XEP-0392 is enabled (#1288)
  `/color own on|off`.
- Add new theme: jubalian
- Fix docker related CI tests (#1294)
- Fix OMEMO autocompletion (75a43f, df23c3)
- Modify our README
- Store logs in SQLite backend (#1282)
- Request OMEMO device list only for non anon MUCs (#1315) (@DebXWoody)
- Don't display MUC history in one uniform colour, instead colour messages like regular ones (#1261)
- Fix autocompletion for `/software` in regular chat windows (#1337)
- XEP-0092: Make it possible to ask servers for their version (#1338)
- Add possibility to easily open URLs (#1340, #1348)
  `/executable urlopen firefox`
  `/urlopen <tab>`
- Display hint when window is scrolled (#1289)
  Theme via `titlebar.scrolled`
- Add option to hide windows with no new messages in statusbar (#1285)
  `/statusbar show|hide read`
- Support bookmark names (#697)
- Preserve Gajims minimize flag in bookmarks (#1326)
- Don't show resource in titlebar in narrow windows if it is too long (#715)
- Improve autoping (#1333, #1315) (@DebXWoody)
- Fix titlebar status display when using PGP (#1327) (@DebXWoody)
- OMEMO: Only request "current" item (#1329) (@DebXWoody)
- Add feature to ignore the autojoin flag for bookmarks (#1115)
  Helps users who want to autojoin MUCs with most clients but not with all.
  `/bookmark ignore`
- Fix edge case where contacts get displayed as offline when they are online (3d7a31)
- Add option for legacy authentication (#1236) (@pasis)
  `/connect <account> [auth default|legacy]`
  `/account <account> set auth default|legacy`
- All issues: https://github.com/profanity-im/profanity/milestone/19

0.8.1 (2020-02-07)
==================

This is a bugfix release.

If you like Profanity, please consider donating: https://profanity-im.github.io/donate.html

Changes:

- Fix ending ncurses colors in rosterwin
- Fix segfault when consistent nick colors where never in config (#1236)
- Improve `/clear` behaviour to also clear the buffer. So a redraw doesn't bring
  the content back.
- Use unique IDs in stanzas when requesting avatars

0.8.0 (2020-02-03)
==================

On 2012-02-02 the first commit to Profanity was done by @boothj5.
8 years later, and 5 months after 0.7.0, we are happy to announce Profanity 0.8.0.

This release has 315 commits since the last release.
11 people contributed code to it: @paulfariello, @svensp, @aaptel, @aszlig, @mdosch, @pasis, @mzagozen, @quite, @weiss, @Misaflo and @jubalh.

Changes:

- OMEMO fingerprint autocompletion now considers only the contact in question (@paulfariello) (#1068)
- Save and display oldest timestamp from delay tags (#1254)
- Change theme handling (#1077)
  `/theme load themename` not loads only the colours of a theme. So the users preferences don't get overwritten
  `/theme full-load themename` loads the whole theme including preferences (like `omemo.char`)
- Add gruvbox theme (@Misaflo) (#1259)
- XEP-0092: Include OS name in `/software` answer.
  See `/os on|off`
- Add option to notify about version request via XEP-0092 and XEP-0232 via `adv.notify.discoversion`
  setting in configuration file.
-  Add option to display MUC name or JID in titlebar
  * `/titlebar use [name|jid]`.
-  Add `/roster room use` command to decide whether to display the MUC name or JID in the roster
  * `/roster room use name` to use the name of the MUC in the roster list.
  * `/roster room use jid` to use the jid of the MUC in the roster list.
- Fix decryption failure for messages sent from Converse.js (@paulfariello) (#1253)
- Fix crash when OMEMO key is misconfigured (@paulfariello) (#1239)
- Use OMEMO for offline MUC members (@paulfariello) (#1242)
- Fix OMEMO 1on1 chats with psi+ (@svensp) (#1247)
- Save occupants and roster chars (#1244)
- Add support for downloading user avatars via XEP-0084 (#1240)
  See `/avatar`
- Add last read position marker trackbar (#1238)
- Dont print error message if a valid setting function is called (#1237)
  When printing configuration we often use the same command as setting but without any argument.
  So far this displayed "Invalid usage".
- Add support for XEP-0392 consistent color generation for nicks (@aaptel and @jubalh) (#1191)
  See `/color`, `/occupants color`, `/roster color`
- Call ncurses resize function before move function (#1235)
- Fix error when joining IRC via biboumi (#1230)
- Fix stanza_get_child_by_name_and_from() strcmp (#1227)
- Fix showing own messages twice in ejabberd mucs (#1223)
- Allow setting of status message (which actually never worked before) (b846c49)
  `/status set online "This is my text"`
  `/status set away bye`
  `/status set away`
- Add option to store current line in history (irssi down arrow) (#200)
- Standardize commands (#1116):
  * `/tls show on|of -> `/titlebar show|hide tls`
  * `/encwarn on|off` -> `/titlebar show|hide encwarn`
  * `/titlebar show|hide resource` additionally to `/resource titlebar on`
  * `/titlebar show|hide presence` additionally to `/presence titlebar on`
  * `/invite <contact>` -> `/invite send <contact>
  * `/invites` -> `/invite list`
  * `/decline` -> `/invite decline`
  * `/online`, `/away`, `/dnd`, `/chat`, `/xa` -> `/status set online` etc.
  * `/status` -> `/status get`
  * `/chlog on` -> `/logging chat on` (#1224)
  * `/grlog on` -> `/logging group on` (#1224)
  * `/group` -> `/roster group` (#1229)
- Check omemo stanza names when iterating nodes (@aszlig) (#1217)
- Add clipboard feature. See `/paste` (#1216)
- Log MUC PM messages (#1214)
- Improve forest theme
- Change default text colors to default instead of white (@mdosch) (#1213) (#535)
- Fix date display in chat history (#922)
- Log incoming MUC messages if origin-id says they dont come from us (#1201)
- Support XEP-0359: Unique and Stable Stanza IDs (#1207)
  To help us identify which MUC messages were sent by us.
- Fix double _XOPEN_SOURCE definition (@pasis) (#1206)
- Highlight unread messages with a different color in /wins (#895)
  New theming option `cmd.wins.unread`
- Improve MUC 1:1 logging (#1184)
- Fix user messages double logged in MUC logs (#1201)
- Fix 26 causes for memory leaks
- Add `/clear` autocompletion and improve help (#855)
- Allow multiple instances to write to account config via `/reload`
  command that reloads the config file (#627)
- Log message carbons to log file (#1181)
- Include PYTHON_EXTRA_LIBS in libtool config (@mzagozen) (#1200)
- Document how to block users in MUCS (#618)
- Keyboard switch to select the next window with unread messages (#1114)
  (alt + a)
- Keyboard switches (for moving to 20 windows instead of 10 (#1114)
  (alt + 1234567890qwertyuio)
- Fix MUC history detection with older Prosody versions (#1190)
  See https://issues.prosody.im/1416
- `statusbar.current` is a new theming option for currently selected tab (@quite) (#1195)
- Code cleanup
- Make /info more user friendly (#1194)
- Add solarized theme (#1175, #1198, #1199) (@mdosch)
- Set nonblocking mode for stderr (@pasis) (#1192)
- Log alleged roster push (6cf06dc)
- Allow colorization of history messages (#1170)
  See `main.text.history` theming option
- Fix crash if source jid doesn't contain the node part (@pasis) (#1153)
- Add support for 256 colors (@aaptel and @jubalh) (#1177 and many commits)
  We use the Xterm color names. See https://jonasjacek.github.io/colors
- Don't render (all) delayed messages as MUC history (@weiss) (#1173)
- Add possibility to specify alternative config file (10ca3e)
  Use `profanity -c ~/path/to/other/config`
- Don't print subscribed message if contact is already in roster (#1166)
- Only save preferences when new `/save` command is issued (#1146)

0.7.1 (2019-09-24)
==================

- Fix copyright/info displayed email
- Fix typos in OMEMO logs
- Fix crash when jid has no node part (#1153, #1193)

0.7.0 (2019-07-31)
==================

- Fix plugin unload return code if just one plugin fails (#995)
- Fix several typos
- Fix some display indentation issues (#1073)
- Fail plugin unload if the plugin doesn't exist
- Improve encrypted message stub header by mentioning the encryption method
- Fix GPG encryption (#997)
- Redraw screen after entry of PGP key (#906)
- Fix support for case-sensitive account names (#725)
- Fix /me display when highlighting user in MUCs (#950)
- Fix `make dist` (0f0659a)
- Fix use after free bug (#1044)
- Fix segfault on connect with default account (#1046)
- Implement OMEMO support (#1039, #658, #1070)
- Add random string at the end of the default resource (#1053)
- Fix handling of messages without ID in MUC (#1061)
- Add library versioning to libprofanity (#973)
- Add more customization: occupants indent (/occupants) (#690, #1072)
- Add more customization: occupants header char (/occupants) (#690, #1074)
- Add more customization: occupants wrap (/occupants) (#690, 125ca2f)
- Add more customization: occupants char (/occupants) (#690, #1084)
- Fix formatting for privileges on (a666f0d)
- Fix usage of statusbar number in theme (#1078)
- Fix Debian 32bit tests (#1091)
- Fix unit tests (#1092)
- Fix infinite loop on connection loss (#1103)
- Don't clear saved account data in session_disconnect (#1106)
- Cancel autoping timer on disconnect or connection loss (#1105)
- Fix SIGABRT on connection loss (#1083)
- Only print room history for new messages upon reconnect (#704, #1110)
- Check if valid account before setting autoconnect (#1112)
- Improve plugin load error message, in case built without support (cc697de)
- Iterate up to 100 logfiles (#519)
- Fix rejoining of MUCs upon reconnect (#1120)
- Add option to set all window related time formats (#632, #1120)
- Always check for directory changes with sendfile auto completion (#1154)
- Fix several memory leaks (#1130, + plenty commits)
- For details see https://github.com/profanity-im/profanity/milestone/17

0.6.0 (2019-02-18)
==================

- Allow moving vertical window positions (/titlebar, /mainwin, /statusbar, /inputwin)
- Allow loading/unloading all plugins (/plugins)
- Allow installing plugins from directory (/plugins)
- Allow uninstallation of plugins (/plugins uninstall)
- Allow update of plugins (/plugins update)
- Theme option for status bar time (statusbar.time)
- Case/accent insensitive autocompletion
- Shift tab to select previous autocomplete suggestion
- Allow searching help (/help search_all|search_any)
- Support for Legacy SSL
- Allow caching of rooms (/rooms cache)
- Add autocompletion for servername when listing rooms (/rooms service)
- Allow showing/disabling tab number in statusbar (/statusbar show)
- Adjust configure for OpenBSD
- Use UUIDs instead of counter for messages
- Support basic ad-hoc commands(xep-0050) (/command)
- Add option to trust server's certificate (/connect, /account)
- Add possibility to close windows via prof_win_close inputrc hook
- Bug fixes: https://github.com/profanity-im/profanity/milestone/16?closed=1

0.5.1 (2017-01-28)
==================

- Add prof.get_room_nick plugins api function
- Add main.help.header theme option
- Look for system TLS certificate path by default (/tls certpath)
- Use service discovery to set account muc property
- Allow clearing account muc and resource properties
- Allow plugins to complete file paths with prof.filepath_completer_add function
- Add encryption settings functions to plugins api
- Allow plugins to block message sending on pre message send hooks
- Fix CVE-2017-5592 (incorrect implementation of Message Carbons allowing social engineering attacks)
- Bug fixes: https://github.com/profanity-im/profanity/milestone/15?closed=1

0.5.0 (2016-09-15)
==================

- Plugins API supporting C and Python plugins
- SSL certificate verification (requires libmesode) (/tls)
- HTTP file upload (xep-0363) (/sendfile)
- Blocking command (xep-0191) (/blocked)
- Allow auto extended away (/autoaway)
- Include last activity in initial presence (xep-0256) (/lastactivity)
- Last Activity (xep-0012) (/lastactivity)
- Ability to run command scripts (/script)
- Account startscript property to execute a command script on connect (/account)
- Export roster to CSV file (/export)
- Support for GTK tray icons (/tray)
- User specified text triggers for chat room notifications (/notify)
- Per chat room notification options (/notify)
- Many new roster panel display options (/roster)
- Time format preferences per window type (/time)
- Edit, prepend and append to room subject (/subject)
- Autoping timeout preference (/autoping)
- Window navigation by window title (/win)
- Window closing by window title (/close)
- Account theme setting (/account)
- Allow sending XMPP stanzas in xmlconsole window (/xmlconsole)
- Configure level of room message notifications in console window (/console)
- Check ~/.config/profanity/inputrc for readline settings
- Custom readline functions for navigation key bindings
- Autocomplete command arguments when no characters entered

0.4.7 (2015-09-20)
==================

- GNU Readline
- OpenPGP support
- Message Carbons (xep-0280)
- Message Delivery Receipts (xep-0184)
- MUC Mediated Invitation support
- Configurable time formatting
- Option to show JIDs in roster
- Option to hide empty groups in roster
- Generate UUID for unnamed new MUC rooms
- Themable UI preference to indicate OTR and PGP messages
- Reformatted help
- devel: Added functional tests using libexpect and libstabber

0.4.6 (2015-03-03)
==================

- 16 colour support (/theme colours)
- UI preferences included in themes
- /wrap - Word wrapping
- /time - Show/hide time in main window, and configure precision
- /roster - Show/hide and customise roster panel
- /roster and /occupants panel size settings (% of screen width)
- /account default - Set default account for /connect
- /account remove
- /presence - Show/hide contact presence in titlebar
- /resource - Override resource during chat, resource display settings
- Improved chat session handling <http://xmpp.org/rfcs/rfc6121.html#message-chat>
- Lower CPU usage with dynamic input blocking timeout
- Keychain/keyring integration using account eval_password property
- Disable term window title by default
- Fixed remote code execution bug on OSX when desktop notifications configured to show message text
