summaryrefslogtreecommitdiff
path: root/CHANGELOG
blob: 1e0e818ad12b00c28f54407742fc841cc4fb09fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
This file describes the new features in each poezio release.

* Poezio 0.14 - dev

# Configuration changes:

- ADDED: `mam_sync`, `mam_sync_limit`.
- ADDED: `autocolor_tab_names`.
- CHANGED: `ca_cert_path` is commented out. Poezio will attempt to guess
  common CA bundle paths. The option can be used to overwrite this behaviour.
- REMOVED: `force_remote_bookmarks`.
- REMOVED: options related to activity, mood, gaming, tune:
  `enable_user_activity`, `enable_user_mood`, `enable_user_gaming`,
  `enable_user_tune`, `display_activity_notifications`,
  `display_mood_notifications`, `display_gaming_notifications`,
  `display_tune_notifications`.
- REMOVED: `deterministic_muc_colors`.

# Changes

- DEPRECATION: /leave is deprecated. Use /part or /close instead.
- REMOVED: rich presence (activity, mood, gaming, tune) from poezio, alongside
  with configuration options and commands: /activity, /mood,
  and /gaming. These are moved to the new user_extras plugin.
- REMOVED: non-deterministic nick colors in MUC.
- REMOVED: XEP-0319 support removed for privacy and performance.
- REMOVED: Support for pypy3 with the removal of poopt.py
- ADDED: New /request_voice command for moderated rooms
- ADDED: /join: support using an XMPP URI (xmpp:...?join)
- ADDED: /destroy_room: new optional reason and altroom arguments
- ADDED: Newlines now considered as word separator in input manipulation (#3411)
- ADDED: Colored tab names or number using Consistent Color Generation behind
  `autocolor_tab_names` (thanks jonas!)
- Stop highlighting on MUC history messages just because they're delayed
- Stop displaying the traceback in debug log when /xhtml fails
- Ensure launch.sh can be use outside the repository (Thanks kaliko)
- Detect `/set option = value` pattern and do as it `/set option value` was
  called. (#3517)
- Newlines taken into account on completion (#3385)
- Allow resizing certificate confirmation window (#3371)
- Make theming more configurable around nicks
- Log MUC <destroy/> payload in the information buffer
- impromptu: wait for room subject before configuring and inviting
- Impromptu: rooms now have pronouceable short names
- impromptu: ensure a room is empty before joining
- impromptu: now uses mediated invites
- Fetch from MAM by default when use_log is False.
- xhtml: Add a new line after a blockquote

## Bug fixes

- Ensure bookmark is present before removing it in /close.
- Ensure bookmarks are saved correctly on method config change, and on /close.
- Ensure nick is added to bookmark when specified
- Do not crash on bookmark without a nickname (Thanks Ge0rG)
- Ensure the correct tab is bookmarked on /bookmark and /join
- /bookmark: treat empty nick as no nick to avoid failing on empty resource
- Fix closing a tab not in bookmarks
- Disco barejid instead of domains on sent carbons. Follow-up of 5e40437.
  (Thanks Ge0rG)
- Only use JID internally when handling affiliations. Add nick if present.
  (#3536)
- /last_activity: prevent traceback
- Fix bad error handling when checking bookmarks storage
- `/join / password` works again
- Report available presence in tabs correctly
- /display_correction: now reports the correct time for private messages (#3532)
- Fix composing indicators not showing (#3527)
- Fix pasting text in data forms and bookmarkstab (#3519)
- Fix /me logging (#3432)
- Retrieve nick colors from the correct section
- Do not scroll right by default in dataforms/bookmark text
- Hack around the time limit for topic messages
- Ensure MUC-PM logging filenames are generated as expected (Thanks Ge0rG, southerntofu)
- Fix poezio displaying many times the same participant in the user list.
- Fix default dataform field handling (#3554)
- Fix MUCListTab not joining selected MUCs (#3553)
- Fix /color completion (Thanks eijebong)
- /info: Don't display comma before status message if not available

## Plugins

- ADDED: untrackme plugin. based on remove_get_trackers.
- ADDED: user_extras plugin. /activity, /mood and /gaming moved from core.
- ADDED: sticker plugin.
- DEPRECATED: remove_get_trackers
- Reorder: Prevent GapTabs from being serialized and ignore when serialized as
  they're recreated automatically.
- Code: prevent traceback when not enough arguments
- Link: Add support for aesgcm, gemini and gopher URIs
- Contact: iterate all data forms (Thanks Ge0rG)
- Fix plugins (embed, lastlog, otr, quote, time_marker) to use poezio.ui.types
- Disco: Added error handling

## API

- BREAKING: E2EEPlugin.decrypt's `tab` parameter is now of type
  Optional[ChatTab] instead of ChatTab.
- BREAKING: E2EEPlugin.supported_tab_types is now required
- BREAKING: decrypt method is now async
- E2EEPlugin decrypts encrypted messages even when they have no body.
- E2EEPlugin lets through already encrypted messages without giving them
  to the user lib (poezio-omemo, for example).
- Correctly pass realjid to decrypt call for MUC messages
- /<encryption_name>_fingerprint command is added. Plugins can implement
  `get_fingerprints` and `format_fingerprint` for it to return a (formatted)
  value.

# Under the hood

- Moved development from 'master' to 'main' branch
- Lots of type hints added (decorators, multiuserchat, shlex, common, muctab,
  etc.) fixing many bugs
- Lots of event handlers and calls are now async in poezio. Many callbacks removed.
- Lots of refactoring
- Performance improvements:
  - Trim all messages by 24 bytes on 64-bit systems
  - Reduce log parsing by a lot
- No more safeJID calls. (#3457)
- Rework some features to use slixmpp's API instead of custom poezio code
  (i.e., muc's set_subject, set_role, set_affiliation, destroy_room,
  cancel_config, set_room_config, and most events)
- Split commands from Core
- Require typing_extensions package for python
- Require setuptools package explicitly because of pkg_resources' import
  (Thanks Thomas)
- Replace asyncio.ensure_future with asyncio.create_task

# Meta

- Improve README, badges, new text, more links
- Update install.txt with instructions for guix (Thanks Raghav)
- Remove references to dev.louiz.org. Everything is happening at
  lab.louiz.org.

* Poezio 0.13.1

# 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.
- Only add auotjoin on new bookmarks for synchronise_open_rooms on /join
- /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.
- Bookmarks tab properly displays bookmarks method (local/remote) and allows
  to switch between them again.
- Updated manpages and added manpages built from the doc in the setup process.
  Packagers need to run setup.py build_man to have them built.

# 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> [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> [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 <filename>` 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 <delay/> in <subject/> (#3451)
- Only use MUC <subject/> 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 <option> toggle, which toggles the current value, if
  it’s a bool.
- Add a couple of (useless) funny plugins.
- New display of message errors/headlines
- bugfixes

* Poezio 0.7.5.1 & 2 - Summer 2012
- Fix tracebacks caused by a change in Sleekxmpp

* Poezio 0.7.5 - 25 May 2012
- Plugin system
- Server-side bookmarks
- New keyboard shortcuts tuning options
- New keyboard shortcuts
- Attention support
- Invitation support
- Improved contact management
- New tab list
- Certificate check (TOFU model)
- New commands for sending stanzas manually
- bugfixes


* Poezio 0.7.2 - 08 Nov 2011
- Huge speed improvements in both memory usage, text
  refresh speed and interface resize.
- Chatstate notifications (in private AND in MUCs)
- /message command to talk to any JID
- /version command to get the software version of an entity
- /bind command, and keys can be bound in the config file
- Multiline edition
- xhtml-im messages can be sent and received
- 256 colors support
- themes are easier to create and load. They can use
  up to 256 colors
- completion now works not only at the end of the input
- /affiliation and /role commands to administrate MUCs
- /export command to export your roster in a file
- data forms support (only for room configuration at the moment)
- documentation is now written in asciidoc format
- a *lot* of bugfixes


* Poezio 0.7.1 - 2 Feb 2011
- /status command to globally change the status
- /win command now accepts part of tab name as argument
- bugfixes


* Poezio 0.7 - 14 jan 2011
Codename ”Koshie & Mathieui”
- Library changed from xmpppy to SleekXMPP
- Python 3 only
- Introduce the roster
- One to one conversations
- Roster search
- Add/remove/accept/deny contact in the roster
- Resizable mini-buffer displaying various informations
- All colors can be changed with a theme file
- Command auto-completion
- /say and // commands
- /recolor command, changing the nick's colors in a MUC
- /list command lets the user browse the MUCs on a server
- Warn user about publicly logged rooms
- Possibility to limit the number of history messages received from MUC
- auto-rejoin when kicked from a MUC
- The number of lines available to scroll down is displayed
- Possibility to use a modified nickname automatically when a nick is reserved
- A line separates the alread-read messages from the new messages
- Information messages are more colored
- Man page added
- bugfixes


* Poezio 0.6.2 - 21 Jul 2010
- Lines are now broken between words and not in the middle of them
- /unquery command
- default nickname is now $USER
- Server on /join command can be omitted
- /query command can now take a message in parameters
- logs are now save in $XDG_DATA_HOME and this can be configured
- Available users now have a greater priority on nickname completion
- utf-8 characters (from the keyboard) are now completely supported
- Many new keyboard shortcuts (move the cursor, edit the line, switch tabs...)
- DESTDIR support in Makefile is fixed
- Completion on recently said words
- /join command now takes the current server if not specified in the parameters
- Many Bugfixes


* Poezio 0.6.1 - 13 Jun 2010
- Enable tracebacks


* Poezio 0.6 - 13 Jun 2010
- Private messages are handled
- Muc error messages are displayed
- Nickname auto-completion
- Users status are displayed in the MUC user-list
- Non-anonymous connection (registered nickname can now be used)
- An avatar can be set
- A minimal Vcard can be set
- Proxies are handled
- Status changes can be hidden if the user didn't talk for a long time
- A line displays informations about rooms we are in (new messages, hl, etc)
- Highlights are handled (we can specify a list of words)
- Various new commands (topic, kick, set, win)
- Password-protected MUCs are handled
- The dates of room history are handled
- The way the text is displayed on the screen has been rewritten, this fixes
  the blink and the slowness-over-ssh problems.
- User lists are ordered
- Messages can be logged in files
- Status changes displays only what has really changed
- Users can be ignored (/ignore, /unignore)
- Various Bugfixes


* Poezio 0.5.1 - 2 Feb 2010
- Little bugfix release


* Poezio 0.5 - 1 Feb 2010
- Initial release