Document Phase 295 completion and plan Phase 296 (v0.8.257).

Roadmap marks guild loading progress, settings debounce, mention UX, diagnostics, and agentctl coverage done; adds 20-item Phase 296 sprint.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-05-23 06:40:26 -04:00
co-authored by Cursor
parent 24f58e612b
commit 202f0d90c9
3 changed files with 68 additions and 25 deletions
+6 -1
View File
@@ -14,11 +14,12 @@ The guild/DM composer (`#message-input` in `apps/pearcord/ui/app.js`) supports m
- Typing `@` at a word boundary opens the mention list (cursor-aware; `[email protected]` does not trigger).
- Click the **@** toolbar button to insert `@` at the caret and open the picker (v0.8.256).
- **Shift+@** inserts `@channel` (notify this channel) in guild mode (v0.8.257).
- **↑/↓** navigate; **Tab** or **Enter** inserts the highlighted mention.
- Candidates: `@everyone`, `@here`, custom roles, guild members (`memberName`), and platform `mentionNames` (username, display name, nickname).
- Mention query resets the highlight index when the filter text changes.
Rendered messages highlight mentions of the current user with the `.mention-self` class (username, display name, nickname) via `formatMessageContent` in `pearcord-shared` (v0.8.256).
Rendered messages highlight mentions of the current user with the `.mention-self` class (username, display name, nickname) via `formatMessageContent` in `pearcord-shared` (v0.8.256). When a channel has mention alerts, opening it scrolls to the first `.mention-self` in the message list (v0.8.257).
## Slash commands
@@ -39,4 +40,8 @@ npm run test:composer-slash-picker
npm run test:agentctl-composer-mention
npm run test:composer-mention-btn
npm run test:mention-self-highlight
npm run test:composer-shift-channel-mention
npm run test:mention-scroll-on-open
```
`@channel` is listed in the mention autocomplete in guild channels (v0.8.257).
+8
View File
@@ -122,6 +122,12 @@ When the UI sends `leave-voice` but the user is not in a voice channel, ui-flow
If session restore or guild load exceeds **3 seconds**, the session loading card shows an indeterminate progress bar (`#session-boot-progress`) (v0.8.256). The same bar appears during long `view.guildLoading` switches.
The guild switch overlay (`#guild-loading-overlay`) shows the same indeterminate bar after **3 seconds** while `view.guildLoading` is true (v0.8.257).
When `view.sessionError` is set on the boot card, an **Open diagnostics** button appears and focuses the panel at filter **All** (v0.8.257).
**Clear composer** removes only buffered lines with `scope: composer` from the diagnostics panel (v0.8.257); the header `composer ×N` badge updates immediately.
## Smoke tests
```bash
@@ -135,6 +141,8 @@ cd apps/pearcord && npm run test:guild-search-no-viewable-skip
cd apps/pearcord && npm run test:dev-log-composer-badge
cd apps/pearcord && npm run test:leave-voice-noop
cd apps/pearcord && npm run test:session-boot-progress
cd apps/pearcord && npm run test:guild-loading-progress
cd apps/pearcord && npm run test:settings-prefs-nav-debounce
```
`select-guild` IPC spans log **INFO** (not WARN) when the guild mesh flush was bounded (`PEARCORD_GUILD_SWARM_FLUSH_MS`). `session.startup` uses the same rule: slow startup after a bounded initial guild load stays **INFO**.
+54 -24
View File
@@ -2628,7 +2628,7 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
| P292-19 | Boot: chain Phase 292 smokes | [x] |
| P292-20 | Phase 293 production polish sprint (v0.8.255) | [x] |
**Next:** Phase 293 complete · Phase 294 complete · Phase 295 active.
**Next:** Phase 295 complete · Phase 296 active.
---
@@ -2657,7 +2657,7 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
| P293-19 | Settings modal: responsive narrow viewport stack (P292-16) | [x] |
| P293-20 | Phase 294 production polish sprint (v0.8.256) | [x] |
**Next:** Phase 294 complete · Phase 295 active.
**Next:** Phase 295 complete · Phase 296 active.
---
@@ -2684,9 +2684,9 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
| P294-17 | Companion: hint when `pearcord://settings` received | [x] |
| P294-18 | Logging: composer trace count badge in diagnostics header | [x] |
| P294-19 | Boot: chain Phase 294 smokes (+6) | [x] |
| P294-20 | Phase 295 production polish sprint (v0.8.257) | [ ] |
| P294-20 | Phase 295 production polish sprint (v0.8.257) | [x] |
**Next:** Phase 295.
**Next:** Phase 295 complete · Phase 296 active.
---
@@ -2694,28 +2694,57 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
| ID | Item | Status |
|----|------|--------|
| P295-1 | Guild loading overlay: indeterminate progress after 3s (mirror session boot) | [ ] |
| P295-2 | Settings: debounce `update-user-prefs` on sidebar arrow-key navigation | [ ] |
| P295-3 | Deep link: apply `section` query on `pearcord://settings` open | [ ] |
| P295-4 | Composer: Shift+@ inserts `@channel` mention mode | [ ] |
| P295-5 | Message list: optional scroll-to-first-self-mention on channel open | [ ] |
| P295-6 | Notifications inbox: `.mention-self` styling in preview snippets | [ ] |
| P295-7 | Agentctl: `leave-voice-noop` headless scenario | [ ] |
| P295-8 | Agentctl: `format-settings-deep-link` IPC roundtrip | [ ] |
| P295-9 | Diagnostics: **Clear composer** button (scope=composer lines only) | [ ] |
| P295-10 | Session error card: link to open diagnostics when boot fails | [ ] |
| P295-11 | Platform: `guild.open` child span for `listChannels` vs `listMembers` | [ ] |
| P295-12 | Voice bar: skip `leave-voice` IPC when `hasActiveVoiceMedia()` false | [ ] |
| P295-13 | Smoke: `test:guild-loading-progress` | [ ] |
| P295-14 | Smoke: `test:settings-prefs-nav-debounce` | [ ] |
| P295-15 | Smoke: `test:settings-deep-link-section` | [ ] |
| P295-16 | Docs: `LOGGING.md` composer badge + leave-voice noop | [ ] |
| P295-17 | Docs: `COMPOSER.md` @ button + self-mention highlight | [ ] |
| P295-18 | Docs: `IPC.md` `format-settings-deep-link` | [ ] |
| P295-19 | Boot: chain Phase 295 smokes | [ ] |
| P295-1 | Guild loading overlay: indeterminate progress after 3s (mirror session boot) | [x] |
| P295-2 | Settings: debounce `update-user-prefs` on sidebar arrow-key navigation | [x] |
| P295-3 | Deep link: apply `section` query on `pearcord://settings` open | [x] |
| P295-4 | Composer: Shift+@ inserts `@channel` mention mode | [x] |
| P295-5 | Message list: scroll-to-first-self-mention when channel has mention alerts | [x] |
| P295-6 | Notifications inbox: `.mention-self` styling in preview snippets | [x] |
| P295-7 | Agentctl: `leave-voice-noop` headless scenario | [x] |
| P295-8 | Agentctl: `format-settings-deep-link` IPC roundtrip | [x] |
| P295-9 | Diagnostics: **Clear composer** button (scope=composer lines only) | [x] |
| P295-10 | Session error card: **Open diagnostics** button when boot fails | [x] |
| P295-11 | Platform: `guild.open.listChannels` + `guild.open.listMembers` spans | [x] |
| P295-12 | Voice: skip `leave-voice` IPC when `hasActiveVoiceMedia()` false (stage + rail) | [x] |
| P295-13 | Smoke: `test:guild-loading-progress` | [x] |
| P295-14 | Smoke: `test:settings-prefs-nav-debounce` | [x] |
| P295-15 | Smoke: `test:settings-deep-link-section` | [x] |
| P295-16 | Docs: `LOGGING.md` clear composer + session diagnostics link | [x] |
| P295-17 | Docs: `COMPOSER.md` Shift+@ channel + mention scroll | [x] |
| P295-18 | Docs: `IPC.md` + agentctl scenarios | [x] |
| P295-19 | Boot: chain Phase 295 smokes (+6) | [x] |
| P295-20 | Phase 296 production polish sprint (v0.8.258) | [ ] |
**Next:** P295-1P295-19.
**Next:** Phase 296.
---
### Phase 296 — Diagnostics depth & settings links XVII (v0.8.258)
| ID | Item | Status |
|----|------|--------|
| P296-1 | Server settings: **Copy settings link** with guild scope + current section | [ ] |
| P296-2 | Settings deep link: open guild settings when `scope=guild` and guild loaded | [ ] |
| P296-3 | Diagnostics JSONL export: include `composerTraceCount` metadata line | [ ] |
| P296-4 | Session boot failure: auto-open diagnostics panel once | [ ] |
| P296-5 | Guild loading overlay: show elapsed seconds in label after 6s | [ ] |
| P296-6 | Platform `view(light)`: child span for parallel channel/member fetch | [ ] |
| P296-7 | Composer: Escape closes mention picker before clearing draft | [ ] |
| P296-8 | Mention picker: highlight `@channel` / role rows with color swatch | [ ] |
| P296-9 | Notifications: jump to message on inbox row click (existing) + mark read polish | [ ] |
| P296-10 | Agentctl: `navigate-deep-link` settings section UI roundtrip scenario | [ ] |
| P296-11 | Agentctl: mesh `send-message` with `@channel` token | [ ] |
| P296-12 | Companion: guild-loading progress bar (mirror desktop) | [ ] |
| P296-13 | Smoke: `test:dev-log-clear-composer` | [ ] |
| P296-14 | Smoke: `test:session-diagnostics-link` | [ ] |
| P296-15 | Smoke: `test:composer-shift-channel-mention` | [ ] |
| P296-16 | Smoke: `test:mention-scroll-on-open` | [ ] |
| P296-17 | Docs: `USER_SETTINGS.md` deep links + copy link | [ ] |
| P296-18 | Docs: `pearcord-agentctl` README scenario table update | [ ] |
| P296-19 | Boot: chain Phase 296 smokes | [ ] |
| P296-20 | Phase 297 production polish sprint (v0.8.259) | [ ] |
**Next:** P296-1P296-19.
---
@@ -4161,6 +4190,7 @@ Absorbed into Phase 273 (P273-5P273-8, P273-11P273-12). See Phase 274 for
### Changelog
- **2026-05-23** — v0.8.257: Phase 295 — guild loading progress; settings section prefs debounce; Shift+@ channel mention; mention scroll + inbox highlight; clear composer diagnostics; session error diagnostics button; `guild.open.listChannels/Members` spans; agentctl leave-voice + settings deep link scenarios; +6 smokes. Phase 296 planned.
- **2026-05-23** — v0.8.256: Phase 294 — leave-voice noop log; session boot progress bar; composer `@` button; `.mention-self` highlight; settings copy link IPC; diagnostics composer badge; companion settings hint; +6 smokes. Phase 295 planned.
- **2026-05-23** — v0.8.255: Phase 294 (partial) — voice leave onclick fix; `pearcord://settings` deep link; bell=inbox; settings responsive CSS + profile row; composer diagnostics filter; mesh roundtrip smoke; `SERVER_SETTINGS.md`; Phase 292/293 closed. Phase 294 continued.
- **2026-05-23** — v0.8.254: Phase 293 — composer emoji picker toggle + mention fixes; diagnostics JSONL save to storage; settings section persist + keyboard nav; agentctl `@everyone` scenario; +5 smokes. Phase 294 planned.