Commit graph

218 commits

Author SHA1 Message Date
ayn2op
02ca5019c7 refactor(config): share the tree status style 2026-09-30 17:34:43 -04:00
ayn2op
32aed22618 refactor(chat): log raw events inline 2026-09-30 17:32:00 -04:00
ayn2op
74f8438bc1 refactor(ui): simplify models and messages 2026-09-30 16:45:13 -04:00
ayn2op
151eb89a1a feat(messageslist): draw previews with kitty graphics protocol 2026-09-29 20:22:46 -04:00
ayn2op
1e675f10cf feat(messageslist): preview images 2026-09-29 16:59:34 -04:00
ayn2op
0ae90e6b02 refactor(mentionslist): build rows from items on demand 2026-09-29 01:28:12 -04:00
ayn2op
08cdb3645c refactor(attachmentspicker): use picker.Items directly 2026-09-29 01:13:48 -04:00
ayn2op
ce576a42d4 refactor: drop redundant return nil before trailing return nil 2026-09-29 01:13:48 -04:00
ayn2op
acd2fe0050 build(deps): bump arikawa and ningen 2026-09-28 21:19:37 -04:00
ayn2op
7e920c1620 build(deps): bump ningen 2026-09-28 20:09:56 -04:00
ayn2op
08f27eb60d feat(chat): add members tree 2026-09-28 18:51:38 -04:00
ayn2op
05e622e753 refactor(ui): share tree and picker widgets 2026-09-28 18:51:16 -04:00
ayn2op
9dc509e300 refactor(ui): adopt tview Change and Keybind APIs 2026-09-28 18:51:16 -04:00
ayn2op
2b651a1459 refactor(guildstree): move help keymap to keymap.go 2026-09-28 18:51:16 -04:00
ayn2op
3de72a697d refactor(guildstree): index guild and channel nodes in one map 2026-09-28 18:51:16 -04:00
ayn2op
07733bc436 refactor(ui): use tview/inert for dialogs and pickers 2026-09-27 20:46:49 -04:00
ayn2op
24342490e5 refactor(ui)!: make models immutable values 2026-09-27 20:33:19 -04:00
ayn2op
f45dfd58ad fix(chat): expire typing indicators by deadline instead of timestamp equality
On Windows the coarse clock can return the same time for two addTyper
calls, so a stale expiry matched the extended indicator and removed it
early. Compare the stored deadline against the current time instead.
2026-09-27 19:19:07 -04:00
ayn2op
30810afde2 refactor(ui): migrate to declarative tview 2026-09-27 18:12:18 -04:00
ayn2op
219e34aa78 refactor(ui): update tview and migrate to Model.Init 2026-09-24 18:09:16 -04:00
ayn2op
7fb5e8fdf7
feat(config): add sidebar.visible field to hide sidebar (guilds tree) on startup (#839) 2026-09-20 11:34:15 -04:00
ayn2op
bbb8cf0d65
refactor(config): use shellwords to parse editor commands (#838) 2026-09-12 14:23:32 -07:00
ayn2op
c38fc3d9c0 refactor(ui): bump tview and adapt to tview.Screen API 2026-09-09 18:34:29 -04:00
ayn2op
24ced4d8bf fix(chat): keep original attachment extension and surface open errors 2026-09-06 23:03:07 -04:00
ayn2op
1750d7dfb6 test: use identifier-based names and subtests 2026-09-06 19:38:11 -04:00
ayn2op
39cb1b5698 refactor(chat): unify message list items 2026-09-06 19:38:11 -04:00
ayn2op
8390e9773a
feat(chat): edit latest own message with configurable Up keybind (#837) 2026-09-05 01:56:23 -04:00
ayn2op
bdea99d4f9 refactor(chat): simplify member search cache 2026-09-05 01:17:15 -04:00
ayn2op
358ccd546d refactor(guildstree): simplify model initialization 2026-09-04 14:59:24 -04:00
ayn2op
091d4711ea fix(chat): preserve focus without guilds tree 2026-09-02 20:24:03 -04:00
ayn2op
8f38996b8a feat(chat): toggle reply mentions from composer 2026-09-02 20:03:49 -04:00
ayn2op
8b9c28ce56 test(markdown,guildstree,qr,root): use identifier-based names and subtests 2026-09-02 18:09:21 -04:00
ayn2op
7972504293 refactor: use default markdown link parser 2026-09-02 00:23:11 -04:00
ayn2op
5003a15cc8 refactor: migrate markdown parser to arikawa 2026-09-01 22:54:32 -04:00
ayn2op
5df8f14d7b refactor(ui): modularize guilds tree 2026-08-31 22:35:23 -04:00
ayn2op
5e4018a742 refactor(config): simplify MIME type lookup 2026-08-31 18:57:21 -04:00
ayn2op
0509f47775 feat(ui): open and download message attachments
Closes #558
2026-08-31 18:57:21 -04:00
ayn2op
52e7d6ed0e
fix(ui): sort dms on message create (#835) 2026-08-30 21:10:37 -04:00
ayn2op
94eaf25286 text: migrate to tview text package 2026-08-30 20:06:45 -04:00
ayn2op
811c5e4418
refactor(ui): move focus ownership to containers (#834) 2026-08-29 01:10:17 -04:00
ayn2op
774e4059df build(deps): update to latest 2026-08-21 23:28:51 -04:00
ayn2op
764a9b3775 refactor(ui,config): flatten embedded literals 2026-08-21 20:10:38 -04:00
ayn2op
f880378568 fix: acknowledge current channel cursor 2026-08-19 01:51:01 -04:00
ayn2op
e0aa1e857d refactor: adopt standard slice helpers 2026-08-18 17:53:17 -04:00
ayn2op
f016d62bc5 style: format gateway capabilities 2026-08-18 14:07:57 -04:00
ayn2op
26dc8cf748 refactor: adopt generic options 2026-08-18 03:42:17 -04:00
ayn2op
1d441a972a gateway: enable debounced reactions 2026-08-18 02:56:29 -04:00
ayn2op
a0c2f10c35 gateway: enable modern ready capabilities 2026-08-18 02:11:36 -04:00
ayn2op
c6305c0510 gateway: enable versioned ready fields 2026-08-17 23:19:29 -04:00
ayn2op
3ea0de50f9 refactor: pass *ningen.State to newGuildsTree instead of *chat.Model 2026-08-12 00:50:02 -04:00