|
19 | 19 | - [x] Sync request at startup to refresh data from primary device |
20 | 20 | - [x] Inline image preview for attachments (halfblock rendering) |
21 | 21 |
|
22 | | -## Up Next |
23 | | - |
24 | 22 | - [x] **New message notifications** |
25 | 23 | - Terminal bell + unread count in terminal title |
26 | 24 | - Separate toggles for direct and group messages (config + `/bell` command) |
|
43 | 41 | - [x] **Full timestamp on scroll** |
44 | 42 | - Status bar shows full date+time of focused message when scrolling |
45 | 43 |
|
| 44 | +- [x] **Message reactions** |
| 45 | + - Emoji picker (`r` in Normal mode) with quick-react bar |
| 46 | + - Compact badge display (`👍 2 ❤️ 1`) with optional verbose mode |
| 47 | + - Full lifecycle: receive, sync, remove, persist (DB migration v4) |
| 48 | + |
| 49 | +- [x] **@mention autocomplete** |
| 50 | + - Type `@` in group chats to mention members; also works in 1:1 chats |
| 51 | + - Incoming mentions highlighted in cyan+bold |
| 52 | + |
| 53 | +- [x] **Visible message selection** |
| 54 | + - Dark background highlight on focused message when scrolling |
| 55 | + - `J`/`K` to jump between messages (skips separators and system messages) |
| 56 | + |
| 57 | +- [x] **Startup error handling** |
| 58 | + - signal-cli stderr captured and displayed in TUI error screen |
| 59 | + |
| 60 | +## Up Next |
| 61 | + |
46 | 62 | - [ ] **Send attachments** |
47 | 63 | - Only receiving works today |
48 | 64 | - Add `/send-file <path>` command |
49 | 65 |
|
| 66 | +- [ ] **Message search** |
| 67 | + - Full-text search across conversations |
| 68 | + |
50 | 69 | ## Future |
51 | 70 |
|
52 | | -- [ ] Message search |
53 | 71 | - [ ] Multi-line message input (Shift+Enter for newlines) |
54 | 72 | - [ ] Message history pagination (scroll-up to load older messages) |
55 | 73 | - [ ] Correct group typing indicators (per-sender-to-group mapping) |
56 | | -- [ ] **Message reactions (emoji reactions)** |
57 | | - - Parse `dataMessage.reaction` from signal-cli (emoji, targetAuthor, targetTimestamp, isRemove) |
58 | | - - Display reactions below the target message as compact emoji badges (e.g. `👍 2 ❤️ 1`) |
59 | | - - Aggregate duplicate emoji from different senders into counts |
60 | | - - Handle reaction removal (`isRemove: true`) by decrementing or removing the badge |
61 | | - - Store reactions in DB (new `reactions` table keyed by message + sender) |
62 | | - - Re-render reaction badges on startup from DB |
63 | | - - Stretch: allow sending reactions via a command (e.g. `/react 👍`) |
64 | 74 | - [ ] Message deletion and editing |
65 | 75 | - [ ] Group management (create, add/remove members, member list) |
66 | 76 | - [ ] Scroll position memory per conversation |
67 | 77 | - [ ] Configurable keybindings |
| 78 | +- [ ] Reply to specific messages (quote reply) |
| 79 | +- [ ] Forward messages |
0 commit comments