This file describes the new features in each poezio release. For more detailed changelog, see the roadmap: https://dev.louiz.org/projects/poezio/roadmap * Poezio 0.14 - dev * Poezio 0.13.1 - dev # Bug fixes - Contacts won’t be seen playing games or music when they actually stop doing so. - /leave now toggles off the autojoin flag instead of removing the bookmark. - /affiliation displays things in the info win instead of directly in the room, and additionally displays which room it refers to. - List the correct required versions for package maintainers. - Fix the AppStream manifest to get Flathub to accept it. - Add a warning when the terminal doesn’t support 256color mode. - Display our own nick properly in messages received from MAM. - Only send an unavailable presence on closing a room if we are joined. - Don’t display the current date for history messages received today. - Fix marquee and dice plugin to use newer Last Message Correction format. # Forgotten additions - Add a clean theme for light terminals, thanks Armael! * Poezio 0.13 # Thanks - madhur for the MAM code and various other fixes (GSoC 2019) - Ge0rG for fixes in the reconnect and carbons code - fiaxh for the nice SVG logo Zash, PS Le Stang, Karthikeyan Singaravelan, Jonas Schäfer, Célestin Matte, Andrey Utkin, root. # Meta changes - Packages: poezio is now packaged for Gentoo and Debian buster (poezio v0.12.1) - Source: the repository is now hosted at https://lab.louiz.org/poezio/poezio # Breaking changes - BREAKING: requires python3.7 (previously python 3.5) - DEPRECATION: `load_log` configuration was removed - DEPRECATION: `bookmark_on_join` configuration option was renamed `synchronise_open_rooms`, and now defaults to true. This makes /join automatically create a bookmark, use /leave to remove it # New features and plugins - `/impromptu [jid ..]` command to create a new chat with these persons - `/scrollback` to scroll back to a specific line/message in the current window - `/invite [jid ..]` command in single user chat does like `/impromptu` creating a new MUC - `/affiliation` command now returns the list of privileged users on the current MUC when no argument is supplied - `default_muc_service` configuration for replacing the server's default MUC - `unique_prefix_tab_names` display option to show the shorter tab name prefixes in the tab list - `/list` defaults to `default_muc_service` when no argument is specified - XEP-0392 support - New Plugin: OMEMO (experimental) - lives as an external plugin at https://lab.louiz.org/poezio/poezio-omemo - New Plugin: Contact - queries an entity for contact addresses (XEP-0157) - New Plugin: Upload - adds a `/upload ` command in chats for HTTP upload - New Plugin: remove_get_trackers - Remove GET trackers from URLs in sent messages. - New Plugin: QR # Under the hood - Plugin API: `E2EEPlugin` is a new experimental API for message encryption (used by the OMEMO plugin) - Plugin API: plugins can now declare a string list of dependencies - Plugin API: plugins can now be setup using a well-known setuptools entrypoint - Reworked Tab handling - Split Message rendering - Typing improvements # Minor changes (bugfixes) - Properly advertize gaming status - Improve error reporting to users - Add SVG support for avatars - Plugin: Disco - allow node to be specified - Don't always treat carbons from biboumi as MUC-PMs (#3705) - Read newer Last Message Correction rules while still reading older ones (#3462) - Allow /block and /unblock in ConversationTab (#3346) - Experimental: Fetch archives (MAM) on scroll up in MUC (#3052) - Allow /add in ConversationTab (#3395) - Prevent Chat State Notifications from being stored in the archive (#3518) - Rework MUC-PM Carbons handling (#3294) - /scrollback (#3481) - Read in (#3451) - Only use MUC in specific cases (#3452) - Allow /reconnect in all tabs (#3471) - Allow /embed in chat tabs (#3449) - Allow /upload in chat tabs - Properly identify MUC-PMs for normal messages and chatstates (#3491) - /server_cycle: stricly match specified domain (#3412) - Breaking: -v/--version previously for internal purposes now returns version as expected (#3429) - Improve highlighting regex (#3433) - Generate static resource at first launch (#3400) * Poezio 0.12 - Require Python 3.5, to add support for Python 3.7, use proper async functions, use typing, italics formatting, FIXME - Added support for XEP-0392 (Consistent Color Generation) - Added support for XEP-0153 (vCard-Based Avatars) and XEP-0084 (User Avatar) in the roster tab - Added support for XEP-0363 (HTTP File Upload) for easy file transfer, in the upload plugin with /upload - Added support for XEP-0066 (Out of Band Data) for Conversations compatibility when sharing images, in the embed plugin with /embed - Removed support for XEP-0296 (Best Practices for Resource Locking), to use all features available no matter what our contact’s current clients support - Check for usable Unicode support on start - Generate a device id on first start, and use it for our resource - Display the public key hash instead of the certificate’s - Handle carbons properly for private messages in rooms - /bookmarks can now be used to rename tabs as you want - Remove unexpected command completion based on command prefix - Add an irssi theme - Add a code plugin, which requires pygments - Fix resource duplication on reconnect - Misc fixes and improvements * Poezio 0.11 - Implementation of XEP-0380 - Docker images - Improved documentation - GPG plugin fixes - Added manpages for the utility scripts - Misc fixes * Poezio 0.10 - A lot of cleanup and refactor in order to use cython on the codebase more easily. - A new poezio_logs script to make logfiles more human-readable - Substantial performance improvements - Added a new confirmation tab and used it for cert warnings and XEP-0070 - Added support for XEP-0070 (HTTP request verification) - Enabled carbons (XEP-0280) by default - Added support for XEP-0198 (stream management) - Added support for XEP-0352 (client state indication) - Added support for XEP-0319 (last user interaction in presence) - Add an 'eval_password' config option - Add a marquee and dice plugins - Add a bob plugin - simple_notify plugin works in MUC too - The reorder plugin can now /save_order - Minor ui changes - Many Bugfixes * Poezio 0.9 - Use slixmpp instead of sleekxmpp, remove threads and locks - Require python 3.4 for the input handling, event loop, xml parser, and ssl API - Due to the slixmpp move, /reconnect now works (ecf22cb) - Add a check for broken python ncurses (1c5589b) - Add a /reload command to reload the config (71f3848) - Add a /color command to permanently set the color a nick (f7e7836) - Add a /closeall command with a plugin, to cleanup the open tabs (ed7fe69) - Add a /reorder command with a plugin to order the tabs based on a static layout (8afbb44) - Add a /set_default command which sets the value of an option back to its default (9caa992) - Use a deterministic algorithm to set the nickname colors by default (2452706) - The user’s JID is now shown in the roster (a0a00d5) - The screen_detach plugin now also detects tmux (21d8a3e) - The autocorrect plugin now supports regular expressions (067ad58) - Improve the XML tab with coloration, better filters, and filter chaining (1cd0b4d) - Allow the use of client X.509 certificates for authentication, and add /certs, /cert_{add,disable,revoke,fetch} commands (00396c1) - Stream errors are now displayed, which is more helpful to the user than 'connection failed' (5cd854f) - The (system-wide) launch script is now a setuptools entry point that checks dependencies (22f9b7a) - XHTML-IM base64 embedded images are now extracted by default (a9f642f) - New open_all_bookmarks option to let the user choose what to do with bookmarks without autojoin (5a5d581) - Store the server certificate fingerprint with SHA-512 (8d2408c) - pipe_cmd plugin that allows simple remote control of poezio (4b0d9a2, dc46286) - /link now uses xdg-open (ba32d74) - Display information about the XMPP features the contact supports (a1f86720, 2dafd6d5) - make the data forms tab better (3858273, 7378ea9) - Implement ad-hoc commands (bbc55fa) - A change_title plugin changes the title of the terminal depending on the current tab. Also, poezio is now "poezio" and not "python3" (c1d19fa, 48e59d3) - The OTR plugin now implements SMP (96442e9) - The OTR plugin now tries to interpret html by default (4e4ab56) - The OTR plugin also has nicer and more informative messages (71ae29df, f782516e, d7bbf339c, a0c5f95, 25e91b0) - The interface will adapt if the terminal is too small (0caf941) - Implement XEP-0184 (message delivery receipts) (5999b71) - Better timezone handling (02d9fd9) - Better alias plugin, with permanent alias storage (e80a90) - poezio_gpg_export script to generate a config for the gpg plugin (8ec5671) - improvements to dynamic tabs, information about jid lock/unlock (f7294b2, 5c9dd44, fba511e) - irc plugin to use with biboumi (cf752c2) - implementation of XEP-0012 - last activity (65c2473) - errors.log contains a lot less stuff (695877b) - tabs where the input is not empty will not be considered as "normal" (52e6334, fe072a8) - /bookmark * now preserves the order of the tabs (38061a6) - /list on big servers should be much faster (7b446d9) - /load and /unload can handle several plugins at once (0847643) - nicks are no longer highlighted if they are inside another word (f58dfe2) - /invite will now use the “direct” invitations of XEP-0249 when supported (3221534) - tabs where the other party is currently composing will have a particular state (a784216) - Implementation of room destruction (1f0ff4f) - running theming.py and keyboard.py will be nicer and not pollute the output afterwards (5012611, 1bd9f78) - Bugfixes * Poezio 0.8.1 - fix compilation with python 3.4 * Poezio 0.8 - Allow in-band password changing with /password - Force c2s encryption until configured otherwise - Allow users to set their cipher suites and ship one by default - Autocorrect plugin that sends sed-like corrections - /invite in a MUCTab now has the behavior one could expect (inviting a specific JID to this MUC) - Themes and plugins are now loaded using a set of paths instead of only a specific directory. - The OTR plugin has been completly rewritten - The completion can now complete the current argument in the input, instead of only the last one. - Poezio now periodically pings the server to detect connection loss - Improve the roster and the input (^R search, weechat-like behaviour with long lines) - Add a way to send text with multiple styles at the same time. - Background colors in themes are now fully supported (it wasn’t for information text and nick colors, mostly) - The logs now use the mcabber format in order to improve tool reuse (plus, our old log format wasn’t parsable). - The documentation now uses Sphinx/reST instead of AsciiDoc - Add User Tune/Nickname/Mood/Activity/Gaming support - More theming options - Add xml:lang support - Move to upstream sleekxmpp - Add support for XEP-0296 (best practices for resource locking) - Move the “config reload” signal to SIGUSR1 instead of SIGHUP - Add a /disconnect command - New style and API for /help - Add a visual indicator of s2s errors in the roster - Add an option (show_timestamps) to show message timestamps. - Add an option (hide_user_list) to hide the user list in MUCs. - Add a "reverse" theme option for highlight nicks that displays the nick in reverse mode on highlight messages. - Use get_wch() if available (introduced in python3.3) instead of our custom way to read unicode input. - Add an option to preload last logs into the conversation when opening a new tab. - Introduce support for XEP 308, Last message correction (http://xmpp.org/extensions/xep-0308.html). - Rewrite the Executor class to make remote execution more reliable, and command easier to write (without a lot of escaping to do). - Increase roster speed a lot. - Add option to sort the roster more precisely. - Add an option to avoid gap in the tab numbering when closing a tab. - Add a /move_tab command, to move tabs. - Add simple communication blocking support (http://xmpp.org/extensions/xep-0191.html). - Add last activity support (http://xmpp.org/extensions/xep-0012.html). - Add a /self command. - Add a /runkey command. - Support underlined text in the input with C-c u. - Add support for /set