Commit graph

536 commits

Author SHA1 Message Date
ayn2op
fca6ea5c1d test(qr): wait for the client to close after the gateway cancels 2026-10-04 23:55:44 -04:00
ayn2op
c947abdf0e feat(messageslist): load previews at the terminal's cell size 2026-10-04 19:31:13 -04:00
ayn2op
d1867ee14c refactor(messageslist): pass the render width as a parameter 2026-10-04 16:03:36 -04:00
ayn2op
a94a791174 refactor(messageslist): read a separator's date from the next message 2026-10-04 15:53:04 -04:00
ayn2op
94ae1f277c refactor(qr): render the code in the view 2026-10-04 15:53:04 -04:00
ayn2op
b41a7594ea refactor(composer): derive the placeholder in the view 2026-10-04 15:53:04 -04:00
ayn2op
757655ce3b refactor(messageslist): build the scroll bar in the view 2026-10-04 15:53:04 -04:00
ayn2op
39ef4c93cc refactor(messageslist): track end with the list builder 2026-10-04 15:51:03 -04:00
ayn2op
f9bb10d846 refactor(ui): update to tview's Widget and help style builders 2026-10-03 23:41:25 -04:00
ayn2op
f7180f8767 feat(guildstree): select the previous or next unread guild or channel
Closes #665
2026-10-03 14:45:34 -04:00
ayn2op
1e42e7783d feat(mentionslist): configure the selected style with [theme.mentions_list] 2026-10-02 15:34:44 -04:00
ayn2op
1604231f6d refactor(ui): update to tview's ActionNone keybinds 2026-10-02 15:33:03 -04:00
ayn2op
dae8467a58 fix(messageslist): do not style the space after the author name 2026-10-02 00:26:41 -04:00
ayn2op
25c3aff301 refactor(ui): update to tview's scroll bar symbols 2026-10-01 23:24:22 -04:00
ayn2op
39c803eef9 refactor(config): drop the unicode scroll bar glyph set 2026-10-01 22:58:48 -04:00
ayn2op
31c5d185ca refactor(ui): update to tview's layout package and Element methods 2026-10-01 22:45:52 -04:00
ayn2op
cf06327e01 perf(messageslist): append a new message without rebuilding the items 2026-10-01 14:16:52 -04:00
ayn2op
dd2e690c34 feat(login): configure tabs with [ui.tabs] 2026-09-30 20:08:20 -04:00
ayn2op
837e615d1a fix(composer): expand every mention around code spans 2026-09-30 18:07:33 -04:00
ayn2op
91c0ee1a97 refactor(messageslist): write the pinned notice in one call 2026-09-30 17:51:12 -04:00
ayn2op
4d4b6289ee refactor(messageslist): drop redundant reply comments 2026-09-30 17:51:03 -04:00
ayn2op
54e7aabb68 refactor(messageslist): drop redundant empty check in selectedMessage 2026-09-30 17:50:37 -04:00
ayn2op
a205c17854 refactor(messageslist): build prefixed embed lines inline 2026-09-30 17:49:52 -04:00
ayn2op
467af33b01 refactor(messageslist): add embed fields without a switch 2026-09-30 17:49:45 -04:00
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
48a12551aa fix(qr): close the gateway connection on errors 2026-09-29 01:28:12 -04:00
ayn2op
5022ed3d93 refactor(qr): drop errMsg in favor of error 2026-09-29 01:28:12 -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
129ded84c0 refactor: drop tautological tls tests, password.ErrMsg, and go-cmp 2026-09-29 01:13:48 -04:00
ayn2op
d6415666de refactor(keyring): inline wrapper package into root 2026-09-29 01:13:48 -04:00
ayn2op
708b9d0357 fix(qr): serialize websocket I/O and keep reading past heartbeat_ack 2026-09-29 00:36:22 -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
de2f2c94f0 test(config): use method call for applyDefaults in test 2026-09-21 20:14:43 -04:00