Skip to content

Commit 8768afb

Browse files
johnsideserfclaude
andauthored
Update docs for v0.7.0 release (#98)
Add changelog, feature docs, and dev guide updates for all v0.7.0 features: text styling, sticker display, view-once messages, cross-device read sync, system messages, message action menu, and disappearing messages. Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 4e2ec2c commit 8768afb

File tree

7 files changed

+118
-10
lines changed

7 files changed

+118
-10
lines changed

docs/src/changelog.md

Lines changed: 49 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,53 @@
11
# Changelog
22

3+
## v0.7.0
4+
5+
### Text styling
6+
7+
- **Rich text rendering** -- messages with Signal formatting now display with
8+
proper styling: **bold**, *italic*, ~~strikethrough~~, `monospace`, and spoiler
9+
text. Spoiler content is hidden behind block characters (closes #66)
10+
11+
### Sticker messages
12+
13+
- **Sticker display** -- incoming stickers are now shown as `[Sticker: emoji]`
14+
in the chat area instead of being silently dropped (closes #67)
15+
16+
### View-once messages
17+
18+
- **View-once handling** -- view-once messages display as `[View-once message]`
19+
with attachments suppressed, respecting the ephemeral intent (closes #68)
20+
21+
### Cross-device read sync
22+
23+
- **Read state sync** -- when you read messages on your phone or another linked
24+
device, signal-tui marks those conversations as read and updates unread counts
25+
automatically (closes #71)
26+
27+
### System messages
28+
29+
- **Missed calls** -- missed voice and video calls now show as system messages
30+
- **Safety number changes** -- a warning appears when a contact's safety number
31+
changes
32+
- **Group updates** -- group metadata changes (member adds/removes) display as
33+
system messages
34+
- **Disappearing message timer** -- changes to the expiration timer show a
35+
human-readable message (e.g. "Disappearing messages set to 1 day")
36+
37+
### Message action menu
38+
39+
- **Enter key menu** -- press Enter in Normal mode on a focused message to open
40+
a contextual action menu. Available actions (shown with key hints): Reply (q),
41+
Edit (e), React (r), Copy (y), Delete (d). Navigate with j/k, press Enter to
42+
execute, or use the shortcut key directly (closes #85)
43+
44+
### Bug fixes
45+
46+
- **"New messages" bar** -- the unread separator no longer persists after viewing
47+
a conversation with new messages (#90)
48+
49+
---
50+
351
## v0.6.1
452

553
### Bug fixes
@@ -212,7 +260,7 @@
212260
restored on reload (stale "Sending" messages are promoted to "Sent")
213261
- **Nerd Font icons** -- optional Nerd Font glyphs available via
214262
`/settings` > "Nerd Font icons"
215-
- **Configurable** -- three new settings toggles: "Read receipts" (on/off),
263+
- **Configurable** -- three new settings toggles: "Show read receipts" (on/off),
216264
"Receipt colors" (colored/monochrome), "Nerd Font icons" (unicode/nerd)
217265

218266
### Debug logging

docs/src/dev-guide/modules.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,9 @@ original method (e.g., mapping a response ID back to `listContacts`).
4343

4444
Shared types for signal-cli communication:
4545

46-
- `SignalEvent` -- enum of all events the backend can produce
47-
- `SignalMessage` -- a message with source, timestamp, body, attachments, group info
46+
- `SignalEvent` -- enum of all events the backend can produce (messages, receipts, typing, read sync, system messages)
47+
- `SignalMessage` -- a message with source, timestamp, body, attachments, group info, text styles
48+
- `TextStyle` / `StyleType` -- text formatting ranges (bold, italic, strikethrough, monospace, spoiler)
4849
- `Attachment` -- file metadata (content type, filename, local path)
4950
- `JsonRpcRequest` / `JsonRpcResponse` -- JSON-RPC protocol structs
5051
- `Contact` / `Group` -- address book and group info

docs/src/dev-guide/protocol.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ Incoming `receive` envelopes may also contain:
113113
| `dataMessage.quote` | Quoted reply metadata | `quote` field on `SignalMessage` |
114114
| `editMessage` | Edited message | `SignalEvent::EditReceived` |
115115
| `syncMessage.sentMessage` | Outgoing sync (own messages from other devices) | Same as above, with `is_outgoing = true` |
116+
| `syncMessage.readMessages` | Read sync from other devices | `SignalEvent::ReadSyncReceived` |
117+
| `dataMessage.sticker` | Sticker message | Body set to `[Sticker: emoji]` |
118+
| `dataMessage.textStyles` / `bodyRanges` | Text formatting (bold, italic, etc.) | `text_styles` field on `SignalMessage` |
119+
| `callMessage` | Missed call notification | `SignalEvent::SystemMessage` |
116120

117121
## Parsing logic
118122

docs/src/dev-guide/roadmap.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,12 @@
3939
- [x] `/join` autocomplete (contacts and groups with Tab completion)
4040
- [x] Send typing indicators (auto-start/stop on keypress)
4141
- [x] Send read receipts (automatic on conversation view, configurable)
42+
- [x] System messages (missed calls, safety number changes, group updates, expiration timer)
43+
- [x] Message action menu (Enter in Normal mode, contextual actions on focused message)
44+
- [x] Text styling (bold, italic, strikethrough, monospace, spoiler rendering)
45+
- [x] Display stickers (shown as `[Sticker: emoji]` in chat)
46+
- [x] View-once messages (shown as `[View-once message]` placeholder)
47+
- [x] Cross-device read sync (sync read state across linked devices)
4248

4349
## Up next
4450

@@ -63,18 +69,12 @@
6369
- [ ] Link previews -- display URL previews for shared links (#63)
6470
- [ ] Polls -- create and vote in Signal polls (#64)
6571
- [ ] Pinned messages -- view and manage pinned messages (#65)
66-
- [ ] Text styling -- render bold, italic, strikethrough, monospace, and
67-
spoiler formatting (#66)
68-
- [ ] Cross-device read sync -- sync read state across linked devices (#71)
6972

7073
### Low priority
7174

7275
- [ ] Publish to crates.io (#11)
73-
- [ ] Display stickers (#67)
74-
- [ ] View-once messages (#68)
7576
- [ ] Update profile from TUI (#69)
7677
- [ ] Identity key verification (#70)
77-
- [ ] Missed call notifications (#72)
7878
- [ ] Multi-line message input (Shift+Enter for newlines)
7979
- [ ] Message history pagination (scroll-up to load older messages)
8080
- [ ] Scroll position memory per conversation

docs/src/user-guide/configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ toggles for runtime settings:
5959
- Notification toggles (direct / group)
6060
- Sidebar visibility
6161
- Inline image previews
62-
- Read receipts / receipt colors / nerd font icons
62+
- Show read receipts / receipt colors / nerd font icons
6363
- Verbose reactions
6464
- Send read receipts
6565

docs/src/user-guide/features.md

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,12 +125,66 @@ Press Enter to jump to the message in context.
125125
After searching, use `n`/`N` in Normal mode to cycle through matches without
126126
re-opening the overlay.
127127

128+
## Text styling
129+
130+
Signal formatting is rendered in the chat area:
131+
132+
- **Bold** -- displayed with terminal bold
133+
- **Italic** -- displayed with terminal italic
134+
- **Strikethrough** -- displayed with terminal strikethrough
135+
- **Monospace** -- displayed in gray
136+
- **Spoiler** -- hidden behind block characters (`████`)
137+
138+
Styles compose correctly with @mentions and link highlighting.
139+
140+
## Sticker messages
141+
142+
Incoming stickers display as `[Sticker: emoji]` in the chat area (e.g.
143+
`[Sticker: 👍]`). If the sticker has no associated emoji, it shows as
144+
`[Sticker]`.
145+
146+
## View-once messages
147+
148+
View-once messages display as `[View-once message]` with any attachments
149+
suppressed, respecting the sender's ephemeral intent.
150+
151+
## System messages
152+
153+
Certain Signal events display as system messages (dimmed, centered) in the chat:
154+
155+
- **Missed calls** -- "Missed voice call" / "Missed video call"
156+
- **Safety number changes** -- warning when a contact's safety number changes
157+
- **Group updates** -- group metadata changes (member adds/removes)
158+
- **Disappearing message timer** -- e.g. "Disappearing messages set to 1 day"
159+
160+
## Message action menu
161+
162+
Press `Enter` in Normal mode on a focused message to open a contextual action
163+
menu. Available actions depend on the message type:
164+
165+
| Action | Key | Available on |
166+
|---|---|---|
167+
| Reply | `q` | Non-deleted messages |
168+
| Edit | `e` | Your own outgoing messages |
169+
| React | `r` | All messages |
170+
| Copy | `y` | All messages |
171+
| Delete | `d` | Non-deleted messages |
172+
173+
Navigate with `j`/`k`, press Enter to execute, or press the shortcut key
174+
directly. Press `Esc` to close.
175+
128176
## Read receipts
129177

130178
signal-tui sends read receipts to message senders when you view a conversation,
131179
letting them know you've read their messages. This can be toggled off via
132180
`/settings` > "Send read receipts".
133181

182+
## Cross-device read sync
183+
184+
When you read messages on your phone or another linked device, signal-tui
185+
receives the read sync and marks those conversations as read. Unread counts
186+
update automatically.
187+
134188
## Demo mode
135189

136190
```sh

docs/src/user-guide/keybindings.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ changes in the status bar.
3232
|---|---|
3333
| `y` | Copy message body to clipboard |
3434
| `Y` | Copy full line (`[HH:MM] <sender> body`) to clipboard |
35+
| `Enter` | Open action menu on focused message |
3536
| `r` | Open reaction picker on focused message |
3637
| `q` | Reply to focused message (quote reply) |
3738
| `e` | Edit own outgoing message |

0 commit comments

Comments
 (0)