docs(phase658): mark thread P2P/perf closure and plan Phase 659
Close P658-48/P658-49/P658-50, add the phase659 planning block with 50 DM-focused items (polls + scheduled messages), and document DM thread P2P audit coverage plus large-list virtual paging behavior. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+6
-2
@@ -6,6 +6,8 @@
|
|||||||
|
|
||||||
**v0.8.638 (Phase 658 batch 3 slice):** DM-thread parity expanded with archive/unarchive in DM mode, per-thread notification mute in the thread bar, and a Discord-style disabled slowmode stub tooltip for DM threads.
|
**v0.8.638 (Phase 658 batch 3 slice):** DM-thread parity expanded with archive/unarchive in DM mode, per-thread notification mute in the thread bar, and a Discord-style disabled slowmode stub tooltip for DM threads.
|
||||||
|
|
||||||
|
**v0.8.638 (Phase 658 closure slice):** Added platform `exportDmThreadP2PAudit()` (asserting DM thread topics remain `pearcord:dm-thread:*` with no central URL), plus thread list virtual-window pagination for >20 rows in the panel.
|
||||||
|
|
||||||
## Architecture
|
## Architecture
|
||||||
|
|
||||||
| Piece | Module | Notes |
|
| Piece | Module | Notes |
|
||||||
@@ -27,8 +29,9 @@
|
|||||||
3. **Archive / unarchive:** In a DM thread, use thread bar **Archive thread / Unarchive thread**; state persists via `THREAD_META.archived`.
|
3. **Archive / unarchive:** In a DM thread, use thread bar **Archive thread / Unarchive thread**; state persists via `THREAD_META.archived`.
|
||||||
4. **Mute thread notifications:** Use thread bar **Mute thread / Unmute thread** (notification prefs mirror).
|
4. **Mute thread notifications:** Use thread bar **Mute thread / Unmute thread** (notification prefs mirror).
|
||||||
5. **Slowmode parity stub:** DM thread bar shows a disabled slowmode control with tooltip (Discord parity placeholder until DM slowmode policy is implemented).
|
5. **Slowmode parity stub:** DM thread bar shows a disabled slowmode control with tooltip (Discord parity placeholder until DM slowmode policy is implemented).
|
||||||
6. **Back to DM:** Thread bar **Back to DM** selects the parent channel.
|
6. **Large thread lists:** Threads panel paginates in 20-row windows with Prev/Next controls when many DM threads are active.
|
||||||
7. **Forum bridge:** On a forum post, **Message author** (✉) opens a sealed 1:1 with the author and prefills the composer with a post excerpt (`dm.bridge.forum` span).
|
7. **Back to DM:** Thread bar **Back to DM** selects the parent channel.
|
||||||
|
8. **Forum bridge:** On a forum post, **Message author** (✉) opens a sealed 1:1 with the author and prefills the composer with a post excerpt (`dm.bridge.forum` span).
|
||||||
|
|
||||||
## Testing
|
## Testing
|
||||||
|
|
||||||
@@ -36,6 +39,7 @@
|
|||||||
npm run test:smoke-phase658-dm-threads
|
npm run test:smoke-phase658-dm-threads
|
||||||
PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-dm-thread-fork-phase658
|
PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-dm-thread-fork-phase658
|
||||||
npm run test:agentctl-dm-thread-archive-phase658
|
npm run test:agentctl-dm-thread-archive-phase658
|
||||||
|
npm run test:agentctl-dm-thread-p2p-audit-phase658
|
||||||
npm run test:phase658-dm-threads
|
npm run test:phase658-dm-threads
|
||||||
npm run test:phase658-batch2
|
npm run test:phase658-batch2
|
||||||
```
|
```
|
||||||
|
|||||||
+63
-4
@@ -20375,11 +20375,70 @@ P2P-first phase: Hyperswarm guild mesh, `GUILD_SYNC` bundles, join/recovery pipe
|
|||||||
| P658-45 | UI: Discord blurple thread active indicator | [x] |
|
| P658-45 | UI: Discord blurple thread active indicator | [x] |
|
||||||
| P658-46 | UI: thread parent message preview chip | [x] |
|
| P658-46 | UI: thread parent message preview chip | [x] |
|
||||||
| P658-47 | Platform: thread notification mute per thread | [x] |
|
| P658-47 | Platform: thread notification mute per thread | [x] |
|
||||||
| P658-48 | P2P audit: thread topics never hit central server | [ ] |
|
| P658-48 | P2P audit: thread topics never hit central server | [x] |
|
||||||
| P658-49 | Performance: thread list virtual scroll >20 rows | [ ] |
|
| P658-49 | Performance: thread list virtual scroll >20 rows | [x] |
|
||||||
| P658-50 | Phase 659 — DM polls + scheduled messages planned | [ ] |
|
| P658-50 | Phase 659 — DM polls + scheduled messages planned | [x] |
|
||||||
|
|
||||||
**Next:** Phase 658 batch 3 — thread archive/unarchive toggle, slowmode stub, per-thread notification mute, thread performance virtual scroll, and P2P audit.
|
**Next:** Phase 659 — DM polls + scheduled messages (50-item DM execution phase).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Phase 659 — DM polls + scheduled messages (v0.8.638+ planning)
|
||||||
|
|
||||||
|
**Assessment vs real Discord (post-Phase 658):** DM/thread UX now has archive, mute, blurple active state, quick switcher thread rows, call history stubs, and P2P topic audit coverage. Major parity gaps remain around DM-native polls, scheduled send workflows, reminders, recurrence, and cross-device draft/schedule synchronization.
|
||||||
|
|
||||||
|
| ID | Item | Status |
|
||||||
|
|----|------|--------|
|
||||||
|
| P659-1 | DM polls: add `POLL_CREATE` payload schema in `pearcord-shared` | [ ] |
|
||||||
|
| P659-2 | DM polls: support single-choice voting in DM channels | [ ] |
|
||||||
|
| P659-3 | DM polls: support multi-select voting (toggle answers) | [ ] |
|
||||||
|
| P659-4 | DM polls: anonymous-vote mode flag (peer-visible totals only) | [ ] |
|
||||||
|
| P659-5 | DM polls: poll expiration timestamp and close-state handling | [ ] |
|
||||||
|
| P659-6 | DM polls: local vote optimistic UI + rollback on sync mismatch | [ ] |
|
||||||
|
| P659-7 | DM polls: poll result bar UI styled Discord-like | [ ] |
|
||||||
|
| P659-8 | DM polls: “you voted” indicator chips in message list | [ ] |
|
||||||
|
| P659-9 | DM polls: poll edit window (question/options before first vote) | [ ] |
|
||||||
|
| P659-10 | DM polls: poll delete permissions in DM/group DM contexts | [ ] |
|
||||||
|
| P659-11 | DM polls: thread-scoped polls inside `dm_thread` channels | [ ] |
|
||||||
|
| P659-12 | DM polls: poll reactions coexistence and conflict handling | [ ] |
|
||||||
|
| P659-13 | DM polls: compose modal with answer validation + max limits | [ ] |
|
||||||
|
| P659-14 | DM polls: poll markdown/emoji option rendering parity | [ ] |
|
||||||
|
| P659-15 | DM polls: accessibility labels for answer rows + totals | [ ] |
|
||||||
|
| P659-16 | DM polls: unread/mention behavior when poll updates arrive | [ ] |
|
||||||
|
| P659-17 | DM polls: poll vote gossip RPC and idempotent apply path | [ ] |
|
||||||
|
| P659-18 | DM polls: HyperDB storage/index for poll definitions/votes | [ ] |
|
||||||
|
| P659-19 | DM polls: JsonStore fallback for poll state in non-hyper runs | [ ] |
|
||||||
|
| P659-20 | DM polls: export/import in agentctl scenario fixtures | [ ] |
|
||||||
|
| P659-21 | Scheduled messages: shared schema (`sendAt`, `timezone`, `recurrence`) | [ ] |
|
||||||
|
| P659-22 | Scheduled messages: local queue store with HyperDB mirror | [ ] |
|
||||||
|
| P659-23 | Scheduled messages: enqueue UI from DM composer (“Send later”) | [ ] |
|
||||||
|
| P659-24 | Scheduled messages: scheduled message list panel in DM mode | [ ] |
|
||||||
|
| P659-25 | Scheduled messages: edit scheduled message content/time | [ ] |
|
||||||
|
| P659-26 | Scheduled messages: cancel/delete queued scheduled messages | [ ] |
|
||||||
|
| P659-27 | Scheduled messages: immediate “Send now” override action | [ ] |
|
||||||
|
| P659-28 | Scheduled messages: recurrence presets (daily/weekly/monthly) | [ ] |
|
||||||
|
| P659-29 | Scheduled messages: custom recurrence rule parser | [ ] |
|
||||||
|
| P659-30 | Scheduled messages: missed-send recovery after offline restart | [ ] |
|
||||||
|
| P659-31 | Scheduled messages: per-channel max queue depth + UX warning | [ ] |
|
||||||
|
| P659-32 | Scheduled messages: delivery failure retry backoff + toast | [ ] |
|
||||||
|
| P659-33 | Scheduled messages: blocked-peer check before delayed send | [ ] |
|
||||||
|
| P659-34 | Scheduled messages: E2E seal at send-time using current session | [ ] |
|
||||||
|
| P659-35 | Scheduled messages: thread parent seal-id handling for `dm_thread` | [ ] |
|
||||||
|
| P659-36 | Scheduled messages: time-zone aware picker with DST preview | [ ] |
|
||||||
|
| P659-37 | Scheduled messages: relative shortcuts (30m, 1h, tomorrow 9am) | [ ] |
|
||||||
|
| P659-38 | Scheduled messages: cron-like advanced picker (hidden behind toggle) | [ ] |
|
||||||
|
| P659-39 | Scheduled messages: companion read-only view of pending queue | [ ] |
|
||||||
|
| P659-40 | Scheduled messages: quick switcher indicator for queued sends | [ ] |
|
||||||
|
| P659-41 | Scheduled messages: diagnostics filter `dm-schedule-errors` | [ ] |
|
||||||
|
| P659-42 | Scheduled messages: spans (`dm.schedule.create/send/cancel`) | [ ] |
|
||||||
|
| P659-43 | Scheduled messages: audit entries for create/edit/cancel/send | [ ] |
|
||||||
|
| P659-44 | Scheduled messages: targeted stale queue cleanup task | [ ] |
|
||||||
|
| P659-45 | Agentctl: live journey create→edit→send-now→verify message | [ ] |
|
||||||
|
| P659-46 | Agentctl: recurrence journey across restart simulation | [ ] |
|
||||||
|
| P659-47 | Smoke: static checks for poll UI/composer + schedule queue wiring | [ ] |
|
||||||
|
| P659-48 | Bundle: `test:phase659-dm-polls-scheduling` | [ ] |
|
||||||
|
| P659-49 | Boot gate: `pear run` + log scan for poll/schedule error signatures | [ ] |
|
||||||
|
| P659-50 | Phase 660 — DM media workflows + voice notes planned | [ ] |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user