concord 2.5.21

A terminal user interface client for Discord
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
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
# Changelog

All notable changes to this project will be documented in this file.

## [2.5.21] - 2026-09-15

### Bug Fixes

- _(voice)_ Tolerate capture latency to prevent microphone dropouts (#369) in [#369]https://github.com/chojs23/concord/pull/369 by @chojs23
- _(tui)_ Preserve reply composer drafts (#345) in [#345]https://github.com/chojs23/concord/pull/345 by @flooryyyy

### Features

- _(tui)_ Search servers in the channel switcher with a `*` prefix (#368) in [#368]https://github.com/chojs23/concord/pull/368 by @sunglasseslol

### New Contributors

- @sunglasseslol made their first contribution in [#368]https://github.com/chojs23/concord/pull/368
- @flooryyyy made their first contribution in [#345]https://github.com/chojs23/concord/pull/345

## [2.5.20] - 2026-09-12

### Bug Fixes

- _(voice)_ Adapt microphone buffering to device behavior (#361) in [#361]https://github.com/chojs23/concord/pull/361 by @chojs23
- _(voice)_ Replace adaptive microphone recovery with fixed platform buffers (#363) in [#363]https://github.com/chojs23/concord/pull/363 by @chojs23
- _(voice)_ Fix microphone frame loss caused by queue replacement by @chojs23

## [2.5.19] - 2026-09-11

### Bug Fixes

- _(voice)_ Use the host-default buffer for all microphone input streams (#356) in [#356]https://github.com/chojs23/concord/pull/356 by @chojs23
- _(voice)_ Enable CPAL real-time audio thread priority (#357) in [#357]https://github.com/chojs23/concord/pull/357 by @chojs23
- _(tui)_ Fix filtered channel highlight restoration after background events (#358) in [#358]https://github.com/chojs23/concord/pull/358 by @chojs23

### Documentation

- Update debug mode instruction by @chojs23

### Miscellaneous Tasks

- _(deps)_ Update crates and unify TLS verification by @chojs23

## [2.5.18] - 2026-09-09

### Bug Fixes

- Show only current-process logs in the debug panel by @chojs23
- _(media)_ Preserve active images and retire stale work by @chojs23
- Gate packed capture helper to supported platforms by @chojs23
- _(tui)_ Prioritize fixed arrow selection in selectable contexts (#353) in [#353]https://github.com/chojs23/concord/pull/353 by @chojs23
- _(message)_ Fix channel actions to use the highlighted filtered entry (#354) in [#354]https://github.com/chojs23/concord/pull/354 by @chojs23

### Features

- _(presence)_ Automatic client switching (#349) in [#349]https://github.com/chojs23/concord/pull/349 by @oneshinyboi

### Refactor

- Reduce duplication and simplify shared logic by @chojs23

### New Contributors

- @oneshinyboi made their first contribution in [#349]https://github.com/chojs23/concord/pull/349

## [2.5.17] - 2026-09-07

### Bug Fixes

- _(media)_ Reuse loaded media during scroll redraws by @chojs23
- _(media)_ Stabilize preview retries and avatar redraws by @chojs23
- Raise image preview download limit to 16 MB by @chojs23

### Features

- Improve debug panel by @chojs23

## [2.5.16] - 2026-09-04

### Bug Fixes

- _(voice)_ Stop demanding a transition id in DAVE prepare epoch (#325) in [#325]https://github.com/chojs23/concord/pull/325 by @4EEZE
- Pin the patched thorvg-sys revision for ARM Linux builds (#346) in [#346]https://github.com/chojs23/concord/pull/346 by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Render timestamps in format <t:1235790:R> (#328) in [#328]https://github.com/chojs23/concord/pull/328 by @jahitosis1
- _(tui)_ Add distinct styling for timestamps by @chojs23

### Performance

- _(media)_ Bound the media caches by bytes, retry failed fetches, add animate_previews (#318) in [#318]https://github.com/chojs23/concord/pull/318 by @4EEZE

### New Contributors

- @jahitosis1 made their first contribution in [#328]https://github.com/chojs23/concord/pull/328

## [2.5.15] - 2026-09-01

### Bug Fixes

- _(notifications)_ Use OSC protocols for macOS terminal alerts (#343) in [#343]https://github.com/chojs23/concord/pull/343 by @chojs23
- Disable Opus SIMD only for ARM32 Linux targets (#344) in [#344]https://github.com/chojs23/concord/pull/344 by @chojs23

## [2.5.14] - 2026-08-30

### Bug Fixes

- _(tui)_ Expand tabs in fenced code blocks (#336) in [#336]https://github.com/chojs23/concord/pull/336 by @gandol
- _(tui)_ Preserve syntax semantics when expanding code tabs by @chojs23
- _(voice)_ Satisfy Rust 1.91 clippy (#334) in [#334]https://github.com/chojs23/concord/pull/334 by @Andiveli
- _(ci)_ Skip CI for unrelated repository changes by @chojs23
- _(messages)_ Fix Components V2 section thumbnail layout by @chojs23

### Features

- _(tui)_ Enlarge standalone custom emoji previews (#335) in [#335]https://github.com/chojs23/concord/pull/335 by @gandol
- _(messages)_ Support Components V2 and improve embed rendering (#340) in [#340]https://github.com/chojs23/concord/pull/340 by @chojs23
- _(tui)_ Show voice channel capacity in channel pane by @chojs23

### New Contributors

- @Andiveli made their first contribution in [#334]https://github.com/chojs23/concord/pull/334

## [2.5.13] - 2026-08-24

### Bug Fixes

- Message member hydration by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Apply negotiated keyframe intervals to Go Live encoders by @chojs23

## [2.5.12] - 2026-08-21

### Bug Fixes

- Remove repeated allocations from emoji reaction filtering by @chojs23
- Fix Rust 1.98 Clippy failures by @chojs23
- _(tui)_ Synchronize animated media redraws by @chojs23
- _(tui)_ Fix profile update picker row by @chojs23

### Features

- Enlarge all emoji in emoji-only messages by @chojs23
- _(reactions)_ Customizing top 10 emojis in config.toml (#326) in [#326]https://github.com/chojs23/concord/pull/326 by @Wulgaren
- Improve profile popup ui by @chojs23
- _(theme)_ Add configurable unified selection markers to theme settings (#330) in [#330]https://github.com/chojs23/concord/pull/330 by @chojs23
- _(tui)_ Preview guild stickers as inline media (#329) in [#329]https://github.com/chojs23/concord/pull/329 by @gandol
- _(tui)_ Render Discord Lottie stickers inline by @chojs23

### Miscellaneous Tasks

- Remove cache warm by @chojs23

### New Contributors

- @gandol made their first contribution in [#329]https://github.com/chojs23/concord/pull/329
- @Wulgaren made their first contribution in [#326]https://github.com/chojs23/concord/pull/326

## [2.5.11] - 2026-08-17

### Bug Fixes

- _(linux)_ Restore portable DMA-BUF ioctl handling by @chojs23

### Features

- X11 broadcasting (#324) by @chojs23

### Miscellaneous Tasks

- Add an all-features musl compile check by @chojs23
- Fix the musl CI target volume mount by @chojs23

### Performance

- _(capture)_ Import linear DMA-BUF through EGL instead of reading it on the CPU (#317) in [#317]https://github.com/chojs23/concord/pull/317 by @4EEZE

### New Contributors

- @4EEZE made their first contribution in [#317]https://github.com/chojs23/concord/pull/317

## [2.5.10] - 2026-08-15

### Bug Fixes

- Fix DMA-BUF ioctl compilation on musl Linux (#313) in [#313]https://github.com/chojs23/concord/pull/313 by @chojs23
- Fix joined thread member and inactivity by @chojs23
- Match embedded thread cards to post UI by @chojs23
- Align read-state and presence activity handling by @chojs23
- Fix Voice, Gateway, RPC, presence, and message pin protocol handling by @chojs23
- Improve thread card layout by @chojs23
- Preserve mute duration metadata by @chojs23

### Features

- Improve forum post cards with spacing, image thumbnails by @chojs23

### Performance

- Load forum previews by viewport by @chojs23

### Refactor

- Unify forum and thread card UI by @chojs23

### Tests

- Remove negative behavior coverage by @chojs23

## [2.5.9] - 2026-08-13

### Bug Fixes

- _(media)_ Request animated Discord emoji as WebP by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- _(media)_ Animate GIF and WebP images by @chojs23
- _(media)_ Preserve Discord types and render Giphy GIFV inline by @chojs23

## [2.5.8] - 2026-08-12

### Bug Fixes

- Prevent false media playback errors (#308) in [#308]https://github.com/chojs23/concord/pull/308 by @mvanhorn
- Match Discord webhook message grouping (#310) in [#310]https://github.com/chojs23/concord/pull/310 by @chojs23

### Features

- _(tui)_ Add full screen refresh shortcut by @chojs23

### New Contributors

- @mvanhorn made their first contribution in [#308]https://github.com/chojs23/concord/pull/308

## [2.5.7] - 2026-08-12

### Bug Fixes

- Fix targeted guild member hydration by @chojs23
- Separate member pane search from member autocomplete by @chojs23
- Fix member hydration, search, refresh by @chojs23
- _(discord)_ Distinguish identifier no-update from fetch failures by @chojs23
- Preserve Discord list order across refreshes by @chojs23
- _(discord)_ Align gateway recovery and client state by @chojs23
- Fix forwarded timestamps to honor the configured hour format by @chojs23
- Composer input (#307) in [#307]https://github.com/chojs23/concord/pull/307 by @chojs23
- Fix empty panel titles breaking top borders by @chojs23

### Features

- Align Gateway compression, client state, and REST headers by @chojs23
- Add config option for 12-hour time format (#306) in [#306]https://github.com/chojs23/concord/pull/306 by @NotNoss
- Enhance thread create ui by @chojs23

### Miscellaneous Tasks

- Remove mark read hint by @chojs23

### New Contributors

- @NotNoss made their first contribution in [#306]https://github.com/chojs23/concord/pull/306

## [2.5.6] - 2026-08-07

### Bug Fixes

- Fix referenced message navigation and redraw by @chojs23
- Harden background redraw detection and unify redraw tests by @chojs23
- Capture and classify native stderr by @chojs23
- Forum previews, author colors, and card separation by @chojs23
- Fix member identity hydration and cache preservation by @chojs23
- Avoid repeated bullets on wrapped list items (#295) in [#295]https://github.com/chojs23/concord/pull/295 by @kimbank
- Remove obsolete user identity paths by @chojs23
- Clippy by @chojs23

### New Contributors

- @kimbank made their first contribution in [#295]https://github.com/chojs23/concord/pull/295

## [2.5.5] - 2026-08-06

### Bug Fixes

- Fix libva 2.24.1 compatible crates (#302) in [#302]https://github.com/chojs23/concord/pull/302 by @chojs23

## [2.5.4] - 2026-08-06

### Bug Fixes

- _(stream)_ Handle capture failures and linear DMA-BUF negotiation (#299) in [#299]https://github.com/chojs23/concord/pull/299 by @chojs23
- Enable windows OLE APIs for Media Foundation encoding by @chojs23
- Preserve active DAVE media during MLS epoch preparation by @chojs23
- _(stream)_ Smooth H.264 broadcast pacing by @chojs23
- _(build)_ Replace audiopus_sys with opusic-c by @chojs23
- _(linux)_ Use generic VA-API surfaces for H264 encoding by @chojs23
- _(boradcast)_ Filter macOS capture targets and show loading feedback by @chojs23

### Features

- _(broadcast)_ Add hardware encoder by @chojs23
- _(broadcast)_ Add one-way runtime fallback from hardware H264 encoders to OpenH264 by @chojs23
- _(linux)_ Add 10-bit, multi-plane, and modifier-aware screen capture by @chojs23
- _(stream)_ Improve cross-platform hardware encoding by @chojs23

## [2.5.3] - 2026-08-04

### Bug Fixes

- _(stream)_ Start video-only broadcasts immediately by @chojs23
- _(stream)_ Scale stream playback for high-resolution and high-frame-rate video by @chojs23
- _(stream)_ Add UDP safeguards and recovery diagnostics by @chojs23
- _(stream)_ Preserve manual mpv window resizing and disable pause by @chojs23
- _(stream)_ Stabilize RTP recovery and live playback timing by @chojs23
- _(broadcast)_ Fix Linux screen-share startup readiness and add lifecycle diagnostics by @chojs23

### Miscellaneous Tasks

- _(docs)_ Add debug mode instruction by @chojs23

## [2.5.2] - 2026-08-03

### Bug Fixes

- _(tui)_ Align inbox, thread, and shortcut behavior by @chojs23
- _(release)_ Scope Homebrew audio dependencies to Linux (#297) in [#297]https://github.com/chojs23/concord/pull/297 by @chojs23

### Refactor

- _(tui)_ Unify popup input and shortcut routing by @chojs23

## [2.5.1] - 2026-08-02

### Bug Fixes

- _(stream)_ Fix Windows broadcasts stopping when captured content outgrows the D3D11 frame pool by @chojs23
- Unify stream toggle command naming by @chojs23
- _(test)_ Fix no-default-features build by @chojs23
- _(stream)_ Fix stream freezes caused by backward audio RTP timestamps (#289) in [#289]https://github.com/chojs23/concord/pull/289 by @chojs23
- _(nix)_ Patch PipeWire bindgen fallbacks for immutable vendor sources (#292) in [#292]https://github.com/chojs23/concord/pull/292 by @chojs23
- Filter muted channel in inbox (#293) in [#293]https://github.com/chojs23/concord/pull/293 by @chojs23

### Documentation

- Update readme by @chojs23
- Add gentoo installation instructions to README (#286) in [#286]https://github.com/chojs23/concord/pull/286 by @darwincereska
- Update README by @chojs23

### Features

- _(voice)_ Add selectable input and output audio sources (#287) in [#287]https://github.com/chojs23/concord/pull/287 by @chojs23

### Miscellaneous Tasks

- Update descriptions and docs by @chojs23

### New Contributors

- @darwincereska made their first contribution in [#286]https://github.com/chojs23/concord/pull/286

## [2.5.0] - 2026-08-01

### Bug Fixes

- _(stream)_ Require exact Linux audio monitor by @chojs23
- _(ci)_ Install Linux capture dependencies by @chojs23
- _(stream)_ Cancel watch session child tasks by @chojs23
- _(voice)_ Await runtime cleanup before gateway stop by @chojs23
- _(stream)_ Rotate active RTC servers by @chojs23
- _(stream)_ Bound broadcast reconnect attempts by @chojs23
- _(stream)_ Centralize lifecycle completion events by @chojs23
- _(stream)_ Redact RTC tokens from debug output by @chojs23
- _(stream)_ Allow restarting fullscreen broadcasts on Windows by @chojs23
- Add cross-platform application audio capture for stream broadcasts by @chojs23
- _(stream)_ Keep stalled capture joins outside Tokio by @chojs23
- _(stream)_ Back off stream watch reconnects by @chojs23
- _(broadcast)_ Remove screencapturekit by @chojs23
- _(broadcast)_ Replace xcap with native cross-platform screen capture backends by @chojs23
- _(stream)_ Prepare portal capture before creating Discord stream by @chojs23
- _(broadcast)_ Fix Linux broadcast restart and system audio latency by @chojs23
- _(broadcast)_ Fix Linux broadcast self-audio exclusion by @chojs23
- _(broadcast)_ Cancel stale capture preparation by @chojs23
- _(build)_ Require macOS 13 by @chojs23
- _(stream)_ Bound H264 assembly memory by @chojs23
- _(stream)_ Slow preview upload cadence by @chojs23
- _(broadcast)_ Derive audio clock from samples by @chojs23
- Fix stream startup and capture lifecycle issues by @chojs23
- _(voice)_ Reduce Linux PulseAudio voice playback latency by @chojs23
- Harden stream capture preparation lifecycle by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Watch and broadcast streaming by @chojs23
- Add live stream presence sounds and participant panel by @chojs23
- _(stream)_ Make stream feature optional by @chojs23
- _(broadcast)_ Broacasting ui by @chojs23
- Add broadcast preview by @chojs23

### Miscellaneous Tasks

- _(ci)_ Update Linux CI and release runners to Ubuntu 24.04 by @chojs23

### Refactor

- _(stream)_ Simplify live presence state by @chojs23
- _(stream)_ Share voice gateway control handling by @chojs23
- Refactor stream forwarding and reuse capture frame buffers by @chojs23

## [2.4.8] - 2026-07-28

### Bug Fixes

- _(voice)_ Stabilize speaking state and connection lifecycle by @chojs23

## [2.4.7] - 2026-07-27

### Bug Fixes

- _(voice)_ Fix voice input delay (#278) in [#278]https://github.com/chojs23/concord/pull/278 by @chojs23
- _(voice)_ Preserve normal key input while using bare keys for push-to-talk by @chojs23

### Documentation

- Update LICESE by @chojs23

### Features

- Add independent 100ms pacing for message sends by @chojs23
- _(voice)_ Add optional RNNoise microphone noise suppression by @chojs23
- _(voice)_ Add push-to-talk option by @chojs23
- _(voice)_ Replace voice input mode with a push-to-talk boolean by @chojs23

### Miscellaneous Tasks

- Use Arc instead of deep clone for client by @chojs23
- _(test)_ Remove redundant tests and consolidate same-policy cases by @chojs23

## [2.4.6] - 2026-07-25

### Bug Fixes

- Show new threads in sidebar without restart (#274) in [#274]https://github.com/chojs23/concord/pull/274 by @michaelnew
- Correct Discord event snapshot area mappings by @chojs23
- Align Discord API and Gateway behavior by @chojs23
- Replace flat message cache with segmented live-aware timelines by @chojs23

### Features

- Loading indicator by @chojs23
- Add attachment URL access in viewer (#276) in [#276]https://github.com/chojs23/concord/pull/276 by @chojs23

### New Contributors

- @michaelnew made their first contribution in [#274]https://github.com/chojs23/concord/pull/274

## [2.4.5] - 2026-07-23

### Features

- Add voice participant actions (#273) in [#273]https://github.com/chojs23/concord/pull/273 by @chojs23

## [2.4.4] - 2026-07-21

### Bug Fixes

- _(inbox)_ Show unread mention count in the Mentions tab by @chojs23

### Features

- _(inbox)_ Paginate unread previews and animate loading states by @chojs23

## [2.4.3] - 2026-07-20

### Bug Fixes

- Rebuild the notification inbox (#269) in [#269]https://github.com/chojs23/concord/pull/269 by @chojs23

### Features

- _(messages)_ Show pending messages (#270) in [#270]https://github.com/chojs23/concord/pull/270 by @chojs23

## [2.4.2] - 2026-07-17

### Bug Fixes

- _(voice)_ Bypass guild connect checks for DM calls by @chojs23
- _(discord)_ Harden network requests and session recovery (#265) in [#265]https://github.com/chojs23/concord/pull/265 by @chojs23

### Features

- _(voice)_ Increase microphone transmit boost gain to 1.5 (#262) in [#262]https://github.com/chojs23/concord/pull/262 by @chojs23

## [2.4.1] - 2026-07-15

### Features

- Handle channel permission (#259) in [#259]https://github.com/chojs23/concord/pull/259 by @chojs23
- Adjust dm min message count and add warning message on password signin by @chojs23

## [2.4.0] - 2026-07-14

### Bug Fixes

- Fix invalid token warning when fresh login by @chojs23

### Features

- Configurable themes (#248) in [#248]https://github.com/chojs23/concord/pull/248 by @neurosysgg

### New Contributors

- @neurosysgg made their first contribution in [#248]https://github.com/chojs23/concord/pull/248

## [2.3.5] - 2026-07-12

### Bug Fixes

- Apply burst playout tick recovery by @chojs23

### Features

- Support all CPAL linear PCM audio output formats by @chojs23
- _(voice)_ Size dynamically voice prebuffer from the current audio callback by @chojs23

## [2.3.4] - 2026-07-12

### Bug Fixes

- Add voice UDP keepalive for listen-only sessions by @chojs23
- Share fingerprint across REST, and Gateway (#252) in [#252]https://github.com/chojs23/concord/pull/252 by @chojs23
- Unify member selection markers and update the group DM icon by @chojs23
- Use the default output device format on every OS by @chojs23

### Documentation

- Update README by @chojs23

## [2.3.3] - 2026-07-11

### Bug Fixes

- Upgrade CPAL to 0.18.1 for audio stream recovery (#249) in [#249]https://github.com/chojs23/concord/pull/249 by @chojs23
- Add a 60ms prebuffer and fixed 2400-frame PulseAudio output buffer by @chojs23

### Features

- Support mouse row clicks and scroll in action menus by @chojs23

## [2.3.2] - 2026-07-08

### Bug Fixes

- Fix gateway backoff reset, atomic private-file writes, and remove duplicate by @chojs23

### Features

- Promote guild/channel/member action menus to standalone modal popups by @chojs23

### Miscellaneous Tasks

- Remove redundant sccache from CI and release workflows by @chojs23

### Refactor

- Extract render_modal_frame helper to deduplicate popup modal boilerplate by @chojs23
- Remove legacy keymap actions by @chojs23
- Extract OnDemandRequests and CursorRequests primitives to dedupe request trackers by @chojs23
- Split message format.rs into wrap, markdown, polls, and system submodules by @chojs23
- Unify discord module layout, dedupe extra_fields by @chojs23

## [2.3.1] - 2026-07-07

### Features

- Add delete line composer key (#246) in [#246]https://github.com/chojs23/concord/pull/246 by @chojs23
- Support CONCORD_TOKEN env var in Auto credential mode (#243) in [#243]https://github.com/chojs23/concord/pull/243 by @yilisharcs
- Collapse avatar gutter and move selected-message time to border (#247) in [#247]https://github.com/chojs23/concord/pull/247 by @chojs23

### Refactor

- Generalize composer input actions by @chojs23

### New Contributors

- @yilisharcs made their first contribution in [#243]https://github.com/chojs23/concord/pull/243

## [2.3.0] - 2026-07-06

### Bug Fixes

- Fix bot badge rendering (#241) in [#241]https://github.com/chojs23/concord/pull/241 by @LmanTW
- Rewrite Discord build-number fetch to scrape the sentry JS asset by @chojs23
- Fix truncated compsoer placeholder by @chojs23

### Features

- _(discord)_ Fetch live client build number at startup by @chojs23
- _(discord)_ Attach a snowflake nonce to outgoing messages by @chojs23
- _(discord)_ Broadcast typing indicator while composing a message by @chojs23
- _(discord)_ Lock DM composer until the conversation is established (#245) in [#245]https://github.com/chojs23/concord/pull/245 by @chojs23

## [2.2.13] - 2026-07-04

### Features

- Add support for playing audio attachments (#240) in [#240]https://github.com/chojs23/concord/pull/240 by @LmanTW

### Refactor

- _(tui)_ Standardize popup action buttons by @chojs23

### Nix

- Move package derivation to nix/package.nix by @chojs23

## [2.2.12] - 2026-07-02

### Features

- _(presence)_ Relay Rich Presence from local apps (#239) in [#239]https://github.com/chojs23/concord/pull/239 by @chojs23

### Refactor

- _(tui)_ Unify custom-emoji image overlays into single module by @chojs23

## [2.2.11] - 2026-07-01

### Bug Fixes

- Respect user nitro and guild boost restrictions (#234) in [#234]https://github.com/chojs23/concord/pull/234 by @chojs23
- Fix missing default profile avatar in profile popup by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Add reply pings toggle option (#232) in [#232]https://github.com/chojs23/concord/pull/232 by @chojs23
- Allow file drop without needing to already be composing (#212) (#227) in [#227]https://github.com/chojs23/concord/pull/227 by @LmanTW
- Support bare array keymap bindings (#233) in [#233]https://github.com/chojs23/concord/pull/233 by @chojs23

### Refactor

- _(tests)_ Construct AppEvent variants via shared fixtures by @chojs23

## [2.2.10] - 2026-06-30

### Bug Fixes

- Fix qwerty shortkey shadows numeric keys by @chojs23
- Fix missing pinned post (#231) in [#231]https://github.com/chojs23/concord/pull/231 by @chojs23
- Show fresh servers missing from guild_folders at top of server pane by @chojs23

### Miscellaneous Tasks

- Consolidate config load by @chojs23

### Refactor

- _(tui)_ Unify popup scrolling on shared scrolloff viewport by @chojs23

## [2.2.9] - 2026-06-29

### Bug Fixes

- Support 10ms Discord voice packets (#229) in [#229]https://github.com/chojs23/concord/pull/229 by @chojs23

### Documentation

- Update changelog by @chojs23
- Update readme by @chojs23

### Features

- Add a separate image quality option for the attachment viewer (#224) in [#224]https://github.com/chojs23/concord/pull/224 by @LmanTW
- Add support for disabling keymap shortcuts by @chojs23
- Make external media playback opt-in (#230) in [#230]https://github.com/chojs23/concord/pull/230 by @chojs23
- Add underline and strikethrough support to message formatting (#228) in [#228]https://github.com/chojs23/concord/pull/228 by @LmanTW

### Miscellaneous Tasks

- Remove legacy tests by @chojs23

### New Contributors

- @LmanTW made their first contribution in [#228]https://github.com/chojs23/concord/pull/228

## [2.2.8] - 2026-06-26

### Bug Fixes

- Fix double redraw by @chojs23
- Make config parsing field-level tolerant so one bad value no longer discards other by @chojs23

### Documentation

- Update readme by @chojs23
- Update readme by @chojs23

### Features

- Block send message dm to fresh user (#222) in [#222]https://github.com/chojs23/concord/pull/222 by @chojs23
- Add private/group dm voice call (#223) in [#223]https://github.com/chojs23/concord/pull/223 by @chojs23

### Miscellaneous Tasks

- Fmt by @chojs23

## [2.2.7] - 2026-06-24

### Bug Fixes

- Render overlay popups within the full frame area by @chojs23

### Features

- Update post create ui by @chojs23
- Add post actions by @chojs23
- Add thread actions (#215) in [#215]https://github.com/chojs23/concord/pull/215 by @chojs23
- Add threads and forums to channel switcher (#216) in [#216]https://github.com/chojs23/concord/pull/216 by @chojs23
- Add notification inbox (#217) in [#217]https://github.com/chojs23/concord/pull/217 by @chojs23

### Miscellaneous Tasks

- Fmt by @chojs23

### Performance

- Implement per-image placement-diff rendering by @chojs23

## [2.2.6] - 2026-06-22

### Features

- Image protocol pref (#209) in [#209]https://github.com/chojs23/concord/pull/209 by @chojs23

## [2.2.5] - 2026-06-21

### Documentation

- Update readme by @chojs23

### Features

- Add guild folder settings by @chojs23
- Use custom notification sound instead of system generated sound by @chojs23
- Add create post by @chojs23
- Add composer attachment preview by @chojs23

## [2.2.4] - 2026-06-19

### Bug Fixes

- Hide empty channel categories if user doesn't have permission (#203) in [#203]https://github.com/chojs23/concord/pull/203 by @chojs23
- Update guild folders and order by UserSettingsUpdate by @chojs23

### Features

- Rename folder by @chojs23
- Add suppress embeds (#205) in [#205]https://github.com/chojs23/concord/pull/205 by @chojs23

### Refactor

- Preserve boundary payloads consistently by @chojs23

### New Contributors

- @fuguesoft made their first contribution in [#200]https://github.com/chojs23/concord/pull/200

## [2.2.3] - 2026-06-18

### Bug Fixes

- Limit image protocol refresh to modal popup open/close by @chojs23
- Fix thread-kind reuse by @chojs23
- Fix mention detecting by authoritative Discord gateway fields (#198) in [#198]https://github.com/chojs23/concord/pull/198 by @chojs23

### Features

- Add sign-out feature (#202) in [#202]https://github.com/chojs23/concord/pull/202 by @chojs23

### Miscellaneous Tasks

- Extract app helper modules by @chojs23

### Refactor

- Split media cache modules by resource by @chojs23
- Refactor media structure and add jobs by @chojs23
- Extract dashboard event reducer by @chojs23
- Redesign modules by @chojs23
- Reuse message payloads in app events by @chojs23
- Merge presence updates into optional guild event by @chojs23
- Refactor some states duplication by @chojs23

## [2.2.2] - 2026-06-14

### Documentation

- Update readme by @chojs23

### Features

- Stream attachment saves with progress UI by @chojs23
- Add mpv video play (#182) in [#182]https://github.com/chojs23/concord/pull/182 by @chojs23

## [2.2.1] - 2026-06-12

### Bug Fixes

- Picker scroll by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Notify for active-channel messages while the terminal is unfocused (#177) in [#177]https://github.com/chojs23/concord/pull/177 by @cultlead3r
- Add built-in discord commands (#179) in [#179]https://github.com/chojs23/concord/pull/179 by @chojs23
- Persist TUI side pane visibility (#180) in [#180]https://github.com/chojs23/concord/pull/180 by @chojs23

## [2.2.0] - 2026-06-10

### Documentation

- Update homebrew installation by @chojs23
- Update image by @chojs23

### Features

- Wrap message text at word boundaries (#174) in [#174]https://github.com/chojs23/concord/pull/174 by @chojs23
- Use system keychain and move ui state to XDG_STATE_HOME (#173) in [#173]https://github.com/chojs23/concord/pull/173 by @chojs23

## [2.1.13] - 2026-06-07

### Bug Fixes

- _(tui)_ Preserve member search selection across member cache refreshes by @chojs23
- _(tui)_ Prevent popup residue on terminal images by @chojs23
- Retain member cache for more recent guilds by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Add --check-config validation command by @chojs23
- _(tui)_ Keep voice indicators visible after name truncation by @chojs23

## [2.1.12] - 2026-06-07

### Bug Fixes

- _(deps)_ Lock ratatui-image by @chojs23

### Miscellaneous Tasks

- _(ci)_ Remove legacy Darwin SDK framework inputs from Nix flake by @chojs23

## [2.1.11] - 2026-06-07

### Features

- Add version flag by @chojs23

### Miscellaneous Tasks

- Add npm installer (#165) in [#165]https://github.com/chojs23/concord/pull/165 by @chojs23

## [2.1.10] - 2026-06-06

### Bug Fixes

- Show macOS notifications on terminals that don't set TERM_PROGRAM set (#160) in [#160]https://github.com/chojs23/concord/pull/160 by @cultlead3r
- Fix slash command invocation to preserve selected command identity (#162) in [#162]https://github.com/chojs23/concord/pull/162 by @chojs23
- Highlight TypeScript code fences as JavaScript by @chojs23

### Features

- Add syntax highlighting (#158) in [#158]https://github.com/chojs23/concord/pull/158 by @ToborWinner
- Use pure rust syntect backend by @chojs23
- Add profile configuration (#163) in [#163]https://github.com/chojs23/concord/pull/163 by @chojs23

### New Contributors

- @cultlead3r made their first contribution in [#160]https://github.com/chojs23/concord/pull/160

## [2.1.9] - 2026-06-03

### Bug Fixes

- Force image protocol refresh after popup overlay changes (#154) in [#154]https://github.com/chojs23/concord/pull/154 by @chojs23
- Prevent half-page message scroll from skipping content (#155) in [#155]https://github.com/chojs23/concord/pull/155 by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Load newer message when message cache has gap (#153) in [#153]https://github.com/chojs23/concord/pull/153 by @chojs23
- Reconnect (#156) in [#156]https://github.com/chojs23/concord/pull/156 by @chojs23

### Refactor

- Unify notification audio playback by @chojs23

## [2.1.8] - 2026-06-01

### Bug Fixes

- Remove macos notification fallback by @chojs23

### Features

- Add emojis as links (#144) in [#144]https://github.com/chojs23/concord/pull/144 by @van-nessing
- Add Nitro-aware custom emoji handling by @chojs23
- Added option for notification icon (#148) in [#148]https://github.com/chojs23/concord/pull/148 by @ToborWinner
- Add composer option and move emoji_as_link to composer option by @chojs23

### New Contributors

- @ToborWinner made their first contribution in [#148]https://github.com/chojs23/concord/pull/148
- @van-nessing made their first contribution in [#144]https://github.com/chojs23/concord/pull/144

## [2.1.7] - 2026-05-29

### Bug Fixes

- Fix fenced code block rendering for pasted multi-block messages by @chojs23
- Fix owner/admin delete permission being mistaken for unknown state by @chojs23

### Features

- Add Discord message/member search (#141) in [#141]https://github.com/chojs23/concord/pull/141 by @chojs23

## [2.1.6] - 2026-05-29

### Bug Fixes

- _(voice)_ Isolate audio path on a dedicated runtime and pace sends off the mic clock (#138) in [#138]https://github.com/chojs23/concord/pull/138 by @ibarrick
- _(voice)_ Make audio transmit shutdown and pacing robust by @chojs23

### Features

- Add configurable real voice join and leave notification sounds (#139) in [#139]https://github.com/chojs23/concord/pull/139 by @chojs23

## [2.1.5] - 2026-05-28

### Bug Fixes

- Schedule read ack when catching up to latest messages by @chojs23

### Documentation

- Clarify keymap action names warning in README by @chojs23
- Document scoped pane action shortcuts as single-key only by @chojs23

### Features

- Add zoom feature for images and adjust sizing logic for images in popout window (#133) in [#133]https://github.com/chojs23/concord/pull/133 by @ibarrick
- Allow leaving of server (#129) in [#129]https://github.com/chojs23/concord/pull/129 by @nexxai
- Add goto key group by @chojs23
- Message action keymap by @chojs23

### Refactor

- Use generic popup by @chojs23
- Group tui runtime plumbing by @chojs23

### New Contributors

- @ibarrick made their first contribution in [#133]https://github.com/chojs23/concord/pull/133

## [2.1.4] - 2026-05-26

### Bug Fixes

- Add dependencies for cargo publish by @chojs23

### Features

- Update keymaps by @chojs23
- Show keymap help with active shortcut labels by @chojs23

## [2.1.3] - 2026-05-26

### Bug Fixes

- Enable voice playback by default by @chojs23

### Documentation

- Update README by @chojs23

## [2.1.2] - 2026-05-25

### Bug Fixes

- Mark threads created by the current user as joined by @chojs23

### Features

- Support pane resize keybinding by @chojs23
- Guild role by @chojs23
- Handle chnnel pins update event by @chojs23
- Add reaction shortcut for selected messages (#127) in [#127]https://github.com/chojs23/concord/pull/127 by @chojs23
- Handle discord gateway connection error by @chojs23

### Miscellaneous Tasks

- Add paths-ignore to ci workflow by @chojs23

## [2.1.1] - 2026-05-25

### Bug Fixes

- Fix expensive channel sidebar build by grouping joined threads once by @chojs23

### Documentation

- Update readme for keymap example by @chojs23
- Update readme for powershell installer by @chojs23

### Refactor

- Fixture builders by @chojs23

## [2.1.0] - 2026-05-24

### Bug Fixes

- Fix clippy build errors by @chojs23
- Fix non-Linux voice playback release builds by @chojs23
- URL picker from message action menu and preserve case-sensitive action shortcuts by @chojs23
- Allow key modifier for action shortcut by @chojs23
- Handle thread chnnel update events by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Keymap customization (#126) in [#126]https://github.com/chojs23/concord/pull/126 by @chojs23
- Support custom composer keymaps by @chojs23
- Subcommand picker by @chojs23
- Message pane actions by @chojs23
- Add quit command by @chojs23
- Add attachment viewer by @chojs23

### Miscellaneous Tasks

- Release cache warm by @chojs23

### Refactor

- Split Discord event payload types by @chojs23
- Move Discord module tests out of large files by @chojs23
- Move facade tests into child modules by @chojs23
- Split tui ui tests by @chojs23

## [2.0.7] - 2026-05-22

### Bug Fixes

- Avoid report all keys as escape code by @chojs23
- Improve clipboard paste priority by @chojs23
- Fix stale MESSAGE_ACK from reopening unread state (#119) in [#119]https://github.com/chojs23/concord/pull/119 by @chojs23
- _(tui)_ Keep guild filter pane width stable by @chojs23
- Fix forum preview message by @chojs23

### Documentation

- Update keybinding docs by @chojs23

### Features

- Add optional circular avatar masking (#121) in [#121]https://github.com/chojs23/concord/pull/121 by @StaszeKrk

### Refactor

- Refactor repeated test DTO by @chojs23
- Move tui state to client backend by @chojs23
- Move TUI backend request handling into Discord client by @chojs23

### New Contributors

- @StaszeKrk made their first contribution in [#121]https://github.com/chojs23/concord/pull/121
- @CX330Blake made their first contribution in [#117]https://github.com/chojs23/concord/pull/117

## [2.0.6] - 2026-05-21

### Bug Fixes

- Fix slash command guild scope payload by @chojs23

### Features

- Better server/channel collapsing (#105) in [#105]https://github.com/chojs23/concord/pull/105 by @nexxai
- Support slash commands (#90) in [#90]https://github.com/chojs23/concord/pull/90 by @nexxai

### Performance

- _(tui)_ Suppress image redraws for sidebar updates by @chojs23

### Refactor

- Group DashboardState internals into substates by @chojs23
- Split tui state test module by @chojs23

## [2.0.5] - 2026-05-20

### Documentation

- Update composer keybinding docs by @chojs23

### Features

- Handle MessageDeleteBulk event by @chojs23
- Add clipboard image paste (#114) in [#114]https://github.com/chojs23/concord/pull/114 by @chojs23
- Include embed URLs in open url picker (#115) in [#115]https://github.com/chojs23/concord/pull/115 by @chojs23

## [2.0.4] - 2026-05-20

### Bug Fixes

- _(tui)_ Detect URLs in reply quotes and forwarded messages (#107) by @SAY-5
- Use transient typing display names for TYPING_START by @chojs23
- Clear typing indicator when a typer sends a message by @chojs23
- Composer newline fallbacks (#112) in [#112]https://github.com/chojs23/concord/pull/112 by @chojs23
- Fix bold italic markdown rendering (#113) in [#113]https://github.com/chojs23/concord/pull/113 by @chojs23

### Documentation

- Require related issues for pr by @chojs23
- Update readme by @chojs23

### Features

- Add mute,deafen state on header by @chojs23
- Add ctrl+w composer word deletion by @chojs23

### Performance

- _(tui)_ Improve member sidebar loading and rendering by @chojs23

### New Contributors

- @SAY-5 made their first contribution

## [2.0.3] - 2026-05-19

### Bug Fixes

- Stop auto-fetching visible user profiles by @chojs23
- Use gateway for fetch message authors info by @chojs23
- Dedupe message author member hydration by @chojs23
- Load pinned messages on demand by @chojs23
- Debounce member list subscriptions by @chojs23
- Fix forum preview author hydration through gateway by @chojs23
- Dedupe gateway channel subscriptions by @chojs23
- Cap reaction user pagination by @chojs23
- Dedupe duplicate voice state updates by @chojs23
- Op37 subscription dedupe reset by @chojs23

### Documentation

- Update changelog by @chojs23

### Features

- Change composer Ctrl+Backspace to delete words and Delete to remove attachments by @chojs23

### Miscellaneous Tasks

- Format by @chojs23

## [2.0.2] - 2026-05-19

### Bug Fixes

- Secure URL opening from messages by @chojs23
- Fix composer draft clearing on mouse focus change (#100) in [#100]https://github.com/chojs23/concord/pull/100 by @chojs23

### Features

- Add support for detecting links in messages and opening them in the default browser (#86) in [#86]https://github.com/chojs23/concord/pull/86 by @nexxai
- Focus next pane after selection (#102) in [#102]https://github.com/chojs23/concord/pull/102 by @chojs23
- Add query-based guild member search for mention autocomplete (#103) in [#103]https://github.com/chojs23/concord/pull/103 by @chojs23
- Improve channel switcher ranking and recents by @chojs23

### Performance

- Reduce Discord snapshot churn by @chojs23
- Reduce TUI redraw allocations by @chojs23
- Cache channel switcher items while open by @chojs23

## [2.0.1] - 2026-05-18

### Bug Fixes

- _(voice)_ Reduce microphone tearing during transmit (#96) in [#96]https://github.com/chojs23/concord/pull/96 by @chojs23

### Features

- Centralize app key handling and shortcut labels (#89) in [#89]https://github.com/chojs23/concord/pull/89 by @chojs23

### Miscellaneous Tasks

- Add system Opus to Nix build inputs by @chojs23
- Enable voice-playback for nix build by @chojs23
- Add Twilight attribution for Discord IDs (#95) by @chojs23

## [2.0.0] - 2026-05-17

### Bug Fixes

- Reconnect voice gateway after unexpected disconnect by @chojs23
- Mute voice playback while deafened by @chojs23
- Ignore silent RTP for remote speaking by @chojs23
- Show local speaking while alone in voice by @chojs23
- Keep local speaking visible during redraw debounce by @chojs23
- Show local mic activity before transmit confirmation by @chojs23
- Move composer cursor vertically (#82) in [#82]https://github.com/chojs23/concord/pull/82 by @chojs23
- Prefer text for native clipboard paste by @chojs23
- Stabilize voice sound (#84) in [#84]https://github.com/chojs23/concord/pull/84 by @chojs23
- Fix speaking state by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Join/Leave voice channel by @chojs23
- Add voice shutdown cleanup and active voice UI indicators by @chojs23
- Show voice connection status by @chojs23
- Add voice websocket connection by @chojs23
- Add DAVE signaling prototype using davey by @chojs23
- Add voice gateway lifecycle status reporting and cleanup hardening by @chojs23
- Add DAVE media-frame unwrap after RTP transport decrypt by @chojs23
- Add receive-only Opus decode worker by @chojs23
- Add optional feature-gated Discord voice playback backend by @chojs23
- Capture ALSA diagnostics into Concord logs by @chojs23
- Support u8 stream output by @chojs23
- Add local microphone transmit by @chojs23
- Gated capture-only microphone by @chojs23
- Resampling by @chojs23
- Highlight active voice speakers by @chojs23
- Active speaker state by @chojs23
- Add microphone sensitivity option by @chojs23
- Mic sensitivity by @chojs23
- Add voice channel join and leave sounds by @chojs23
- Add volume config and shortcut for voice action by @chojs23
- Voice chat (#78) in [#78]https://github.com/chojs23/concord/pull/78 by @chojs23
- Better clipboard (#81) by @chojs23

### Miscellaneous Tasks

- Remove performance measurement logs by @chojs23
- Add debug log for voice websocket by @chojs23
- Treat DaveOutboundNotReady as transient DAVE setup log noise when microphone transmit works by @chojs23
- Clippy by @chojs23

### Performance

- Reduce microphone transmit latency by dropping stale PCM frames by @chojs23

### Revert

- Remove redundant local speaking fallback fixes by @chojs23
- Clipboard (#83) in [#83]https://github.com/chojs23/concord/pull/83 by @chojs23

## [1.4.2] - 2026-05-16

### Bug Fixes

- _(search)_ Improve fuzzy search logic (#74) in [#74]https://github.com/chojs23/concord/pull/74 by @80avin

### Miscellaneous Tasks

- Remove temp diagnostic by @chojs23

### Performance

- Cache avatar render protocols by clipping and size to avoid per-frame re-encoding by @chojs23
- Cache message content row metrics to reduce repeated per-frame formatting by @chojs23
- Reduce channel upsert UI repair work by @chojs23

### New Contributors

- @80avin made their first contribution in [#74]https://github.com/chojs23/concord/pull/74

## [1.4.1] - 2026-05-15

### Bug Fixes

- Hydrate new forum post previews and make forum unread/read behavior match normal channels by @chojs23

### Documentation

- Update readme by @chojs23
- Add markdown example image by @chojs23

### Features

- Add already reacted emojis to top of picker list (attempt #2) (#64) in [#64]https://github.com/chojs23/concord/pull/64 by @nexxai
- Minimal markdown support by @chojs23
- Render voice channel participations by @chojs23
- Show live indicator for streaming voice participants by @chojs23

### Miscellaneous Tasks

- Add some comment for constants by @chojs23

### Performance

- Bound discord caches and split snapshot into selective areas by @chojs23

### Refactor

- Split DiscordState tests by @chojs23

## [1.4.0] - 2026-05-14

### Bug Fixes

- Update channel pane search and server header behavior by @chojs23
- Use XDG_CONFIG_HOME env for mac by @chojs23
- Usernames (#60) in [#60]https://github.com/chojs23/concord/pull/60 by @lisk77
- Fix visible member profile requests to follow rendered member rows by @chojs23
- Fix member pane emoji width overflow by @chojs23
- Keep timestamp-only embeds by @chojs23
- Preserve embed markdown details by @chojs23
- Remove r key reaction shortcut by @chojs23
- Modify image viewer size and allign image centered by @chojs23
- Clarify composer edit and reply modes by @chojs23
- Fix channel pane mouse row offset after guild header by @chojs23
- Align message action menu shortcuts with message pane shortcuts by @chojs23

### Documentation

- Update readme for message shortcut by @chojs23

### Features

- Expanding support for embedded content (#65) in [#65]https://github.com/chojs23/concord/pull/65 by @nexxai
- Add toast alarm by @chojs23

### Refactor

- Centralize display-name by @chojs23
- Remove configurable keybindings (#71) in [#71]https://github.com/chojs23/concord/pull/71 by @chojs23
- Remove redundant preview preset by @chojs23
- Refactor keyboard shortcuts by @chojs23

### New Contributors

- @SeniorMars made their first contribution in [#57]https://github.com/chojs23/concord/pull/57

## [1.3.3] - 2026-05-13

### Bug Fixes

- Align composer cursor with manual text wrapping (#50) in [#50]https://github.com/chojs23/concord/pull/50 by @AnalogCyan
- Fix composer multiline height wrapping to match rendered prefixes by @chojs23
- Message action menu mouse hitbox geometry by @chojs23

### Features

- Group messages based on sender (#56) in [#56]https://github.com/chojs23/concord/pull/56 by @nexxai
- Composer draft preservation (#61) in [#61]https://github.com/chojs23/concord/pull/61 by @chojs23
- Add Discord permission gates for message moderation actions (#62) in [#62]https://github.com/chojs23/concord/pull/62 by @chojs23
- Image viewer key helper by @chojs23
- Make message rows with larger avatars and stable selected grouped timestamps (#63) by @chojs23

### Refactor

- Refactor message row layout into modules and shared metrics by @chojs23
- Move forum-post viewport helpers by @chojs23
- Split discord state domain by @chojs23
- Split tui modules by @chojs23
- Gateway parser and TUI popup modules by @chojs23

### New Contributors

- @AnalogCyan made their first contribution in [#50]https://github.com/chojs23/concord/pull/50

## [1.3.2] - 2026-05-12

### Bug Fixes

- Activity emojis (#28) in [#28]https://github.com/chojs23/concord/pull/28 by @lisk77
- Align cursor position with newline-aware composer display (#45) in [#45]https://github.com/chojs23/concord/pull/45 by @kimjune01
- Fix reply edit state and complete reply attachment actions by @chojs23
- Reuse member presence marker for DM channel status dots by @chojs23
- Decoupe per-user note fetch from profile warm up by @chojs23
- Remove cached Discord state persistence (#52) in [#52]https://github.com/chojs23/concord/pull/52 by @chojs23

### Features

- Remove footer and last status by @chojs23
- Loading indicator by @chojs23
- Show offline members with an empty circle presence marker by @chojs23
- Surface unread channels and server-name search in channel switcher by @chojs23

### Miscellaneous Tasks

- Use git-cliff for changelog by @chojs23
- Add clippy check by @chojs23
- Clean up comments and simplify required context by @chojs23

### Refactor

- _(tui)_ Remove footer and popup hints (#43) in [#43]https://github.com/chojs23/concord/pull/43 by @chojs23
- Refactor activity rendering with typed ActivityRender struct (#44) in [#44]https://github.com/chojs23/concord/pull/44 by @chojs23
- Change broken dash by @chojs23

### Refacotr

- Rename leader action state and add context-specific action titles by @chojs23

### New Contributors

- @amiralimollaei made their first contribution in [#49]https://github.com/chojs23/concord/pull/49
- @kimjune01 made their first contribution in [#45]https://github.com/chojs23/concord/pull/45

## [1.3.1] - 2026-05-11

### Bug Fixes

- Fix test cache leakage (#31) in [#31]https://github.com/chojs23/concord/pull/31 by @chojs23
- Discord Gateway startup failure (#36) in [#36]https://github.com/chojs23/concord/pull/36 by @chojs23
- Fix muted channels contributing to server unread badges (#37) in [#37]https://github.com/chojs23/concord/pull/37 by @chojs23

### Documentation

- Update readme by @chojs23

### Features

- Add server mark-as-read & active channel ack debounce by @chojs23
- Display online and member count (#16) in [#16]https://github.com/chojs23/concord/pull/16 by @lisk77
- Prefs persistence (#25) in [#25]https://github.com/chojs23/concord/pull/25 by @TobyBridle
- Support muting channels and servers via actions (#26) in [#26]https://github.com/chojs23/concord/pull/26 by @nexxai
- Support all emojis for reactions (#30) in [#30]https://github.com/chojs23/concord/pull/30 by @nexxai
- Add emoji picker and autocomplete in composer (#34) in [#34]https://github.com/chojs23/concord/pull/34 by @chojs23

### Miscellaneous Tasks

- Remove cache warm by @chojs23

### Refactor

- Refactor quick reaction emoji labels to use emojis crate (#32) in [#32]https://github.com/chojs23/concord/pull/32 by @chojs23
- Remove dead test by @chojs23

## [1.3.0] - 2026-05-10

### Bug Fixes

- Prevent scrolling past last message (#12) in [#12]https://github.com/chojs23/concord/pull/12 by @lisk77
- Display of self mutuals (#14) in [#14]https://github.com/chojs23/concord/pull/14 by @lisk77

### Documentation

- Update README.md by @chojs23

### Features

- Support resizing panes (#18) in [#18]https://github.com/chojs23/concord/pull/18 by @nexxai
- _(composer)_ Add CTRL+Left, CTRL+Right word skip (#15) in [#15]https://github.com/chojs23/concord/pull/15 by @TobyBridle
- Add search to reaction picker + allow toggling of reactions (#19) in [#19]https://github.com/chojs23/concord/pull/19 by @nexxai
- Add fuzzy score helper (#21) in [#21]https://github.com/chojs23/concord/pull/21 by @chojs23
- Typo tolerant fuzzy (#22) in [#22]https://github.com/chojs23/concord/pull/22 by @chojs23

### Refactor

- _(composer)_ Use char-safe word boundary helpers (#20) in [#20]https://github.com/chojs23/concord/pull/20 by @chojs23
- Store app files under $XDG_CONFIG_HOME/concord (#23) in [#23]https://github.com/chojs23/concord/pull/23 by @chojs23

### New Contributors

- @lisk77 made their first contribution in [#14]https://github.com/chojs23/concord/pull/14
- @nexxai made their first contribution in [#19]https://github.com/chojs23/concord/pull/19
- @TobyBridle made their first contribution in [#15]https://github.com/chojs23/concord/pull/15

## [1.2.0] - 2026-05-09

### Documentation

- Update readme for upload attachment by @chojs23
- Remove some composer key usage by @chojs23

### Features

- Add leader by @chojs23
- Search channel with fuzzy by @chojs23
- Add new version available notice at header by @chojs23

### Miscellaneous Tasks

- Allign Release build toolchain with CI chace warmer by @chojs23

### Refactor

- Move options key to leader by @chojs23

## [1.1.2] - 2026-05-09

### Bug Fixes

- Redraw visible unread sidebar updates during image rendering by @chojs23
- Active-channel auto-ack by @chojs23

### Features

- Multipart file upload (#8) in [#8]https://github.com/chojs23/concord/pull/8 by @chojs23

### Miscellaneous Tasks

- Tighten dist profile with full LTO, single codegen unit, and strip by @chojs23

### Tests

- Consolidate redundant split tests by @chojs23

### Cd

- Protect release by @chojs23
- Improve build caching by @chojs23

## [1.1.1] - 2026-05-09

### Bug Fixes

- _(flake)_ Use crane (#4) in [#4]https://github.com/chojs23/concord/pull/4 by @M4jor-Tom
- Keep original image width:height ratio (#6) in [#6]https://github.com/chojs23/concord/pull/6 by @chojs23

### Documentation

- Add CONTRIBUTING.md by @chojs23
- Update readme by @chojs23
- Update readme by @chojs23

### Features

- Add terminal notification (#5) in [#5]https://github.com/chojs23/concord/pull/5 by @chojs23

### Miscellaneous Tasks

- Enable generated github release notes by @chojs23

### Cd

- Chain crates publish after release by @chojs23

### New Contributors

- @M4jor-Tom made their first contribution in [#4]https://github.com/chojs23/concord/pull/4

## [1.0.3] - 2026-05-08

### Bug Fixes

- Install rustls ring provider by @chojs23
- Surface user-account READY via raw JSON fallback and silence twilight deserialize errors by @chojs23
- Expand user-account fallback parser to cover guild, channel, message, and member events by @chojs23
- Make server folder toggles reliable by @chojs23
- Send raw user token for REST requests by @chojs23
- Start dashboard without message selection by @chojs23
- Wait for channel selection before showing messages by @chojs23
- Keep pane scrolling state-owned by @chojs23
- Align scroll height with pane content by @chojs23
- Keep startup channel pane inactive by @chojs23
- Preserve channel cursor across DM sorting by @chojs23
- Retry failed message history loads by @chojs23
- Require selected channel before composing by @chojs23
- Use text color for active selections by @chojs23
- Enable modified key reporting by @chojs23
- Keep proxy-only attachment URLs by @chojs23
- Disable attachment open shortcut by @chojs23
- Render image messages inline by @chojs23
- Render previews while scrolling by @chojs23
- Preview all visible images by @chojs23
- Keep image previews anchored by @chojs23
- Keep preview scrolling row-aware by @chojs23
- Dispatch image preview requests by @chojs23
- Scale image preview height by @chojs23
- Reduce wide preview spacing by @chojs23
- Avoid upscaling small previews by @chojs23
- Keep preview items within scroll bounds by @chojs23
- Preserve image previews in scrolloff by @chojs23
- Render clipped image previews by @chojs23
- Classify video attachments separately by @chojs23
- Skip videos in image preview layout by @chojs23
- Label video attachments in messages by @chojs23
- Handle QR captcha without browser fallback by @chojs23
- Align forwarded image preview targets by @chojs23
- Dim forwarded metadata line by @chojs23
- Separate reply preview author by @chojs23
- Label unsupported message types by @chojs23
- Filter message actions by subtype by @chojs23
- Remove poll results action by @chojs23
- Remove unavailable poll vote action by @chojs23
- Preserve newest messages during pagination by @chojs23
- Hide overflowing image previews by @chojs23
- Wrap message content lines by @chojs23
- Use display width for message wrapping by @chojs23
- Scroll messages by rendered line by @chojs23
- Clamp message scroll by rendered rows by @chojs23
- Separate message selection and viewport scroll by @chojs23
- Avoid message selection overflow by @chojs23
- Text clipping by @chojs23
- Use guild aliases for message authors by @chojs23
- Clip message rows by display width by @chojs23
- Remove some unnecessary env by @chojs23
- Use concord logging settings by @chojs23
- Use concord credential path by @chojs23
- Bottom align initial message viewport by @chojs23
- Hide avatar placeholder on message content rows by @chojs23
- Keep message highlight out of avatar column by @chojs23
- Remove bold from selection highlight by @chojs23
- Show message times in local timezone by @chojs23
- Align preview rows with rendered mentions by @chojs23
- Render mentions from message metadata by @chojs23
- Preserve mention metadata across merges by @chojs23
- Prefer guild aliases for mentions by @chojs23
- Normalize mention highlight ranges by @chojs23
- Add default app constructor by @chojs23
- Simplify mention highlight filtering by @chojs23
- Clear stale message update metadata by @chojs23
- Avoid download filename races by @chojs23
- Send real Discord replies by @chojs23
- Load custom guild emojis for reactions by @chojs23
- Bound image preview cache memory by @chojs23
- Move image preview decoding off tui loop by @chojs23
- Render user join messages by @chojs23
- Show known system message labels by @chojs23
- Cache Discord thread gateway channels by @chojs23
- Cache Discord member chunks by @chojs23
- Request members for active guilds by @chojs23
- Group members by Discord roles by @chojs23
- Truncate member names by display width by @chojs23
- Preserve DM recipient presence state by @chojs23
- Show DM recipients as members by @chojs23
- Color DM channels by recipient status by @chojs23
- Parse DM recipient presence updates by @chojs23
- Subscribe to active DM presence by @chojs23
- Hydrate active guild member lists by @chojs23
- Include self in group DM recipients by @chojs23
- Update poll vote state by @chojs23
- Submit poll votes together by @chojs23
- Process all member list sync ranges by @chojs23
- Receive unknown gateway events for member list updates by @chojs23
- Open member profile on enter or space by @chojs23
- Show loaded versus total guild members without full member loading by @chojs23
- Scope user profile cache by guild by @chojs23
- Show user profile load failures by @chojs23
- Update member totals on removal events by @chojs23
- Count fallback poll result votes by @chojs23
- Account for separators in image preview targets by @chojs23
- Hide channels that doesn't meet permission by @chojs23
- Guild user role by @chojs23
- Fix startup presense fallback by @chojs23
- Fix overflowing scrollbar by @chojs23
- Fix some ui by @chojs23
- Fall back when keyboard progressive enhancement unsupported by @chojs23
- Image blinking by @chojs23
- Message box by @chojs23
- Fix message viewport junmping with empty space by @chojs23
- Fix message viewport auto-follow by @chojs23
- Remove new dm by @chojs23
- Fix image flicker by suppressing redundant effect-driven redraws by @chojs23
- Clamp horizontal pane scrolling by @chojs23
- Remove inactive message scroll hint by @chojs23
- Preserve active guild mention style by @chojs23
- Prevent member activity row from overflowing panel by @chojs23
- Handle zero Discord snowflake parsing in gateway read state. by @chojs23
- Make qr code more scannable and fix partial paste issue by @chojs23
- Fix self-authored Discord messages being marked as unread by @chojs23

### Documentation

- Add curl install instructions by @chojs23
- Clarify release installer path by @chojs23
- Add example image by @chojs23
- Update readme by @chojs23
- Update example by @chojs23

### Features

- Add configuration and error foundation by @chojs23
- Add Discord gateway and messaging client by @chojs23
- Wire the app runtime to the Discord client by @chojs23
- Add credential-backed token config by @chojs23
- Add terminal dashboard and login UI by @chojs23
- Wire saved-token login into startup by @chojs23
- Store credentials in local file by @chojs23
- Add Discord state model by @chojs23
- Render Discord state panes by @chojs23
- Wire message composer commands by @chojs23
- Add QR code login flow with mode-select login screen by @chojs23
- Rebuild dashboard as Discord-style 4-pane layout with members and presence by @chojs23
- Extract guilds and DM channels from user-account READY and add gateway debug log by @chojs23
- Surface direct messages in the guild pane with @ channel prefix by @chojs23
- Group servers by Discord folders with collapsible headers by @chojs23
- Improve server folder tree rendering by @chojs23
- Store channel tree metadata by @chojs23
- Render collapsible channel tree by @chojs23
- Activate servers and channels on confirm by @chojs23
- Sort direct messages by latest message by @chojs23
- Add recent message history loading by @chojs23
- Add global file logging by @chojs23
- Sort direct messages by recent activity by @chojs23
- Add lazyagent-style message scrolling by @chojs23
- Use consistent scroll behavior across panes by @chojs23
- Clarify server and channel selection by @chojs23
- Mark active server in guild list by @chojs23
- Use four-pane dashboard layout by @chojs23
- Support multiline message input by @chojs23
- Preserve message attachment metadata by @chojs23
- Render message attachments in pane by @chojs23
- Open message attachments externally by @chojs23
- Load attachment preview data by @chojs23
- Render inline image previews by @chojs23
- Preserve forwarded message snapshots by @chojs23
- Preview forwarded attachments by @chojs23
- Render forwarded messages by @chojs23
- Add password login with MFA by @chojs23
- Preserve forwarded source metadata by @chojs23
- Render forwarded message cards by @chojs23
- Separate attachment summary lines by @chojs23
- Render Discord message types by @chojs23
- Render reply previews by @chojs23
- Render poll messages by @chojs23
- Add message actions for polls by @chojs23
- Paginate older message history by @chojs23
- Add partial clipping for inline image by @chojs23
- Render Discord-like message rows by @chojs23
- Render message avatars by @chojs23
- Render user mentions in messages by @chojs23
- Highlight current user mentions by @chojs23
- Add emoji reaction picker by @chojs23
- Support custom guild emoji reactions by @chojs23
- Show custom emoji images in picker by @chojs23
- Show reply target in composer by @chojs23
- Render Discord system message cards by @chojs23
- Queue guild member gateway requests by @chojs23
- Add guild member load command by @chojs23
- Cache Discord role metadata by @chojs23
- Store DM channel recipients by @chojs23
- Render DM recipients in member pane by @chojs23
- Add reaction pin and poll actions by @chojs23
- Render polls in boxed cards by @chojs23
- Render custom emoji on message by @chojs23
- List threads via channel actions menu by @chojs23
- Subscribe member list on guild switch by @chojs23
- Scroll member list subscription with viewport by @chojs23
- Split member sidebar into role online and offline groups by @chojs23
- Load and cache discord user profiles by @chojs23
- Capture friend relationships from ready by @chojs23
- Open user profile popup from message action menu by @chojs23
- Open user profile from member action menu by @chojs23
- Render profile avatar image inside the popup by @chojs23
- React to relationship add and remove dispatches by @chojs23
- Jump to mutual server from profile popup by @chojs23
- Change message author names to bold white and profile popup names to status-based color by @chojs23
- Add debug panel and youtube embed by @chojs23
- Gate sidebar with Discord's view-channel permission by @chojs23
- Add test log path by @chojs23
- Add scrollbar by @chojs23
- Thread box by @chojs23
- Improve forum by @chojs23
- Pane actions by @chojs23
- Add gateway reaction event handling by @chojs23
- Cd by @chojs23
- Mouse by @chojs23
- Handle large traffic event by @chojs23
- Migrated to use watch revision signal plus sequenced effect stream hybrid by @chojs23
- Selection with mouse by @chojs23
- Use iterm2 protocol for wezterm by @chojs23
- Fix some mouse interaction and optimize image redraw by @chojs23
- Render message inline emoji by @chojs23
- Multiple image viewer by @chojs23
- WIP message selection box by @chojs23
- Split forum posts by @chojs23
- Auto scroll by @chojs23
- Keep input mode by @chojs23
- Message update & delete by @chojs23
- New messages by @chojs23
- Download non-image attachments from message menu by @chojs23
- Render sticker-only messages instead of empty body by @chojs23
- Send DM from profile popup with m shortcut by @chojs23
- Render role mentions as @role-name with highlight by @chojs23
- Scroll-based profile popup with mouse wheel support by @chojs23
- Add client headers and cookie by @chojs23
- Channel tag by @chojs23
- Embed image resize + move emojj under image by @chojs23
- Unread/read channel by @chojs23
- Unread messages by @chojs23
- Add header by @chojs23
- Add option by @chojs23
- Add horizontal pane scrolling by @chojs23
- Highlight self reactions in yellow by @chojs23
- Show startup loading state by @chojs23
- Report startup token problems by @chojs23
- Show guild mention badges by @chojs23
- Add unread count for dm by @chojs23
- Action shortcuts by @chojs23
- User activity by @chojs23
- Add configurable image quality presets by @chojs23
- Nix flake by @chojs23

### Miscellaneous Tasks

- Initialize Rust application scaffold by @chojs23
- Clarify message input wording by @chojs23
- Show temporary message type prefix by @chojs23
- Rename package to concord by @chojs23
- Remove twilight by @chojs23
- Split some states by @chojs23
- Bump dependencies to latest by @chojs23
- Ui split by @chojs23
- Split tui modules by @chojs23
- Split discord gateway and state by @chojs23
- Fix some issues by @chojs23
- Remove clippy validation by @chojs23
- Split parser and redraw modules by @chojs23

### Performance

- Throttle inline image previews by @chojs23
- Bound attachment preview downloads by @chojs23
- Reduce retained media cache memory by @chojs23
- Bound older history retention by @chojs23
- Lower cache limits by @chojs23
- Resize discord cdn images by @chojs23
- Youtube embed thumbnail resizing by @chojs23

### Refactor

- Remove unused Discord state fields by @chojs23
- Sync viewport heights before rendering by @chojs23
- Compose message preview rows by @chojs23
- Use message capabilities for actions by @chojs23
- Construct app without config by @chojs23
- Remove startup config module by @chojs23
- Group message update state fields by @chojs23
- Remove dead attachment helpers by @chojs23
- Reuse message viewport bottom alignment by @chojs23
- Extract tui message formatting by @chojs23
- Split tui media target discovery by @chojs23
- Extract message viewport row scrolling by @chojs23
- Derive message height from formatter by @chojs23
- Unify message content span styling by @chojs23
- Extract image preview media cache by @chojs23
- Share emoji picker visible limit by @chojs23
- Split poll state by @chojs23
- Split message action state by @chojs23
- Split reaction state by @chojs23
- Split composer state by @chojs23

### Revert

- Remove latest-message direct message sorting by @chojs23

### Style

- Format mention highlight mapping by @chojs23
- Dim reply target composer hint by @chojs23
- Color role-grouped members by status by @chojs23

### Tests

- Cover raw ready custom emojis by @chojs23
- Cover cached thread channel deletion by @chojs23
- Replace Korean UI test fixtures by @chojs23
- Replace Korean TUI helper fixtures by @chojs23
- Simplify tui test helpers by @chojs23
- Reuse ui message content fixture by @chojs23

### Build

- Add TUI and keychain dependencies by @chojs23

### New Contributors

- @chojs23 made their first contribution
- @vncsalencar made their first contribution