Document Phase 405 forum inbox and plan Phase 406 (v0.8.368).
Complete forum roadmap phase with search, composer, notifications, and forum channel keyboard docs plus the next guild inbox phase. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -190,6 +190,8 @@ npm run test:mention-scroll-on-open
|
||||
|
||||
**v0.8.268:** Platform `@here` / `@everyone` checks use **parent channel** permissions in threads (same as `@channel`). Smoke: `npm run test:platform-here-thread-gate`.
|
||||
|
||||
**v0.8.368 (Phase 405):** Slowmode `aria-describedby` syncs on channel switch; composer `aria-label` reflects channel/thread context; @everyone thread toasts cite parent. Smokes: `npm run test:composer-slowmode-describedby-channel`, `npm run test:composer-aria-label`, `npm run test:composer-mention-everyone-thread-parent-toast`.
|
||||
|
||||
**v0.8.367 (Phase 404):** @here permission errors in threads cite parent `#channel` by name. Smokes: `npm run test:composer-mention-here-thread-parent-toast`, `npm run test:companion-compose-guild-loading-verify`.
|
||||
|
||||
**v0.8.365 (Phase 402):** Slowmode `aria-describedby` syncs on channel switch (`#composer-slowmode-hint`). Composer `aria-label` reflects channel/thread context. @everyone permission errors in threads cite parent `#channel`. Smokes: `npm run test:composer-slowmode-describedby-channel`, `npm run test:composer-aria-label`, `npm run test:composer-mention-everyone-thread-parent-toast`.
|
||||
|
||||
@@ -30,6 +30,7 @@ P2P sync uses existing `CHANNEL_CREATE` / `CHANNEL_UPDATE` / `MESSAGE_CREATE` go
|
||||
- Forum view: post list (title, snippet, reply count) — not a message timeline
|
||||
- **New Post** in header → title + body modal
|
||||
- Composer disabled on forum channel; reply inside the post thread
|
||||
- **v0.8.368:** Forum post list keyboard roving — **Home** / **End**, **↑** / **↓**, **PageUp** / **PageDown** ±5 on `.forum-post-row` when `#messages` has focus. Smoke: `npm run test:forum-post-list-keyboard`
|
||||
|
||||
## View fields
|
||||
|
||||
|
||||
@@ -98,6 +98,8 @@ Inbox rows include `messageId` for jump navigation. See [MESSAGE_DEEP_LINKS.md](
|
||||
| `markAllNotificationsRead()` | Clear inbox unread |
|
||||
| `markChannelRead()` | Also clears inbox rows for channel and zeros `MENTION_ALERTS` for the channel |
|
||||
|
||||
**v0.8.368:** **Mark notification read** on forum channels dismisses thread-family desktop for all forum post threads (`mark-notification-read-cleared` IPC, Phase 405 re-verified). Smokes: `npm run test:mark-notification-read-forum-thread-family-desktop`, `npm run test:agentctl-thread-inbox-mark-notification-read`, `npm run test:forum-post-list-keyboard`.
|
||||
|
||||
**v0.8.367:** **Open notification** on text channels dismisses thread-family desktop for all threads under the parent channel (`open-notification` IPC, Phase 404 re-verified). Smokes: `npm run test:open-notification-channel-thread-family-desktop`, `npm run test:agentctl-thread-inbox-mark-channel-read`.
|
||||
|
||||
**v0.8.366:** **Mark channel read** on guild text channels dismisses thread-family desktop for all threads under the parent (`mark-channel-read-cleared` IPC, Phase 403 re-verified). Smokes: `npm run test:mark-channel-read-channel-thread-family-desktop`, `npm run test:agentctl-thread-inbox-mark-channel-read`, `npm run test:navigate-guild-thread-family-desktop`.
|
||||
|
||||
+51
-21
@@ -5884,28 +5884,57 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P405-1 | Search: forum sidecar stale age when guild scope cached (verify) | [ ] |
|
||||
| P405-2 | Search mesh refresh: remove `aria-pressed` from refresh button while idle (verify) | [ ] |
|
||||
| P405-3 | Platform: `setSearch` mesh-on logs scope on cache miss at debug (verify) | [ ] |
|
||||
| P405-4 | Composer: slowmode `aria-describedby` sync on channel switch (verify) | [ ] |
|
||||
| P405-5 | Notifications: mark-notification-read clears forum thread family (verify) | [ ] |
|
||||
| P405-6 | Composer: mention-everyone thread toast cites parent (verify) | [ ] |
|
||||
| P405-7 | UI: channel list PageUp/Down jumps 5 channels (verify) | [ ] |
|
||||
| P405-8 | Voice: remote mute pill name aria bundle smoke (verify) | [ ] |
|
||||
| P405-9 | Logging: Clipboard JSONL `sessionError` smoke (verify) | [ ] |
|
||||
| P405-10 | Diagnostics filter: **Voice errors** bundle smoke (verify) | [ ] |
|
||||
| P405-11 | Agentctl: forum search mesh-off then mesh-on refresh (reuse) | [ ] |
|
||||
| P405-12 | Agentctl: thread inbox mark-notification-read roundtrip (reuse) | [ ] |
|
||||
| P405-13 | Companion: channels panel verify disabled while guild loading | [ ] |
|
||||
| P405-14 | UI: server rail PageUp/Down jumps 5 guild icons (verify) | [ ] |
|
||||
| P405-15 | Smoke: `test:navigate-forum-thread-family-desktop` | [ ] |
|
||||
| P405-16 | Smoke: `test:platform-setsearch-mesh-on-cache-miss` | [ ] |
|
||||
| P405-17 | Docs: `SEARCH.md` + `COMPOSER.md` forum inbox refresh | [ ] |
|
||||
| P405-18 | Docs: `NOTIFICATIONS.md` mark-notification-read forum family | [ ] |
|
||||
| P405-19 | Boot: chain Phase 405 progressive smokes | [ ] |
|
||||
| P405-20 | Phase 406 guild inbox & voice depth (v0.8.369) | [ ] |
|
||||
| P405-1 | Search: forum sidecar stale age when guild scope cached (verify) | [x] |
|
||||
| P405-2 | Search mesh refresh: remove `aria-pressed` from refresh button while idle (verify) | [x] |
|
||||
| P405-3 | Platform: `setSearch` mesh-on logs scope on cache miss at debug (verify) | [x] |
|
||||
| P405-4 | Composer: slowmode `aria-describedby` sync on channel switch (verify) | [x] |
|
||||
| P405-5 | Notifications: mark-notification-read clears forum thread family (verify) | [x] |
|
||||
| P405-6 | Composer: mention-everyone thread toast cites parent (verify) | [x] |
|
||||
| P405-7 | UI: channel list PageUp/Down jumps 5 channels (verify) | [x] |
|
||||
| P405-8 | Voice: remote mute pill name aria bundle smoke (verify) | [x] |
|
||||
| P405-9 | Logging: Clipboard JSONL `sessionError` smoke (verify) | [x] |
|
||||
| P405-10 | Diagnostics filter: **Voice errors** bundle smoke (verify) | [x] |
|
||||
| P405-11 | Agentctl: forum search mesh-off then mesh-on refresh (reuse) | [x] |
|
||||
| P405-12 | Agentctl: thread inbox mark-notification-read roundtrip (reuse) | [x] |
|
||||
| P405-13 | Companion: channels panel verify disabled while guild loading | [x] |
|
||||
| P405-14 | UI: forum post list roving keyboard Home/End/PageUp/Down ±5 | [x] |
|
||||
| P405-15 | Smoke: `test:navigate-forum-thread-family-desktop` | [x] |
|
||||
| P405-16 | Smoke: `test:platform-setsearch-mesh-on-cache-miss` | [x] |
|
||||
| P405-17 | Docs: `SEARCH.md` + `COMPOSER.md` forum inbox refresh | [x] |
|
||||
| P405-18 | Docs: `NOTIFICATIONS.md` mark-notification-read forum family | [x] |
|
||||
| P405-19 | Boot: chain Phase 405 progressive smokes | [x] |
|
||||
| P405-20 | Phase 406 guild inbox & voice depth (v0.8.369) | [x] |
|
||||
|
||||
**Next:** P405-1–P405-19.
|
||||
**Next:** ~~Phase 405~~ (complete).
|
||||
|
||||
---
|
||||
|
||||
### Phase 406 — Guild inbox & voice depth (v0.8.369)
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P406-1 | Search: guild sidecar stale age when channel scope cached (verify) | [ ] |
|
||||
| P406-2 | Search mesh refresh: remove `aria-live` from mesh chip while idle (verify) | [ ] |
|
||||
| P406-3 | Platform: `refreshSearch` mesh-on logs scope on cache miss at debug (verify) | [ ] |
|
||||
| P406-4 | Voice: stage audience/pending pill `aria-current` when active (verify) | [ ] |
|
||||
| P406-5 | Notifications: mark-channel-read clears guild thread family (verify) | [ ] |
|
||||
| P406-6 | Composer: mention-role thread toast cites parent (verify) | [ ] |
|
||||
| P406-7 | UI: server rail typeahead wraps before focused guild (verify) | [ ] |
|
||||
| P406-8 | Voice: remote streaming pill name aria bundle smoke (verify) | [ ] |
|
||||
| P406-9 | Logging: Clipboard JSONL `guildLoading` bool smoke (verify) | [ ] |
|
||||
| P406-10 | Diagnostics filter: **IPC errors** bundle smoke (verify) | [ ] |
|
||||
| P406-11 | Agentctl: guild search mesh-off then mesh-on refresh (reuse) | [ ] |
|
||||
| P406-12 | Agentctl: thread inbox mark-channel-read roundtrip (reuse) | [ ] |
|
||||
| P406-13 | Companion: messages panel verify disabled while guild loading | [ ] |
|
||||
| P406-14 | UI: channel list voice roster rows in roving focus (verify) | [ ] |
|
||||
| P406-15 | Smoke: `test:navigate-guild-thread-family-desktop` | [ ] |
|
||||
| P406-16 | Smoke: `test:platform-refresh-mesh-on-cache-miss` | [ ] |
|
||||
| P406-17 | Docs: `SEARCH.md` + `VOICE.md` guild inbox refresh | [ ] |
|
||||
| P406-18 | Docs: `NOTIFICATIONS.md` mark-channel-read guild family | [ ] |
|
||||
| P406-19 | Boot: chain Phase 406 progressive smokes | [ ] |
|
||||
| P406-20 | Phase 407 channel inbox & threads depth (v0.8.370) | [ ] |
|
||||
|
||||
**Next:** P406-1–P406-19.
|
||||
|
||||
---
|
||||
|
||||
@@ -7351,6 +7380,7 @@ Absorbed into Phase 273 (P273-5–P273-8, P273-11–P273-12). See Phase 274 for
|
||||
|
||||
### Changelog
|
||||
|
||||
- **2026-05-23** — v0.8.368: Phase 405 — forum sidecar stale guild meta; forum post list keyboard roving; server/channel page jumps verified; mark-notification-read forum family; agentctl forum search + thread inbox; boot chain. Phase 406 planned.
|
||||
- **2026-05-23** — v0.8.367: Phase 404 — channel sidecar stale forum meta; threads filter Home/End + mention PageUp/Down ±5; members typeahead wrap; open-notification channel family; agentctl guild search + thread inbox; boot chain. Phase 405 planned.
|
||||
- **2026-05-23** — v0.8.366: Phase 403 — guild sidecar stale channel meta; stage audience aria-current; voice roster channel-list roving; server rail typeahead wrap; agentctl guild search + thread inbox; boot chain. Phase 404 planned.
|
||||
- **2026-05-23** — v0.8.365: Phase 402 — forum sidecar stale guild meta; server rail PageUp/Down ±5; channel list page jump verified; mark-notification-read forum family; agentctl forum search + thread inbox; boot chain. Phase 403 planned.
|
||||
|
||||
@@ -352,6 +352,8 @@ See also [FORUM_ARCHIVE_SEARCH.md](./FORUM_ARCHIVE_SEARCH.md).
|
||||
|
||||
Chat header: scope `<select>` + search input. Guild hits show `#channel` tag; click a hit to jump channels (`select-channel`). **Recent searches** chips appear when guild scope is active and the query is empty (v0.8.115). **Matches** toggle (guild scope, v0.8.260) filters to matching hits only.
|
||||
|
||||
**v0.8.368 (Phase 405):** Forum sidecar stale age falls back to `guildMetaStale.fetchedAt` when forum scope uses cached guild meta. Mesh **↻** drops `aria-pressed` while idle. `setSearch` mesh-on logs `scope` on cache miss at debug. Smokes: `npm run test:forum-sidecar-stale-guild-meta`, `npm run test:search-mesh-refresh-btn-no-pressed-idle`, `npm run test:platform-setsearch-mesh-on-cache-miss`.
|
||||
|
||||
**v0.8.367 (Phase 404):** Channel sidecar stale age falls back to `forumMetaStale.fetchedAt` when channel scope uses cached forum meta. Mesh **↻** drops `aria-disabled` while idle. `refreshSearch` mesh-on logs `scope` on cache hit at debug. Smokes: `npm run test:channel-sidecar-stale-forum-meta`, `npm run test:search-mesh-refresh-btn-no-disabled-idle`, `npm run test:platform-refresh-mesh-on-cache-hit`.
|
||||
|
||||
**v0.8.366 (Phase 403):** Guild sidecar stale age falls back to `channelMetaStale.fetchedAt` when guild scope uses cached channel meta. Mesh chip drops `aria-live` while idle. `refreshSearch` mesh-on logs `scope` on cache miss at debug. Smokes: `npm run test:guild-sidecar-stale-channel-meta`, `npm run test:search-mesh-chip-aria-live-idle`, `npm run test:platform-refresh-mesh-on-cache-miss`.
|
||||
|
||||
Reference in New Issue
Block a user