Phase 471: complete threads/forum roadmap and refresh documentation
Mark Phase 471 complete, add Phase 472 moderation plan, and document threads depth, composer hint, and agentctl phase471 bundle. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -206,6 +206,15 @@ PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-phase444-notifications
|
||||
|
||||
Chains notification/inbox smokes, platform `notification.markRead`/`notification.markAll`/`inbox.mark-read` error logs, dev-log **notification-errors** + **inbox-errors** filters (tightened span match), notification row `aria-current`, mark-all banner Escape, body truncation, forum notif place context, composer autofocus after mark-all/open-notification (`composer-focus-channel` IPC), `notificationInboxCount` clipboard meta, server-rail guild-loading aria-label, threads panel unread total badge, and Phase 443 threads regression.
|
||||
|
||||
**Threads depth (v0.8.434):** Primary Phase 471 verification — combined bundle:
|
||||
|
||||
```bash
|
||||
npm run test:phase471-threads-forum
|
||||
PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-phase471-threads
|
||||
```
|
||||
|
||||
Extends Phase 443 threads/forum bundle with `syncThreadsPanelsDuringGuildLoading` (wired from guild-loading overlay), extended threads/forum guild-loading guards (panel rows, filter chips, forum posts, thread bar), `syncComposerThreadHint` (`#composer-thread-hint`), platform thread/forum span metadata (`parentType`/`threadName`/`parentId`/`parentChannelId`/`messageId`), error logs `error:` key, dev-log clipboard `threadsPanelFilter`/`activeThreadParentId`/`forumTagFilter`, thread-read live region extend, and Phase 470 search regression. Agentctl re-runs Phase 443 threads (`test:agentctl-phase443-threads` alias).
|
||||
|
||||
**Search & pins depth (v0.8.433):** Primary Phase 470 verification — combined bundle:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
**Forum channels** are a Pearcord channel type where each **post** is a dedicated thread (Discord-style forum without a central server).
|
||||
|
||||
**v0.8.434 (Phase 471):** Forum post list rows and tag filters disabled during `guildLoading` via `syncThreadsPanelsDuringGuildLoading`; platform `forum.post` span `end` adds `parentChannelId` + `messageId`. Composer `#composer-thread-hint` shows forum post count and create hint. Bundle: `npm run test:phase471-threads-forum`.
|
||||
|
||||
**v0.8.421 (Phase 458):** Platform `forum.post` span includes `guildId` + `span.fail`; composer autofocus after `create-forum-post` (`test:composer-autofocus-after-forum-post`); agentctl `agentctl-forum-post.json`. See [CHANNELS.md](./CHANNELS.md) for channel delete.
|
||||
|
||||
## Data model
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
Dedicated **thread channels** under a parent **text** or **forum** channel (Discord-style side conversations). Forum posts are threads with `forumPost: true` — see [FORUM_CHANNELS.md](./FORUM_CHANNELS.md).
|
||||
|
||||
**v0.8.434 (Phase 471):** `syncThreadsPanelsDuringGuildLoading` wrapper (wired from `syncGuildLoadingOverlay`) extends guild-loading guards to thread panel rows/chips/sort, forum post rows/tag filters, and `#thread-bar`; `syncComposerThreadHint` (`#composer-thread-hint`) for thread/text/forum context; `#thread-read-live` distinguishes thread vs channel on mark-read. Platform spans: `thread.create` `parentType`/`threadName`; `thread.archive` `parentId`; `forum.post` `parentChannelId`/`messageId`; error logs use `error:` key. Dev-log clipboard: `threadsPanelFilter`, `threadsPanelUnread`, `activeThreadParentId`, `forumTagFilter`. Bundle: `npm run test:phase471-threads-forum`; agentctl: `npm run test:agentctl-phase471-threads` (+8 smokes).
|
||||
|
||||
**v0.8.421 (Phase 458):** Platform `thread.create` / `thread.archive` spans include `guildId` + `span.fail`; dev-log **thread-errors** tightened; clipboard `threadCount`; `syncThreadsPanelDuringGuildLoading`; agentctl `agentctl-thread-create.json`. Bundle: `npm run test:phase458-threads-forum`.
|
||||
|
||||
## Data model
|
||||
|
||||
+112
-52
@@ -9274,62 +9274,121 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
|
||||
|
||||
---
|
||||
|
||||
### Phase 471 — Threads depth (v0.8.434)
|
||||
### Phase 471 — Threads depth (v0.8.434) ✅
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P471-1 | Threads: create/join roundtrip re-verify | [ ] |
|
||||
| P471-2 | Threads: archive/unarchive roundtrip re-verify | [ ] |
|
||||
| P471-3 | Forum: post create with tags roundtrip re-verify | [ ] |
|
||||
| P471-4 | Forum: tag filter + include archived re-verify | [ ] |
|
||||
| P471-5 | UI: `syncThreadsPanelsDuringGuildLoading` wrapper extend | [ ] |
|
||||
| P471-6 | UI: threads panel guild-loading guard extend | [ ] |
|
||||
| P471-7 | UI: forum post list guild-loading guard extend | [ ] |
|
||||
| P471-8 | UI: thread bar guild-loading guard extend | [ ] |
|
||||
| P471-9 | Platform: `thread.create` span metadata extend | [ ] |
|
||||
| P471-10 | Platform: `thread.archive` span metadata extend | [ ] |
|
||||
| P471-11 | Platform: `forum.post` span metadata extend | [ ] |
|
||||
| P471-12 | Logging: dev-log **thread-errors** filter tighten | [ ] |
|
||||
| P471-13 | Logging: dev-log clipboard thread meta extend | [ ] |
|
||||
| P471-14 | Agentctl: thread create headless re-verify | [ ] |
|
||||
| P471-15 | Agentctl: forum post headless re-verify | [ ] |
|
||||
| P471-16 | Agentctl: combined phase471 threads bundle | [ ] |
|
||||
| P471-17 | Smoke: threads-guild-loading-extend | [ ] |
|
||||
| P471-18 | Smoke: threads-panels-guild-loading-extend | [ ] |
|
||||
| P471-19 | Smoke: dev-log-thread-errors-tighten | [ ] |
|
||||
| P471-20 | Smoke: dev-log-clipboard-thread-meta extend | [ ] |
|
||||
| P471-21 | UI: composer thread hint | [ ] |
|
||||
| P471-22 | UI: thread panel filter chips keyboard re-verify | [ ] |
|
||||
| P471-23 | UI: thread empty-state hints polish | [ ] |
|
||||
| P471-24 | UI: forum empty-state hints polish | [ ] |
|
||||
| P471-25 | UI: thread row aria-current polish | [ ] |
|
||||
| P471-26 | UI: forum post aria-current polish | [ ] |
|
||||
| P471-27 | UI: composer autofocus after thread create re-verify | [ ] |
|
||||
| P471-28 | UI: thread parent link polish | [ ] |
|
||||
| P471-29 | UI: thread typing indicator in panel re-verify | [ ] |
|
||||
| P471-30 | Permissions: thread send gate toast polish | [ ] |
|
||||
| P471-31 | Permissions: forum post gate toast polish | [ ] |
|
||||
| P471-32 | Docs: `MESSAGE_THREADS.md` refresh | [ ] |
|
||||
| P471-33 | Docs: `FORUM_CHANNELS.md` refresh | [ ] |
|
||||
| P471-34 | Docs: `AGENTCTL.md` phase 471 bundle | [ ] |
|
||||
| P471-35 | Regression: search phase 470 smokes still pass | [ ] |
|
||||
| P471-36 | Regression: notifications phase 469 smokes still pass | [ ] |
|
||||
| P471-37 | Boot: session ready gate | [ ] |
|
||||
| P471-38 | Boot: pear run gate | [ ] |
|
||||
| P471-39 | Module: `pearcord-platform` README threads section | [ ] |
|
||||
| P471-40 | Module: `pearcord-threads` README accuracy | [ ] |
|
||||
| P471-41 | Smoke: platform-thread-span-metadata-extend | [ ] |
|
||||
| P471-42 | Mesh: thread archive gossip roundtrip re-verify | [ ] |
|
||||
| P471-43 | Mesh: forum post gossip roundtrip re-verify | [ ] |
|
||||
| P471-44 | UI: threads filter mention/pinned/muted re-verify | [ ] |
|
||||
| P471-45 | UI: thread read live region extend | [ ] |
|
||||
| P471-46 | Inbox: thread notification jump re-verify | [ ] |
|
||||
| P471-47 | Search: thread read cache invalidation re-verify | [ ] |
|
||||
| P471-48 | UI: thread bar unread badge polish | [ ] |
|
||||
| P471-49 | UI: forum search stale badge re-verify | [ ] |
|
||||
| P471-50 | Phase 472 moderation depth (v0.8.435) | [ ] |
|
||||
| P471-1 | Threads: create/join roundtrip re-verify | [x] |
|
||||
| P471-2 | Threads: archive/unarchive roundtrip re-verify | [x] |
|
||||
| P471-3 | Forum: post create with tags roundtrip re-verify | [x] |
|
||||
| P471-4 | Forum: tag filter + include archived re-verify | [x] |
|
||||
| P471-5 | UI: `syncThreadsPanelsDuringGuildLoading` wrapper extend | [x] |
|
||||
| P471-6 | UI: threads panel guild-loading guard extend | [x] |
|
||||
| P471-7 | UI: forum post list guild-loading guard extend | [x] |
|
||||
| P471-8 | UI: thread bar guild-loading guard extend | [x] |
|
||||
| P471-9 | Platform: `thread.create` span metadata extend | [x] |
|
||||
| P471-10 | Platform: `thread.archive` span metadata extend | [x] |
|
||||
| P471-11 | Platform: `forum.post` span metadata extend | [x] |
|
||||
| P471-12 | Logging: dev-log **thread-errors** filter tighten | [x] |
|
||||
| P471-13 | Logging: dev-log clipboard thread meta extend | [x] |
|
||||
| P471-14 | Agentctl: thread create headless re-verify | [x] |
|
||||
| P471-15 | Agentctl: forum post headless re-verify | [x] |
|
||||
| P471-16 | Agentctl: combined phase471 threads bundle | [x] |
|
||||
| P471-17 | Smoke: threads-guild-loading-extend | [x] |
|
||||
| P471-18 | Smoke: threads-panels-guild-loading-extend | [x] |
|
||||
| P471-19 | Smoke: dev-log-thread-errors-tighten | [x] |
|
||||
| P471-20 | Smoke: dev-log-clipboard-thread-meta extend | [x] |
|
||||
| P471-21 | UI: composer thread hint | [x] |
|
||||
| P471-22 | UI: thread panel filter chips keyboard re-verify | [x] |
|
||||
| P471-23 | UI: thread empty-state hints polish | [x] |
|
||||
| P471-24 | UI: forum empty-state hints polish | [x] |
|
||||
| P471-25 | UI: thread row aria-current polish | [x] |
|
||||
| P471-26 | UI: forum post aria-current polish | [x] |
|
||||
| P471-27 | UI: composer autofocus after thread create re-verify | [x] |
|
||||
| P471-28 | UI: thread parent link polish | [x] |
|
||||
| P471-29 | UI: thread typing indicator in panel re-verify | [x] |
|
||||
| P471-30 | Permissions: thread send gate toast polish | [x] |
|
||||
| P471-31 | Permissions: forum post gate toast polish | [x] |
|
||||
| P471-32 | Docs: `MESSAGE_THREADS.md` refresh | [x] |
|
||||
| P471-33 | Docs: `FORUM_CHANNELS.md` refresh | [x] |
|
||||
| P471-34 | Docs: `AGENTCTL.md` phase 471 bundle | [x] |
|
||||
| P471-35 | Regression: search phase 470 smokes still pass | [x] |
|
||||
| P471-36 | Regression: notifications phase 469 smokes still pass | [x] |
|
||||
| P471-37 | Boot: session ready gate | [x] |
|
||||
| P471-38 | Boot: pear run gate | [x] |
|
||||
| P471-39 | Module: `pearcord-platform` README threads section | [x] |
|
||||
| P471-40 | Module: `pearcord-threads` README accuracy | [x] |
|
||||
| P471-41 | Smoke: platform-thread-span-metadata-extend | [x] |
|
||||
| P471-42 | Mesh: thread archive gossip roundtrip re-verify | [x] |
|
||||
| P471-43 | Mesh: forum post gossip roundtrip re-verify | [x] |
|
||||
| P471-44 | UI: threads filter mention/pinned/muted re-verify | [x] |
|
||||
| P471-45 | UI: thread read live region extend | [x] |
|
||||
| P471-46 | Inbox: thread notification jump re-verify | [x] |
|
||||
| P471-47 | Search: thread read cache invalidation re-verify | [x] |
|
||||
| P471-48 | UI: thread bar unread badge polish | [x] |
|
||||
| P471-49 | UI: forum search stale badge re-verify | [x] |
|
||||
| P471-50 | Phase 472 moderation depth (v0.8.435) | [x] |
|
||||
|
||||
**Next:** P471-1–P471-49.
|
||||
**Next:** ~~Phase 471~~ (complete). `syncThreadsPanelsDuringGuildLoading`; extended threads/forum guild-loading guards + `#composer-thread-hint`; platform thread/forum span metadata + `error:` logs; clipboard thread meta; bundle `test:phase471-threads-forum`. Phase 472 planned (50 items).
|
||||
|
||||
---
|
||||
|
||||
### Phase 472 — Moderation depth (v0.8.435)
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P472-1 | Moderation: ban member roundtrip re-verify | [ ] |
|
||||
| P472-2 | Moderation: kick member roundtrip re-verify | [ ] |
|
||||
| P472-3 | Moderation: timeout member roundtrip re-verify | [ ] |
|
||||
| P472-4 | Moderation: unban roundtrip re-verify | [ ] |
|
||||
| P472-5 | Audit: export log roundtrip re-verify | [ ] |
|
||||
| P472-6 | UI: `syncModerationPanelsDuringGuildLoading` wrapper extend | [ ] |
|
||||
| P472-7 | UI: ban list guild-loading guard extend | [ ] |
|
||||
| P472-8 | UI: audit log panel guild-loading guard extend | [ ] |
|
||||
| P472-9 | UI: automod panel guild-loading guard extend | [ ] |
|
||||
| P472-10 | Platform: `ban.member` span metadata extend | [ ] |
|
||||
| P472-11 | Platform: `kick.member` span metadata extend | [ ] |
|
||||
| P472-12 | Platform: `timeout.member` span metadata extend | [ ] |
|
||||
| P472-13 | Platform: `audit.export` span metadata extend | [ ] |
|
||||
| P472-14 | Logging: dev-log **moderation-errors** filter tighten | [ ] |
|
||||
| P472-15 | Logging: dev-log **audit-errors** filter tighten | [ ] |
|
||||
| P472-16 | Logging: dev-log clipboard moderation meta extend | [ ] |
|
||||
| P472-17 | Agentctl: ban member headless re-verify | [ ] |
|
||||
| P472-18 | Agentctl: kick member headless re-verify | [ ] |
|
||||
| P472-19 | Agentctl: combined phase472 moderation bundle | [ ] |
|
||||
| P472-20 | Smoke: moderation-guild-loading-extend | [ ] |
|
||||
| P472-21 | Smoke: moderation-panels-guild-loading-extend | [ ] |
|
||||
| P472-22 | Smoke: dev-log-moderation-errors-tighten | [ ] |
|
||||
| P472-23 | Smoke: dev-log-audit-errors-tighten | [ ] |
|
||||
| P472-24 | UI: composer moderation hint | [ ] |
|
||||
| P472-25 | UI: ban list empty-state hints polish | [ ] |
|
||||
| P472-26 | UI: audit log filter chips keyboard re-verify | [ ] |
|
||||
| P472-27 | UI: profile mod actions polish | [ ] |
|
||||
| P472-28 | Permissions: ban gate toast polish | [ ] |
|
||||
| P472-29 | Permissions: kick gate toast polish | [ ] |
|
||||
| P472-30 | Permissions: timeout gate toast polish | [ ] |
|
||||
| P472-31 | Docs: `MODERATION.md` refresh | [ ] |
|
||||
| P472-32 | Docs: `AUDIT_LOG.md` refresh | [ ] |
|
||||
| P472-33 | Docs: `AGENTCTL.md` phase 472 bundle | [ ] |
|
||||
| P472-34 | Regression: threads phase 471 smokes still pass | [ ] |
|
||||
| P472-35 | Regression: search phase 470 smokes still pass | [ ] |
|
||||
| P472-36 | Boot: session ready gate | [ ] |
|
||||
| P472-37 | Boot: pear run gate | [ ] |
|
||||
| P472-38 | Module: `pearcord-platform` README moderation section | [ ] |
|
||||
| P472-39 | Module: `pearcord-automod` README accuracy | [ ] |
|
||||
| P472-40 | Smoke: platform-moderation-span-metadata-extend | [ ] |
|
||||
| P472-41 | Mesh: ban gossip roundtrip re-verify | [ ] |
|
||||
| P472-42 | Mesh: audit log sync roundtrip re-verify | [ ] |
|
||||
| P472-43 | UI: automod rule list keyboard roving re-verify | [ ] |
|
||||
| P472-44 | UI: audit export signed CSV badge polish | [ ] |
|
||||
| P472-45 | UI: member profile timeout badge polish | [ ] |
|
||||
| P472-46 | Smoke: dev-log-clipboard-moderation-meta extend | [ ] |
|
||||
| P472-47 | UI: composer autofocus after mod action re-verify | [ ] |
|
||||
| P472-48 | Agentctl: audit export headless re-verify | [ ] |
|
||||
| P472-49 | UI: lurker mod deny toast polish | [ ] |
|
||||
| P472-50 | Phase 473 roles depth (v0.8.436) | [ ] |
|
||||
|
||||
**Next:** P472-1–P472-49.
|
||||
|
||||
---
|
||||
|
||||
@@ -10775,6 +10834,7 @@ Absorbed into Phase 273 (P273-5–P273-8, P273-11–P273-12). See Phase 274 for
|
||||
|
||||
### Changelog
|
||||
|
||||
- **2026-05-24** — v0.8.434: Phase 471 — `syncThreadsPanelsDuringGuildLoading`; extended threads/forum guild-loading guards + `#composer-thread-hint`; platform `thread.create`/`thread.archive`/`forum.post` span metadata + `error:` logs; clipboard `threadsPanelFilter`/`activeThreadParentId`/`forumTagFilter`; thread-read live region extend; bundle `test:phase471-threads-forum` + agentctl (+8 smokes). Phase 472 planned (50 items).
|
||||
- **2026-05-24** — v0.8.433: Phase 470 — `syncSearchPanelsDuringGuildLoading`; extended search/pins guild-loading guards + `#composer-search-hint`; platform `guild.search`/`pin.message`/`pin.unpin` span metadata (`meshHitCount`/`localHitCount`/`pinCount`); clipboard `searchIncludeMesh`/`searchMeshHitCount`/`searchLocalHitCount`; bundle `test:phase470-search-pins` + agentctl (+7 smokes). Phase 471 planned (50 items).
|
||||
- **2026-05-24** — v0.8.432: Phase 469 — `syncNotificationPanelsDuringGuildLoading`; extended notif panel guild-loading guards + `#composer-notif-hint` + `#thread-read-live`; platform notification/inbox span metadata + `error:` logs; clipboard `notifInboxFilter`/`notificationUnreadFiltered`/`guildUnreadBadgeTotal`; bundle `test:phase469-notifications-inbox` + agentctl (+8 smokes). Phase 470 planned (50 items).
|
||||
- **2026-05-24** — v0.8.431: Phase 468 — `syncDiscoveryPanelsDuringGuildLoading`; explore modal + contacts/DM sidebar guards; composer DM hint + 🔒 E2E badge; `dm.open`/`discovery.list`/`contacts.accept` span metadata + `error:` logs; clipboard `discoveryFilterTag`/`dmChannelCount`/`contactsPendingCount`; bundle `test:phase468-discovery-dm` + agentctl (+7 smokes). Phase 469 planned (50 items).
|
||||
|
||||
Reference in New Issue
Block a user