docs(phase659): mark poll unread and idempotent vote items complete
Mark P659-16 and P659-17 complete in roadmap and document desired-state vote IPC/idempotent apply plus no synthetic unread/mention behavior for poll updates. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+5
-1
@@ -12,6 +12,8 @@
|
||||
|
||||
**v0.8.638 (Phase 659 slice 6):** Poll option labels now use message markdown/emoji formatting for Discord-style readability, and poll answer rows/totals expose stronger accessibility labels (`aria-label`, `aria-live`).
|
||||
|
||||
**v0.8.638 (Phase 659 slice 7):** Poll vote dispatch now carries desired vote state for idempotent apply (`vote-dm-poll` with `voted`), and poll updates are verified not to create artificial unread/mention bumps.
|
||||
|
||||
## Commands
|
||||
|
||||
- `/poll Question | Option A | Option B` creates a single-choice poll.
|
||||
@@ -31,7 +33,7 @@ Polls are encoded as normal DM messages (no central service), with option emojis
|
||||
| Poll edit guard | `pearcord-platform` | `editDmPoll` allows edits only before first vote is recorded |
|
||||
| Poll close/expiry | `pearcord-platform` | `closeDmPoll` and vote/edit closed-state enforcement (`poll is closed`) |
|
||||
| Poll delete permissions | `pearcord-platform` | `deleteDmPoll` requires DM-mode modify/delete permission and poll-shape check |
|
||||
| IPC | `pearcord-ui-flow` | `vote-dm-poll`/`edit-dm-poll`/`close-dm-poll`/`delete-dm-poll` result events |
|
||||
| IPC | `pearcord-ui-flow` | `vote-dm-poll` (with `voted` desired state)/`edit-dm-poll`/`close-dm-poll`/`delete-dm-poll` result events |
|
||||
| UI | `apps/pearcord/ui` | Poll card render + vote bars + anonymous label + pre-vote edit/close/delete affordances + optimistic rollback reconcile + composer modal + markdown/emoji option labels + poll a11y labels |
|
||||
| Agentctl journey | `pearcord-agentctl` | `runDmPollVoteJourney` |
|
||||
|
||||
@@ -53,3 +55,5 @@ npm run test:phase659-dm-polls-scheduling
|
||||
- Thread-scoped DM polls are supported when active channel is `dm_thread` (same DM mode policy path).
|
||||
- Poll optimistic conflict checks only compare poll-option emojis, allowing unrelated message reactions to coexist without rollback noise.
|
||||
- Poll totals use `aria-live="polite"` and each answer row provides explicit vote/selection accessibility labels.
|
||||
- Poll vote apply is idempotent when duplicate desired-state messages arrive, reducing gossip race toggles.
|
||||
- Poll vote updates do not create synthetic mention/unread alerts by themselves.
|
||||
|
||||
+2
-2
@@ -20404,8 +20404,8 @@ P2P-first phase: Hyperswarm guild mesh, `GUILD_SYNC` bundles, join/recovery pipe
|
||||
| P659-13 | DM polls: compose modal with answer validation + max limits | [x] |
|
||||
| P659-14 | DM polls: poll markdown/emoji option rendering parity | [x] |
|
||||
| P659-15 | DM polls: accessibility labels for answer rows + totals | [x] |
|
||||
| P659-16 | DM polls: unread/mention behavior when poll updates arrive | [ ] |
|
||||
| P659-17 | DM polls: poll vote gossip RPC and idempotent apply path | [ ] |
|
||||
| P659-16 | DM polls: unread/mention behavior when poll updates arrive | [x] |
|
||||
| P659-17 | DM polls: poll vote gossip RPC and idempotent apply path | [x] |
|
||||
| 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 | [ ] |
|
||||
|
||||
Reference in New Issue
Block a user