-
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathDOAP.xml
More file actions
922 lines (824 loc) · 45.6 KB
/
Copy pathDOAP.xml
File metadata and controls
922 lines (824 loc) · 45.6 KB
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
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
<?xml version='1.0' encoding='UTF-8' ?>
<rdf:RDF
xmlns='http://usefulinc.com/ns/doap#'
xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'
xmlns:xmpp='https://linkmauve.fr/ns/xmpp-doap#'
xmlns:schema='https://schema.org'
>
<Project>
<name>Xepher</name>
<created>2021-06-26</created>
<shortdesc xml:lang='en'>Xepher — WeeChat XMPP client</shortdesc>
<shortdesc xml:lang='fr'>Xepher — Client XMPP pour WeeChat</shortdesc>
<description
xml:lang='en'
>Weechat plugin for accessing XMPP, written in C++. This fork includes bug fixes and feature enhancements.</description>
<homepage
rdf:resource='https://github.com/ekollof/xepher'
/>
<bug-database
rdf:resource='https://github.com/ekollof/xepher/issues'
/>
<developer-forum rdf:resource='xmpp:weechat@muc.xa0.uk?join' />
<support-forum rdf:resource='xmpp:weechat@muc.xa0.uk?join' />
<license
rdf:resource='https://github.com/ekollof/xepher/blob/master/LICENSE'
/>
<language>en</language>
<programming-language>C++</programming-language>
<os>Linux</os>
<category
rdf:resource='https://linkmauve.fr/ns/xmpp-doap#category-client'
/>
<repository>
<GitRepository>
<browse
rdf:resource='https://github.com/ekollof/xepher'
/>
<location
rdf:resource='https://github.com/ekollof/xepher.git'
/>
</GitRepository>
</repository>
<implements rdf:resource='https://xmpp.org/rfcs/rfc6120.html' />
<implements rdf:resource='https://xmpp.org/rfcs/rfc6121.html' />
<implements rdf:resource='https://xmpp.org/rfcs/rfc6122.html' />
<implements rdf:resource='https://xmpp.org/rfcs/rfc7590.html' />
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0027.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.4.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Current Jabber OpenPGP Usage (deprecated but supported)</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0030.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>2.5.0</xmpp:version>
<xmpp:note xml:lang='en'>Service Discovery - server disco#items queried at connect time to find all components; disco#info sent to each component to detect upload services (XEP-0363), pubsub gateways (XEP-0060), and conference services (XEP-0045); pubsub components with identity category='pubsub' are stored in known_pubsub_services for /feed discover auto-enumeration; /disco summary prints cached domain/component capability matrix; summary auto-printed to account log ~6s after connect</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0045.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.35.5</xmpp:version>
<xmpp:note xml:lang='en'>Multi-User Chat (MUC) - join/leave, send/receive, IRC-style admin (/kick, /ban, /voice, /devoice, /op, /deop), owner config (/setmodes, /affiliation list|set, /destroy), registration (/mucregister), direct and mediated invites (/invite, /decline); history maxstanzas='0' on join (MAM catch-up); no interactive full roomconfig UI</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0048.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.2</xmpp:version>
<xmpp:note xml:lang='en'>Bookmark Storage</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0049.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.2</xmpp:version>
<xmpp:note xml:lang='en'>Private XML Storage (for bookmarks)</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0054.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.3.0</xmpp:version>
<xmpp:note
xml:lang='en'
>vcard-temp — fetch (all standard fields) and publish own vCard via /whois and /setvcard; auto-fetch triggered by XEP-0153 presence hash</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0292.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.12.0</xmpp:version>
<xmpp:note
xml:lang='en'
>vCard4 Over XMPP — fetch via /whois (PubSub IQ get + display); no publish support yet</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0084.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1.4</xmpp:version>
<xmpp:note
xml:lang='en'
>User Avatar - receive/cache/display avatars; publish own avatar via /setavatar with XEP-0153 presence hash broadcast</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0066.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.5.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Out of Band Data - display URLs shared in messages with optional descriptions</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0085.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>2.1</xmpp:version>
<xmpp:note
xml:lang='en'
>Chat State Notifications - all 5 states (active, composing, paused, inactive, gone) with visual indicators</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0092.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1</xmpp:version>
<xmpp:note
xml:lang='en'
>Software Version - responds to version queries with client name and version</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0107.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.2.2</xmpp:version>
<xmpp:note
xml:lang='en'
>User Mood - publish and subscribe to mood updates via PEP</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0108.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.3</xmpp:version>
<xmpp:note
xml:lang='en'
>User Activity - publish and subscribe to activity updates via PEP</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0115.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.6.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Entity Capabilities with persistent caching</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0163.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.2.2</xmpp:version>
<xmpp:note
xml:lang='en'
>Personal Eventing Protocol (PEP) - receives and logs events</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0172.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1</xmpp:version>
<xmpp:note
xml:lang='en'
>User Nickname - publishes own nickname via PEP on connect; subscribes to nickname updates from contacts via PEP</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0184.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.4.0</xmpp:version>
<xmpp:note xml:lang='en'>Message Delivery Receipts</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0199.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>2.0.1</xmpp:version>
<xmpp:note xml:lang='en'>XMPP Ping</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0202.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>2.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Entity Time - responds to time queries with UTC time and timezone offset</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0203.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>2.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Delayed Delivery - proper timestamps for offline messages and MAM history</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0223.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1</xmpp:version>
<xmpp:note
xml:lang='en'
>Persistent Storage of Private Data via PubSub - used for bookmarks, mood, and activity with publish-options</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0280.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.1</xmpp:version>
<xmpp:note xml:lang='en'>Message Carbons</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0308.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.2.1</xmpp:version>
<xmpp:note xml:lang='en'>Last Message Correction</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0313.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1.3</xmpp:version>
<xmpp:note
xml:lang='en'
>Message Archive Management (MAM) v2 with persistent local caching; IQ routing fixed to address own bare JID for personal archive queries</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0319.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.2</xmpp:version>
<xmpp:note xml:lang='en'>Last User Interaction in Presence</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0333.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.0</xmpp:version>
<xmpp:note xml:lang='en'>Displayed Markers - sends <displayed/> per v1.0 wire format; <received/> and <acknowledged/> removed per spec; MUC markers use XEP-0359 stanza-id when available</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0363.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1.0</xmpp:version>
<xmpp:note
xml:lang='en'
>HTTP File Upload (XEP-0363) - /upload with snapshot for consistent bytes, ESFS layering (+16 slot for OMEMO channels per XEP-0448), rich SFS emission; also drives async multi-file for /feed embeds</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0384.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.9.0</xmpp:version>
<xmpp:note
xml:lang='en'
>OMEMO Encryption using the legacy axolotl namespace (`eu.siacs.conversations.axolotl`) only. OMEMO:2 (`urn:xmpp:omemo:2`) is not published or supported. BTBV (Blind Trust Before Verification) TOFU trust model (UNTRUSTED=0/VERIFIED=1/UNDECIDED=2/BLIND=3 in LMDB `trust:{jid}:{dev}`); only VERIFIED+BLIND receive keys at encode time. PM OMEMO is production-ready; non-anonymous MUC multi-recipient encryption (encode_muc, real-JID occupant mapping, passive bundle prefetch without key-transport spam) is experimental — see docs/planning-muc-omemo.md. Includes auto-detection, per-device bundle/bootstrap, key-transport, MAM plaintext cache for self-decrypt. XEP-0450 ATM removed.</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0402.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.2.0</xmpp:version>
<xmpp:note
xml:lang='en'
>PEP Native Bookmarks - modern PEP-based bookmark storage</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0191.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.3.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Blocking Command for privacy and spam protection</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0198.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.6.3</xmpp:version>
<xmpp:note
xml:lang='en'
>Stream Management: stanza ack/retransmit, session resume with post-connect deferral, resume-failure enable fallback, server preferred reconnect location, handled-count-too-high stream close, graceful disconnect ack</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0245.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.0</xmpp:version>
<xmpp:note
xml:lang='en'
>The /me Command for IRC-style action messages</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0249.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.2.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Direct MUC Invitations - invite users to join chat rooms</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0352.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Client State Indication for mobile optimization</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0359.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.7.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Unique and Stable Stanza IDs - stable message identification and deduplication</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0380.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.4.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Explicit Message Encryption - advertises encryption method (OMEMO/PGP) on messages</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0385.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.1</xmpp:version>
<xmpp:note
xml:lang='en'
>Stateless Inline Media Sharing (SIMS) - sends file metadata + sources on upload; parses received SIMS references to display filename, MIME type, size, and download URL; <reference type='data' uri='…'/> extraction (urn:xmpp:reference:0) fixed for proper URL resolution alongside url-data sources</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0446.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note
xml:lang='en'
>File Metadata Element - used inside XEP-0447 file-sharing stanzas with media-type, name, size, hash, width, and height</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0447.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.3.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Stateless File Sharing (SFS, XEP-0447) - full stanza builder implementation (src/xmpp/xep-0447.inl) for spec-compliant emission of <file-sharing> + XEP-0446 <file> (media-type/name/size/hash/width/height) + sources on /upload (plain + ESFS); legacy SIMS/OOB for compat; parses incoming too. Used for previews in Conversations etc.</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0449.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Stickers (receive) — detects <sticker xmlns='urn:xmpp:stickers:0'/> with SFS image payloads; displays inline via weechat-icat when xmpp.look.icat is enabled; Movim stickers without <sticker/> are handled via XEP-0231 BoB (see below); sticker pack pubsub not implemented</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0231.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.1</xmpp:version>
<xmpp:note
xml:lang='en'
>Bits of Binary — receive: XHTML-IM cid refs and inline <data xmlns='urn:xmpp:bob'/>, IQ-fetch, local cache, weechat-icat display (Movim sticker interop); send: small plaintext images (≤8 KiB) via /upload as BoB + XHTML-IM with sha1 cid hosting and IQ-get responses; advertises urn:xmpp:bob in caps/disco; OMEMO outbound BoB not yet implemented</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0514.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.1.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Emoji Markup (receive) — resolves <emoji xmlns='urn:xmpp:markup:emoji:0'/> spans in XEP-0394 markup against sibling SFS/SIMS hashes; displays custom emoji images inline via weechat-icat when xmpp.look.icat is enabled; body fallback text retained</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0392.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.1</xmpp:version>
<xmpp:note
xml:lang='en'
>Consistent Color Generation - SHA-1 based algorithm mapping nicknames to colors</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0393.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1.1</xmpp:version>
<xmpp:note
xml:lang='en'
>Message Styling - renders *bold*, _italic_, `code`, ~strikethrough~, quotes, and preformatted blocks</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0410.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.1.0</xmpp:version>
<xmpp:note
xml:lang='en'
>MUC Self-Ping (Schrödinger's Chat) - verify MUC membership; error conditions correctly classified per §3.2-3.3: service-unavailable/feature-not-implemented/item-not-found treated as still-joined, not-acceptable triggers rejoin</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0422.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Message Fastening - used by Message Moderation (XEP-0425)</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0425.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.3.0</xmpp:version>
<xmpp:note
xml:lang='en'
>Message Moderation - allows MUC moderators to retract messages from other users</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0421.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.1</xmpp:version>
<xmpp:note xml:lang='en'>Occupant Identifiers for semi-anonymous MUCs - receive and store occupant-id tag from MUC messages and presences; ignored when room does not advertise urn:xmpp:occupant-id:0 in disco#info (MUST-IGNORE per §4); occupant_id_ line tag used to verify sender identity in XEP-0424 retractions, taking priority over nick matching to handle nick changes</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0004.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>2.13.2</xmpp:version>
<xmpp:note xml:lang='en'>Data Forms - rendered in the buffer for Ad-Hoc Commands</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0050.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.3.0</xmpp:version>
<xmpp:note xml:lang='en'>Ad-Hoc Commands - /adhoc command executes server-side commands with data-form rendering</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0059.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.0</xmpp:version>
<xmpp:note xml:lang='en'>Result Set Management - used internally for MAM paging</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0060.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.30.0</xmpp:version>
<xmpp:note xml:lang='en'>Publish-Subscribe (PubSub) - passive feed reader receives and renders Atom items from arbitrary PubSub nodes into per-node WeeChat FEED buffers; /feed command fetches items on demand from any service/node pair; retract events trigger re-fetch; /feed subscribe, /feed unsubscribe, /feed subscriptions manage XEP-0060 subscriptions; LMDB deduplication prevents duplicate item display across IQ fetch and push paths; /feed discover lists server pubsub components discovered via XEP-0030 at connect time; /feed (no args) auto-fetches subscriptions from all discovered pubsub services</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0413.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.2</xmpp:version>
<xmpp:note xml:lang='en'>Order-By for MAM and Pubsub queries (Experimental) - urn:xmpp:order-by:1 field='creation-date' element included in XEP-0442 pubsub MAM queries to request newest-first ordering; bare and scoped features advertised in caps per §6</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0442.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note xml:lang='en'>Pubsub Message Archive Management (Experimental) - on reconnect, sends disco#info to each pubsub service; when urn:xmpp:mam:2 is advertised, fetches the node archive via MAM IQ with node= filter and XEP-0413 order-by instead of plain pubsub items IQ; falls back to XEP-0060 max_items fetch for servers that do not support pubsub MAM; forwarded item payloads (Atom entries) extracted from MAM result messages and rendered to the feed buffer with deduplication; RSM last cursor persisted to LMDB; urn:xmpp:mam:2#pubsub and urn:xmpp:order-by:1 advertised in caps</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0394.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.3.0</xmpp:version>
<xmpp:note xml:lang='en'>Message Markup (Experimental) - receive-only: parses <markup xmlns='urn:xmpp:markup:0'> and applies WeeChat colour codes for <span> (emphasis→italic, strong→bold, code→cyan, deleted→dark-grey), <bcode> (grey monospace block), <bquote> (green prefix per line), and <list>/<li> (bullet markers); when <markup> is present it takes precedence over XEP-0393 ad-hoc styling; urn:xmpp:markup:0 advertised in caps; send side not implemented</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0452.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.2.2</xmpp:version>
<xmpp:note xml:lang='en'>MUC Mention Notifications (Experimental) - receive side: detects incoming notification messages containing <mentions xmlns='urn:xmpp:mmn:0'> (v0.2.x wire format); §4 MUST source-JID validation: outer from= bare-JID verified to match forwarded message from= bare-JID before processing; renders forwarded groupchat body to MUC buffer with notify_highlight so missed mentions are surfaced even when not present in the room; opt-in publish not yet implemented</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0441.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note xml:lang='en'>MAM Preferences (Experimental) - /mam prefs shows current server MAM preferences (default policy, always/never JID lists); /mam prefs default <always|never|roster> sets the default policy; /mam prefs always <jid> and /mam prefs never <jid> add a JID to the respective list; IQ results displayed on the issuing buffer; errors reported with server error type</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0466.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.1.0</xmpp:version>
<xmpp:note xml:lang='en'>Ephemeral Messages (Experimental) - send: /ephemeral <seconds> <message> sends a message with <ephemeral xmlns='urn:xmpp:ephemeral:0' timer='N'/> and a <no-permanent-store/> hint; receive: <ephemeral> element detected, timer value shown as [⏱ Ns] prefix, weechat_hook_timer scheduled to tombstone the message text after N seconds; urn:xmpp:ephemeral:0 advertised in caps</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0492.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note xml:lang='en'>Chat Notification Settings (Experimental) - per-chat preference (always/on-mention/never) stored in XEP-0402 bookmark <extensions><notify xmlns='urn:xmpp:notification-settings:1'>; /notify [jid] [always|on-mention|never] gets or sets preference and re-publishes bookmark; fallback element without identity-category/identity-type used for cross-client interop</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0448.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.3.0</xmpp:version>
<xmpp:note xml:lang='en'>Encrypted File Sharing (XEP-0448) - when /upload to OMEMO channel: AES-256-GCM encrypt snapshot before PUT (slot +16), visible body=aesgcm://...#ivkey, stanza uses builder-generated <file-sharing><sources><encrypted cipher=...><key b64/><iv b64/><hash cipher/><sources><url-data https-for-cipher/></sources></encrypted></sources></file-sharing> (plain <file> metadata always); receive side parses <encrypted> for download/decrypt in background. Builder ensures exact nesting per spec examples. (Status upgraded with proper emission support.)</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0454.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.1.0</xmpp:version>
<xmpp:note xml:lang='en'>OMEMO Media sharing — receive path parses strict aesgcm:// body URLs (converse.js and similar) into ESFS download/decrypt + LMDB cache and icat preview for images; send path already emits aesgcm:// visible links for OMEMO uploads.</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0277.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.6.5</xmpp:version>
<xmpp:note xml:lang='en'>Microblogging over XMPP (Deferred) - /feed post publishes Atom entries to urn:xmpp:microblog:0 PEP node; /feed reply adds thr:in-reply-to threading with real Atom entry IRI in @ref (RFC 4685); /feed repeat publishes boost entry with <link rel='via'> (XEP-0472 §4.5); /feed retract retracts items; /feed comments fetches the comments/replies node linked via <link rel='replies'>; incoming PEP microblog push events rendered with full Atom metadata: author URI, updated timestamp, categories, enclosures, geolocation (XEP-0080), replies links; XHTML and HTML content rendered with WeeChat formatting; plain-text content rendered with lightweight Markdown-to-WeeChat formatting; feed-level <feed> metadata items update buffer title; deduplication via LMDB; urn:xmpp:microblog:0+notify advertised in caps</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0472.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.2.1</xmpp:version>
<xmpp:note xml:lang='en'>Pubsub Social Feed (Experimental) - /feed post sets pubsub#type=urn:xmpp:microblog:0 and required publish-options (persist_items, max_items=max, notify_retract, deliver_payloads=false); --open flag sets pubsub#access_model=open; <generator> element included in published entries; urn:xmpp:pubsub-social-feed:1 advertised in disco#info; Atom entry parsing: author name+URI, title, summary, content (text/xhtml/html), published+updated timestamps, categories, enclosures, geolocation, <link rel='replies'> comments links; thr:in-reply-to@ref uses real Atom entry IRI when cached; feed-level <feed> metadata items recognised and displayed; XHTML rendered via XEP-0071 renderer; HTML tag-stripped to plain text; plain-text content rendered with lightweight Markdown-to-WeeChat formatting (headings, bold, italic, inline code, fenced code blocks, blockquotes, lists, links, images, strikethrough, horizontal rules); publish errors reported in buffer</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0071.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.5.4</xmpp:version>
<xmpp:note xml:lang='en'>XHTML-IM - receives and renders rich text: bold, italic, underline, code, blockquotes, links, CSS color spans</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0153.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.1.1</xmpp:version>
<xmpp:note xml:lang='en'>vCard-Based Avatars - receives photo hash from presence and advertises in caps; publishing own avatar not implemented</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0224.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0</xmpp:version>
<xmpp:note xml:lang='en'>Attention - receives attention requests and opens a PM buffer; advertised in caps</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0283.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note xml:lang='en'>Moved - displays account migration notices when a contact has moved to a new JID</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0297.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.0</xmpp:version>
<xmpp:note xml:lang='en'>Forwarded Messages - used as wrapper for Message Carbons and MAM results</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0300.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>1.0.0</xmpp:version>
<xmpp:note xml:lang='en'>Cryptographic Hash Functions - SHA-256 used in SIMS (XEP-0385) file metadata</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0334.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.0</xmpp:version>
<xmpp:note xml:lang='en'>Message Processing Hints - store/no-store/no-copy applied to transient stanzas (typing, reactions, link previews)</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0372.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.5.0</xmpp:version>
<xmpp:note xml:lang='en'>References - sends and renders @mention and URI references inline in messages</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0382.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.0</xmpp:version>
<xmpp:note xml:lang='en'>Spoiler Messages - displays spoiler warning prefix when a message contains a spoiler hint</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0424.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.4.2</xmpp:version>
<xmpp:note xml:lang='en'>Message Retraction - /retract command with tombstone display and MAM cache update</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0428.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.1</xmpp:version>
<xmpp:note xml:lang='en'>Fallback Indication - sent alongside retraction and reply stanzas; [start,end) byte range parsed on receive per §2.2</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0444.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.1</xmpp:version>
<xmpp:note xml:lang='en'>Message Reactions - /react command; reactions appended to original message line; empty <reactions> removes reaction display per §3.2</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0461.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.2.1</xmpp:version>
<xmpp:note xml:lang='en'>Message Replies - /reply command with quoted excerpt displayed on receive</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0490.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>1.0.1</xmpp:version>
<xmpp:note xml:lang='en'>Message Displayed Synchronization - publishes MDS PEP item when messages are read (on send, type, and buffer switch); consumes MDS events from other own devices to sync read state</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0511.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>0.1.1</xmpp:version>
<xmpp:note xml:lang='en'>Link Metadata - fetches and sends OpenGraph previews for outgoing URLs; renders incoming rdf:Description previews with title, description, URL, and image indicator</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0433.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.1.0</xmpp:version>
<xmpp:note xml:lang='en'>Extended Channel Search (Searcher role) - /list command queries any XEP-0433-capable search service (default: search.jabber.network) and displays results with name, address, user count and description; advertises urn:xmpp:channel-search:0:search in disco#info</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0437.html' />
<xmpp:status>partial</xmpp:status>
<xmpp:version>0.1.0</xmpp:version>
<xmpp:note xml:lang='en'>Room Activity Indicators — client subscribes by sending presence with <rai xmlns='urn:xmpp:rai:0'/> to own bare JID on connect; displays incoming <activity> notifications in the account buffer; advertises urn:xmpp:rai:0 in disco#info</xmpp:note>
</xmpp:SupportedXep>
</implements>
<implements>
<xmpp:SupportedXep>
<xmpp:xep rdf:resource='https://xmpp.org/extensions/xep-0077.html' />
<xmpp:status>complete</xmpp:status>
<xmpp:version>2.4</xmpp:version>
<xmpp:note xml:lang='en'>In-Band Registration — §3.1 /account register <name> <jid> <password>: new account registration before authentication; supports username/password flat fields, already-registered detection, OOB-redirect, and x:data form detection with helpful abort message. §3.2 /account unregister <account>: cancels the account on the server while authenticated. §3.3 /account password <account> <new-password>: in-band password change while authenticated (TLS required). §10: advertises jabber:iq:register in disco#info.</xmpp:note>
</xmpp:SupportedXep>
</implements>
<release>
<Version>
<revision>0.11.0</revision>
<created>2026-07-06</created>
<xmpp:note
xml:lang='en'
>/disco summary server capability matrix (manual + auto-print to account log after connect); connect probes gated on server disco#info (SM, CSI, MAM, bookmarks, MDS only when advertised); MUC OMEMO experimental status documented. Post-tag fixes on master: FreeBSD build (libdiff jobserver, strophe includes), /disco summary output on BSD, OMEMO libsignal session log sanitization for MUC decrypt.</xmpp:note>
</Version>
</release>
<release>
<Version>
<revision>0.9.0</revision>
<created>2026-06-10</created>
<xmpp:note
xml:lang='en'
>XEP-0449 sticker and XEP-0514 custom emoji inline display via weechat-icat; XEP-0231 BoB receive (inline data and XHTML-IM cid IQ-fetch) for Movim stickers; outgoing emoticon-to-emoji conversion on the wire (xmpp.look.emoticons). BoB send/hosting added post-release on master.</xmpp:note>
</Version>
</release>
<release>
<Version>
<revision>0.7.0</revision>
<created>2026-06-03</created>
<xmpp:note
xml:lang='en'
>Fix upload-disconnect bug (unsafe OpenSSL BIO base64 replaced with weechat_string_base_encode, gmtime_r for thread safety, dangling shared_ptr fix); BTBV trust commands (/omemo trust, /omemo distrust with optional device-id, trust levels in /omemo devices); remove stale ATM/XEP-0450 code; XEP-0437 Room Activity Indicators (subscribe on connect, display activity notifications)</xmpp:note>
</Version>
</release>
<release>
<Version>
<revision>0.6.0</revision>
<created>2026-03-31</created>
<xmpp:note
xml:lang='en'
>Embed tags for /feed post: {{ embed }}, {{ attach }}, {{ video }} upload files via XEP-0363 and publish XEP-0447 <file-sharing> children in Atom entries; async multi-file upload pipeline with draft-save on failure; SFS summary rendering in feed and message buffers; comment Atom structure fix (body in <title>, no <content>, per XEP-0277 §3.2); feed_compose.py context-aware editor suppresses title frontmatter when run from a comments buffer</xmpp:note>
</Version>
</release>
<release>
<Version>
<revision>0.5.0</revision>
<created>2026-03-24</created>
<xmpp:note
xml:lang='en'
>Bug fixes: XEP-0511 outgoing link preview double-send and missing <body/> element; <title> fallback for pages without OpenGraph metadata; MAM PM queries now correctly addressed to own bare JID instead of bare server domain; first-build no longer requires a pre-existing .depend file</xmpp:note>
</Version>
</release>
<release>
<Version>
<revision>0.4.0</revision>
<created>2026-03-09</created>
<xmpp:note
xml:lang='en'
>Outgoing link previews (XEP-0511 send), Ad-Hoc Commands (XEP-0050), Data Forms (XEP-0004), XHTML-IM (XEP-0071), References (XEP-0372), Message Displayed Synchronization (XEP-0490), Message Fastening (XEP-0422), Fallback Indication (XEP-0428), Spoiler Messages (XEP-0382), Attention (XEP-0224), Moved (XEP-0283), Consistent Color Generation (XEP-0392), Extended Channel Search (XEP-0433), MUC /kick /ban /topic /nick commands (XEP-0045), XEP-0198 stanza retransmit queue, non-blocking HTTP upload (XEP-0363), own nickname publishing (XEP-0172), MDS read flush on buffer switch (XEP-0490), In-Band Registration (XEP-0077), and further bug fixes</xmpp:note>
</Version>
</release>
</Project>
</rdf:RDF>