docs: complete Phase 415 (v0.8.378) and plan Phase 416 notifications
Voice, voice media, and stage channel docs refresh; logging and agentctl bundles; Phase 416 notifications and inbox roadmap. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -163,6 +163,14 @@ npm run agentctl:headless -- headless mesh run scenarios/agentctl-onboard.json
|
||||
|
||||
**Composer mention** (`scenarios/agentctl-composer-mention.json`): `@everyone` send + `messageContentIncludes` wait.
|
||||
|
||||
**Voice & stage (v0.8.378):** Primary Phase 415 verification — headless bundle without full boot chain:
|
||||
|
||||
```bash
|
||||
PEARCORD_SKIP_MESH_ROUNDTRIP=1 npm run test:agentctl-phase415-voice
|
||||
```
|
||||
|
||||
Runs DM+voice scenario and voice channel leave roundtrip.
|
||||
|
||||
**Moderation & safety (v0.8.377):** Primary Phase 414 verification — headless bundle without full boot chain:
|
||||
|
||||
```bash
|
||||
|
||||
@@ -93,6 +93,8 @@ If logs show slow `guild.open` / `session.startup` spans (>2s, logged as `WARN`)
|
||||
|
||||
**v0.8.369:** If `guild.joinMesh()` does not resolve within `PEARCORD_GUILD_SWARM_FLUSH_MS + 5000`, the platform logs `guild joinMesh bounded; continuing in background` at **INFO**, sets `guildMeshBounded`, and completes `guild.open` instead of failing the session.
|
||||
|
||||
**v0.8.378 (Phase 415):** Dev log clipboard + save JSONL meta include `myVoiceChannelId` when connected to voice. **Voice errors** diagnostics filter re-verified. Smokes: `npm run test:dev-log-clipboard-voice-channel`, `npm run test:dev-log-voice-errors-bundle`.
|
||||
|
||||
**v0.8.376 (Phase 413):** Dev log clipboard + save JSONL meta include `appVersion` and `filterLabel` (active diagnostics filter). **Session startup errors** filter re-verified. Smokes: `npm run test:dev-log-clipboard-app-version`, `npm run test:dev-log-clipboard-filter-label-only`, `npm run test:session-startup-errors-filter`.
|
||||
|
||||
**v0.8.375 (Phase 412):** Dev log clipboard + save JSONL meta include `discoveryPublicCount` (live listing count for Explore debugging). **Mesh errors** diagnostics filter re-verified. Smokes: `npm run test:dev-log-clipboard-discovery-count`, `npm run test:dev-log-mesh-errors-filter`.
|
||||
|
||||
+51
-21
@@ -6176,28 +6176,57 @@ Fix guild switching, session boot gating, and theme/prefs application before mic
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P415-1 | Voice: join/leave occupancy gossip (verify) | [ ] |
|
||||
| P415-2 | Voice: listen-only join when speak denied (verify) | [ ] |
|
||||
| P415-3 | Stage: audience/speaker/pending role pills (verify) | [ ] |
|
||||
| P415-4 | Stage: request-to-speak flow + aria-pressed (verify) | [ ] |
|
||||
| P415-5 | Voice roster: mute/deafen/streaming pills aria (verify) | [ ] |
|
||||
| P415-6 | Voice: Escape returns focus to channel list (verify) | [ ] |
|
||||
| P415-7 | UI: channel-list voice roster roving focus (verify) | [ ] |
|
||||
| P415-8 | Voice media: partial-connect quality chips (verify) | [ ] |
|
||||
| P415-9 | Logging: dev-log voice errors filter bundle (verify) | [ ] |
|
||||
| P415-10 | Platform: voice user limit toast (verify) | [ ] |
|
||||
| P415-11 | Agentctl: DM + voice scenario (headless) | [ ] |
|
||||
| P415-12 | Agentctl: voice channel join path (headless) | [ ] |
|
||||
| P415-13 | Companion: voice panel aria during guild loading | [ ] |
|
||||
| P415-14 | UI: stream hover RTT/codec badges (verify) | [ ] |
|
||||
| P415-15 | Smoke: `test:voice` + `test:voice-media` | [ ] |
|
||||
| P415-16 | Smoke: `test:stage-audience-aria-current` | [ ] |
|
||||
| P415-17 | Docs: `VOICE.md` + `VOICE_MEDIA.md` polish refresh | [ ] |
|
||||
| P415-18 | Docs: stage bar keyboard/focus notes | [ ] |
|
||||
| P415-19 | Agentctl + targeted smokes (boot chain deferred) | [ ] |
|
||||
| P415-20 | Phase 416 notifications & inbox depth (v0.8.379) | [ ] |
|
||||
| P415-1 | Voice: join/leave occupancy gossip (verify) | [x] |
|
||||
| P415-2 | Voice: listen-only join when speak denied (verify) | [x] |
|
||||
| P415-3 | Stage: audience/speaker/pending role pills (verify) | [x] |
|
||||
| P415-4 | Stage: request-to-speak flow + aria-pressed (verify) | [x] |
|
||||
| P415-5 | Voice roster: mute/deafen/streaming pills aria (verify) | [x] |
|
||||
| P415-6 | Voice: Escape returns focus to channel list (verify) | [x] |
|
||||
| P415-7 | UI: channel-list voice roster roving focus (verify) | [x] |
|
||||
| P415-8 | Voice media: partial-connect quality chips (verify) | [x] |
|
||||
| P415-9 | Logging: dev-log voice errors filter bundle (verify) | [x] |
|
||||
| P415-10 | Platform: voice user limit toast (verify) | [x] |
|
||||
| P415-11 | Agentctl: DM + voice scenario (headless) | [x] |
|
||||
| P415-12 | Agentctl: voice channel join path (headless) | [x] |
|
||||
| P415-13 | Companion: voice panel aria during guild loading | [x] |
|
||||
| P415-14 | UI: stream hover RTT/codec badges (verify) | [x] |
|
||||
| P415-15 | Smoke: `test:voice` + `test:voice-media` | [x] |
|
||||
| P415-16 | Smoke: `test:stage-audience-aria-current` | [x] |
|
||||
| P415-17 | Docs: `VOICE.md` + `VOICE_MEDIA.md` polish refresh | [x] |
|
||||
| P415-18 | Docs: stage bar keyboard/focus notes | [x] |
|
||||
| P415-19 | Agentctl + targeted smokes (boot chain deferred) | [x] |
|
||||
| P415-20 | Phase 416 notifications & inbox depth (v0.8.379) | [x] |
|
||||
|
||||
**Next:** P415-1–P415-19.
|
||||
**Next:** ~~Phase 415~~ (complete). Verified via `test:agentctl-phase415-voice` + targeted smokes; dev-log `myVoiceChannelId`; stage-speaker smoke aligned with audience/pending aria-current. `pear run` boot gate; full boot chain deferred.
|
||||
|
||||
---
|
||||
|
||||
### Phase 416 — Notifications & inbox depth (v0.8.379)
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P416-1 | Notifications: mark-all-read clears inbox (verify) | [ ] |
|
||||
| P416-2 | Notifications: open-notification thread family desktop (verify) | [ ] |
|
||||
| P416-3 | Notifications: mark-channel-read guild thread family (verify) | [ ] |
|
||||
| P416-4 | Notifications: mark-notification-read forum family (verify) | [ ] |
|
||||
| P416-5 | Inbox: notification prefs mesh sync (verify) | [ ] |
|
||||
| P416-6 | UI: mark-all status banner aria-labelledby (verify) | [ ] |
|
||||
| P416-7 | Companion: notification panel aria when guild loading | [ ] |
|
||||
| P416-8 | Desktop: thread-family dismiss batch helpers (verify) | [ ] |
|
||||
| P416-9 | Logging: dev-log clipboard `notificationUnread` count (verify) | [ ] |
|
||||
| P416-10 | Diagnostics filter: **IPC errors** bundle re-verify | [ ] |
|
||||
| P416-11 | Agentctl: thread inbox mark-channel-read (headless) | [ ] |
|
||||
| P416-12 | Agentctl: thread inbox mark-notification-read (headless) | [ ] |
|
||||
| P416-13 | UI: notification row keyboard activate (verify) | [ ] |
|
||||
| P416-14 | Smoke: `test:navigate-guild-thread-family-desktop` | [ ] |
|
||||
| P416-15 | Smoke: `test:mark-notification-read-forum-thread-family-desktop` | [ ] |
|
||||
| P416-16 | Smoke: `test:open-notification-channel-thread-family-desktop` | [ ] |
|
||||
| P416-17 | Docs: `NOTIFICATIONS.md` inbox refresh | [ ] |
|
||||
| P416-18 | Docs: companion notification panel | [ ] |
|
||||
| P416-19 | Agentctl + targeted smokes (boot chain deferred) | [ ] |
|
||||
| P416-20 | Phase 417 threads & forum inbox depth (v0.8.380) | [ ] |
|
||||
|
||||
**Next:** P416-1–P416-19.
|
||||
|
||||
---
|
||||
|
||||
@@ -7643,6 +7672,7 @@ Absorbed into Phase 273 (P273-5–P273-8, P273-11–P273-12). See Phase 274 for
|
||||
|
||||
### Changelog
|
||||
|
||||
- **2026-05-23** — v0.8.378: Phase 415 — voice/voice-media/listen-only; stage aria-current + request pressed; roster pills; Escape→channel focus; stream hover RTT/codec; dev-log `myVoiceChannelId`; agentctl DM voice + voice leave (`test:agentctl-phase415-voice`); targeted smokes + `pear run` boot gate (full boot chain deferred). Phase 416 planned.
|
||||
- **2026-05-23** — v0.8.377: Phase 414 — automod/hooks/audit/worker smokes; automod error toast with rule detail; mod-digest member sync fix; agentctl slash/help (`test:agentctl-phase414-moderation`); `AUDIT.md`; targeted smokes + `pear run` boot gate (full boot chain deferred). Phase 415 planned.
|
||||
- **2026-05-23** — v0.8.376: Phase 413 — settings shell/deep-link/theme; role skip links; keyboard shortcuts; dev-log `appVersion` + filterLabel; agentctl help/slash (`test:agentctl-phase413-settings`); `SETTINGS.md` + `ACCESSIBILITY.md`; targeted smokes + `pear run` boot gate (full boot chain deferred). Phase 414 planned.
|
||||
- **2026-05-23** — v0.8.375: Phase 412 — discovery mesh + gossip; explore badge/filters/deep-link/hotkey; onboarding explore prompt; dev-log `discoveryPublicCount` + mesh errors filter; agentctl deep-link + onboard (`test:agentctl-phase412-explore`); targeted smokes + `pear run` boot gate (full boot chain deferred). Phase 413 planned.
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
**Stage** channels combine voice occupancy (`pearcord-voice`) with speaker roles (`pearcord-stage`). Members join as **audience** (muted). They may **request to speak**; moderators with `MANAGE_CHANNELS` approve them as **speakers** (unmuted).
|
||||
|
||||
**v0.8.378 (Phase 415):** Stage bar role pills expose `aria-current="true"` for your active role (audience, pending, or speaker). **Request to speak** uses `aria-pressed="true"` while pending. **Escape** from `#stage-bar` returns focus to the channel list (see `VOICE.md`). Smokes: `npm run test:stage-audience-aria-current`, `npm run test:stage-request-btn-aria-pressed`, `npm run test:stage-speaker-aria-current`, `npm run test:voice-panel-escape-channel-focus`.
|
||||
|
||||
## Channel type
|
||||
|
||||
| Field | Value |
|
||||
|
||||
@@ -196,6 +196,8 @@ Per-channel overwrites apply via `pearcord-channel-permissions` (see [CHANNEL_PE
|
||||
|
||||
**v0.8.205:** **Stream hover codec chip** — Video stream hover shows a dedicated codec badge (VP8/H264/etc.) deduped from the quality pill when Opus is not active. Smoke: `npm run test:stream-hover-codec-badge`. See [UI_FLOW.md](./UI_FLOW.md).
|
||||
|
||||
**v0.8.378 (Phase 415):** Voice occupancy + media, listen-only join, user-limit toast, roster mute/deafen/streaming aria bundles, Escape→channel list focus, and stream hover RTT/codec chips re-verified. Agentctl: `npm run test:agentctl-phase415-voice`. Smokes: `npm run test:voice`, `npm run test:voice-media`, `npm run test:voice-listen`, `npm run test:voice-panel-escape-channel-focus`, `npm run test:dev-log-clipboard-voice-channel`.
|
||||
|
||||
**v0.8.373 (Phase 410):** Remote listen-only pill + `.voice-roster-name` aria bundle re-verified alongside channel-list voice roster roving focus. Smokes: `npm run test:voice-roster-remote-listening-name-bundle`, `npm run test:channel-list-voice-roster-focus`.
|
||||
|
||||
**v0.8.372 (Phase 409):** Stage bar **Audience** and **Request pending** pills expose `aria-current="true"` when active (re-verified). Remote streaming pill + `.voice-roster-name` aria bundle verified. Channel-list voice roster rows join roving focus. Smokes: `npm run test:stage-audience-aria-current`, `npm run test:voice-roster-remote-streaming-name-bundle`, `npm run test:channel-list-voice-roster-focus`.
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
P2P voice **media plane** on the existing guild Hyperswarm mesh (no central SFU).
|
||||
|
||||
**v0.8.378 (Phase 415):** Protomux+Opus mesh roundtrip and partial-connect stream hover badges (RTT-only, codec chip) re-verified. Smokes: `npm run test:voice-media`, `npm run test:stream-hover-connected-rtt-only`, `npm run test:stream-hover-codec-badge`, `npm run test:agentctl-phase415-voice`.
|
||||
|
||||
## Modules
|
||||
|
||||
| Module | Role |
|
||||
|
||||
Reference in New Issue
Block a user