docs: Phase 230 roadmap — spoiler reveal memory, strike hint, deafen hover (v0.8.194)

Update PLATFORM_ROADMAP, parity, UI flows, channel topic, and markdown docs
for Phase 230 GUI sprint; plan Phase 231.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-05-23 00:31:00 -04:00
co-authored by Cursor
parent e68acce3e7
commit d9c446fb79
5 changed files with 44 additions and 9 deletions
+1
View File
@@ -42,6 +42,7 @@ Forum channels reserve `topic` for the tag palette JSON (`{"forumTags":[...]}`).
- **Footer help** (v0.8.191): footer line explains double-click to select all and triple-click to copy selection
- **Escape tip** (v0.8.192): dismissing the popover with Escape shows a one-time toast about ⌘C and triple-click copy
- **Shift+click select** (v0.8.193): Shift+click topic or description selects the block; footer documents the shortcut
- **Shift header hint** (v0.8.194): popover header kbd line includes **Shift+click select** alongside ⌘C copy and triple-click selection
- **Focus trap** (v0.8.184): Tab cycles within the popover; first action receives focus
- **Focus restore** (v0.8.185): Escape or dismiss returns focus to the channel name trigger
- **✎** button (moderators) → edit modal
+2 -2
View File
@@ -10,12 +10,12 @@
| `*text*` | Italic (v0.8.180) |
| `***text***` | Bold + italic (v0.8.181) |
| `__text__` | Underline |
| `~~text~~` | Strikethrough |
| `~~text~~` | Strikethrough; composer **S** active + **selection is strikethrough** hint when wrapped in `~~` (v0.8.194) |
| `` `code` `` | Inline code; composer **selection is inline code** hint when wrapped in single backticks (v0.8.193) |
| ` ```lang`` ``` ` | Fenced code block with language label; composer **selection is code block** hint when selection is inside fences (v0.8.192) |
| `> quote` | Blockquote (line prefix); composer **** button and ⌘⇧Q wrap selection (v0.8.186); **selection is quote** hint when lines start with `> ` (v0.8.190) |
| `#` / `##` / `###` + space | Heading h1h3 (v0.8.179); composer **H1** / **H2** / **H3** buttons and ⌘⌥1 / ⌘⌥2 / ⌘⇧3 (v0.8.188) |
| `\|\|spoiler\|\|` | Click-to-reveal spoiler (nestable inside **bold** / *italic* / __underline__ / ~~strike~~ / `` `code` `` — v0.8.182+); URLs inside spoilers blur link previews until reveal (v0.8.186); compact previews use **Show spoiler link** gate (v0.8.188); composer **selection is spoiler** hint when wrapped in `\|\|` (v0.8.191) |
| `\|\|spoiler\|\|` | Click-to-reveal spoiler (nestable inside **bold** / *italic* / __underline__ / ~~strike~~ / `` `code` `` — v0.8.182+); URLs inside spoilers blur link previews until reveal (v0.8.186); compact previews use **Show spoiler link** gate (v0.8.188); expanded spoiler links per channel (v0.8.193); revealed message/embed spoilers per channel for the session (v0.8.194); composer **selection is spoiler** hint when wrapped in `\|\|` (v0.8.191) |
| `@username` | Mention highlight (when name is in `view.mentionNames`) |
| `:emoji_name:` | Custom guild emoji image |
+9
View File
@@ -4,6 +4,15 @@ Gap analysis between **Pearcord** (P2P Pear app) and a typical **centralized cha
> This is the only doc that compares against an external reference product. All other docs use Pearcord naming only.
## Summary (v0.8.194) — GUI focus
| Area | Reference product | Pearcord | Gap |
|------|-------------------|----------|-----|
| Spoiler reveal memory | Per-channel | `revealedMessageSpoilersByChannel` + `revealedEmbedSpoilersByChannel` | Link row hint |
| Shift header hint | Discoverability | Header **Shift+click select** alongside ⌘C | Dblclick header |
| Strike hint | `~~strike~~` | **S** active + “selection is strikethrough” | Underline hint |
| Deafen hover | Self deafen | **🔕 Deaf** on stream hover when `voiceMedia.deafened` | Local mute hover |
## Summary (v0.8.193) — GUI focus
| Area | Reference product | Pearcord | Gap |
+20 -6
View File
@@ -1518,16 +1518,29 @@ When completing work, change `[ ]` → `[x]` and add a one-line note under **Cha
---
### Phase 230 — Discord-like GUI sprint XXXVI (planned)
### Phase 230 — Discord-like GUI sprint XXXVI (complete)
| ID | Item | Status |
|----|------|--------|
| P230-1 | Messages: spoiler reveal persists per-channel in session | [ ] |
| P230-2 | Channels: topic popover header Shift+click hint | [ ] |
| P230-3 | Composer: strike format hint on strikethrough selection | [ ] |
| P230-4 | Voice: stream hover deafened badge on card | [ ] |
| P230-1 | Messages: spoiler reveal persists per-channel in session | [x] |
| P230-2 | Channels: topic popover header Shift+click hint | [x] |
| P230-3 | Composer: strike format hint on strikethrough selection | [x] |
| P230-4 | Voice: stream hover deafened badge on card | [x] |
**Next:** Spoiler reveal memory · Shift header hint · strike hint · hover deafen.
**Next:** ~~Spoiler reveal memory · Shift header hint · strike hint · hover deafen~~ (Phase 230).
---
### Phase 231 — Discord-like GUI sprint XXXVII (planned)
| ID | Item | Status |
|----|------|--------|
| P231-1 | Messages: spoiler link expand header hint on collapsed row | [ ] |
| P231-2 | Channels: topic popover header double-click hint | [ ] |
| P231-3 | Composer: underline format hint on selection | [ ] |
| P231-4 | Voice: stream hover local muted badge (voiceMedia) | [ ] |
**Next:** Spoiler link row hint · dblclick header · underline hint · local mute hover.
---
@@ -2973,6 +2986,7 @@ Micro a11y/guild smokes deferred while GUI sprint is prioritized. See Phase 195
### Changelog
- **2026-05-22** — v0.8.194: Phase 230 GUI — per-channel spoiler reveal memory, topic Shift+click header hint, strikethrough composer hint, stream hover local deafen badge (`test:spoiler-reveal-per-channel`, `test:channel-topic-shift-header-hint`, `test:composer-strike-hint`, `test:stream-hover-deafen-badge`). Phase 231 planned.
- **2026-05-22** — v0.8.193: Phase 229 GUI — per-channel spoiler link expand, topic Shift+click select, inline code hint, stream hover listen-only badge (`test:spoiler-link-per-channel`, `test:channel-topic-shift-click-select`, `test:composer-inline-code-hint`, `test:stream-hover-listen-badge`). Phase 230 planned.
- **2026-05-22** — v0.8.192: Phase 228 GUI — per-channel embed collapse memory, topic Escape copy tip toast, code fence composer hint, stream hover screen capture badge (`test:embed-collapse-per-channel`, `test:channel-topic-escape-tip`, `test:composer-code-fence-hint`, `test:stream-hover-screen-capture`). Phase 229 planned.
- **2026-05-22** — v0.8.191: Phase 227 GUI — embed collapse reset on channel change, topic popover footer help, spoiler selection hint, stream hover capture source (`test:embed-collapse-channel-reset`, `test:channel-topic-popover-footer`, `test:composer-spoiler-hint`, `test:stream-hover-capture-badge`). Phase 228 planned.
+12 -1
View File
@@ -133,6 +133,17 @@ Smokes: `npm run test:reply-preview-hover`, `npm run test:channel-notification-l
Smokes: `npm run test:embed-card-layout`, `npm run test:unread-divider`, `npm run test:role-reorder`, `npm run test:group-dm-header`.
## Desktop GUI (v0.8.194)
| Flow | Behavior |
|------|----------|
| Spoiler reveal memory | Revealed message/embed spoilers remembered per channel for the session |
| Shift header hint | Topic popover header shows **Shift+click select** with ⌘C and triple-click |
| Strike hint | `~~` wrapped selection shows **selection is strikethrough**; **S** button highlights |
| Deafen hover | **🔕 Deaf** badge on stream hover when you are deafened in voice |
Smokes: `npm run test:spoiler-reveal-per-channel`, `npm run test:channel-topic-shift-header-hint`, `npm run test:composer-strike-hint`, `npm run test:stream-hover-deafen-badge`.
## Desktop GUI (v0.8.193)
| Flow | Behavior |
@@ -170,7 +181,7 @@ Smokes: `npm run test:embed-collapse-channel-reset`, `npm run test:channel-topic
| Flow | Behavior |
|------|----------|
| Spoiler reveal reset | Channel switch clears revealed message/embed spoiler sets |
| Spoiler reveal reset | Channel switch cleared revealed sets (superseded v0.8.194 per-channel memory) |
| Triple-click hint | Topic popover header: **⌘C copy · triple-click selection** |
| Quote hint | Selecting `> ` lines shows **selection is quote**; **** button highlights |
| Hover mic | Amber **🎤 Live** badge on stream hover when local mic is capturing |