docs: Phase 804 guild 3-peer soundboard mesh fanout v0.8.771

Roadmap 50/50, release notes, and mesh/agentctl/soundboard documentation updates.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-06-03 22:50:22 -04:00
co-authored by Cursor
parent ee43f36aeb
commit 3a468a6c0c
10 changed files with 90 additions and 3 deletions
+2
View File
@@ -2,6 +2,8 @@
Autonomous agents and developers use **agentctl** to operate a running Pearcord desktop session or a headless in-process session — the same IPC contract as the UI ([IPC.md](./IPC.md)).
**v0.8.771 (Phase 804):** `runGuildMeshTripleSoundJourney` (3-peer soundboard). Bundle: `npm run test:ci-phase804`.
**v0.8.770 (Phase 803):** `runGuildMeshTripleStickerJourney` (3-peer custom sticker). Bundle: `npm run test:ci-phase803`.
**v0.8.769 (Phase 802):** `runGuildMeshTripleEmojiJourney` (3-peer custom emoji). Bundle: `npm run test:ci-phase802`.
+1 -1
View File
@@ -1,6 +1,6 @@
# Pearcord documentation index
All project documentation lives in **`pearcord-docs`** (`/Users/raven/dev/pearcord/docs/`). **Release:** v0.8.770 (Phase 803 — guild 3-peer custom sticker mesh fanout; Phase 802 — guild 3-peer custom emoji mesh fanout; Phase 801 — guild 3-peer channel delete fanout; Phase 800 — guild mesh channel create/delete propagation; Phase 799 — guild 3-peer channel settings slowmode fanout; Phase 798 — guild 3-peer channel topic & forum tag fanout; Phase 797 — guild channel topic & forum tag mesh sync; Phase 796 — guild 3-peer partition heal & presence reconcile; Phase 795 — guild 3-peer mesh message fanout; Phase 794 — guild channel settings mesh sync; Phase 793 — guild soundboard mesh sync; Phase 792 — guild pinned messages mesh sync; Phase 791 — guild custom stickers mesh sync; Phase 790 — guild custom emoji mesh sync; Phase 789 — guild message reactions mesh sync; Phase 788 — guild mesh reconnect hardening; Phase 787 — guild member custom roles mesh sync; Phase 786 — guild typing mesh sync; Phase 785 — guild voice occupancy mesh sync; Phase 784 — guild channel unread mesh sync; Phase 783 — guild sync watermark & message delta; Phase 782 — guild presence mesh sync; Phase 781 — member roster mesh sync; Phase 780 guild loading mesh; Phases 766779 settings/roles/permissions). **48h audit:** [DOC_AUDIT_2026-06.md](./DOC_AUDIT_2026-06.md). Platform mixin map: [PLATFORM_MIXINS.md](./PLATFORM_MIXINS.md).
All project documentation lives in **`pearcord-docs`** (`/Users/raven/dev/pearcord/docs/`). **Release:** v0.8.771 (Phase 804 — guild 3-peer soundboard mesh fanout; Phase 803 — guild 3-peer custom sticker mesh fanout; Phase 802 — guild 3-peer custom emoji mesh fanout; Phase 801 — guild 3-peer channel delete fanout; Phase 800 — guild mesh channel create/delete propagation; Phase 799 — guild 3-peer channel settings slowmode fanout; Phase 798 — guild 3-peer channel topic & forum tag fanout; Phase 797 — guild channel topic & forum tag mesh sync; Phase 796 — guild 3-peer partition heal & presence reconcile; Phase 795 — guild 3-peer mesh message fanout; Phase 794 — guild channel settings mesh sync; Phase 793 — guild soundboard mesh sync; Phase 792 — guild pinned messages mesh sync; Phase 791 — guild custom stickers mesh sync; Phase 790 — guild custom emoji mesh sync; Phase 789 — guild message reactions mesh sync; Phase 788 — guild mesh reconnect hardening; Phase 787 — guild member custom roles mesh sync; Phase 786 — guild typing mesh sync; Phase 785 — guild voice occupancy mesh sync; Phase 784 — guild channel unread mesh sync; Phase 783 — guild sync watermark & message delta; Phase 782 — guild presence mesh sync; Phase 781 — member roster mesh sync; Phase 780 guild loading mesh; Phases 766779 settings/roles/permissions). **48h audit:** [DOC_AUDIT_2026-06.md](./DOC_AUDIT_2026-06.md). Platform mixin map: [PLATFORM_MIXINS.md](./PLATFORM_MIXINS.md).
| Start here | Document |
|------------|----------|
+2
View File
@@ -2,6 +2,8 @@
Live mesh stability tooling for Pearcord guild Hyperswarm clusters: bandwidth fair-share, ACK-driven push halt interaction with sparse batches, offline recovery bursts, and multi-peer agentctl journeys.
**v0.8.771 (Phase 804):** 3-peer soundboard — `runGuildMeshTripleSoundJourney`, `sync-guild-mesh-triple-sounds`. Bundle: `npm run test:ci-phase804`.
**v0.8.770 (Phase 803):** 3-peer custom stickers — `runGuildMeshTripleStickerJourney`, `sync-guild-mesh-triple-stickers`. Bundle: `npm run test:ci-phase803`.
**v0.8.769 (Phase 802):** 3-peer custom emoji — `runGuildMeshTripleEmojiJourney`, `sync-guild-mesh-triple-emojis`. Bundle: `npm run test:ci-phase802`.
+1 -1
View File
@@ -2,7 +2,7 @@
All **`pearcord-*`** packages under `modules/`. Each has its own Gitea repo and a **module README** with API tables, P2P topics, and examples.
**App release:** v0.8.770 · **Platform facade:** `pearcord-platform` ([PLATFORM_MIXINS.md](./PLATFORM_MIXINS.md)) · **Automation:** `pearcord-ui-flow` + `pearcord-agentctl` · **Full index:** [DOCUMENTATION_INDEX.md](./DOCUMENTATION_INDEX.md). Guild mesh: [PRODUCTION_MESH.md](./PRODUCTION_MESH.md) (`test:ci-phase803`, `test:ci-phase802`, `test:ci-phase801`, `test:ci-phase800`, `test:ci-phase799`, `test:ci-phase798`, `test:ci-phase797`, `test:ci-phase796`, `test:ci-phase795`, `test:ci-phase794`, `test:ci-phase793`, `test:ci-phase792`, `test:ci-phase791`, `test:ci-phase790`, `test:ci-phase789`, `test:ci-phase788`, `test:ci-phase787`, `test:ci-phase786`, `test:ci-phase785`, `test:ci-phase784`, `test:ci-phase783`, `test:ci-phase782`, `test:ci-phase781`, `test:ci-phase780`). Members: [MEMBERS.md](./MEMBERS.md). Settings/roles/permissions: [SETTINGS.md](./SETTINGS.md), [ROLE_EDITOR.md](./ROLE_EDITOR.md), [PERMISSIONS.md](./PERMISSIONS.md).
**App release:** v0.8.771 · **Platform facade:** `pearcord-platform` ([PLATFORM_MIXINS.md](./PLATFORM_MIXINS.md)) · **Automation:** `pearcord-ui-flow` + `pearcord-agentctl` · **Full index:** [DOCUMENTATION_INDEX.md](./DOCUMENTATION_INDEX.md). Guild mesh: [PRODUCTION_MESH.md](./PRODUCTION_MESH.md) (`test:ci-phase804`, `test:ci-phase803`, `test:ci-phase802`, `test:ci-phase801`, `test:ci-phase800`, `test:ci-phase799`, `test:ci-phase798`, `test:ci-phase797`, `test:ci-phase796`, `test:ci-phase795`, `test:ci-phase794`, `test:ci-phase793`, `test:ci-phase792`, `test:ci-phase791`, `test:ci-phase790`, `test:ci-phase789`, `test:ci-phase788`, `test:ci-phase787`, `test:ci-phase786`, `test:ci-phase785`, `test:ci-phase784`, `test:ci-phase783`, `test:ci-phase782`, `test:ci-phase781`, `test:ci-phase780`). Members: [MEMBERS.md](./MEMBERS.md). Settings/roles/permissions: [SETTINGS.md](./SETTINGS.md), [ROLE_EDITOR.md](./ROLE_EDITOR.md), [PERMISSIONS.md](./PERMISSIONS.md).
| Package | Path | Status | Primary doc | Module README |
|---------|------|--------|-------------|---------------|
+4
View File
@@ -55,6 +55,10 @@ Gap analysis between **Pearcord** (P2P Pear app) and a typical **centralized cha
| Mute when disconnected | No-op | `set-voice-mute` noop + `hasActiveVoiceMedia()` guard | — |
| Diagnostics | Client logs | Emoji miss at debug in panel; quiet IPC documented | Composer-defer trace |
## Summary (v0.8.771) — guild 3-peer soundboard fanout (Phase 804)
Triple mesh custom guild sounds propagate to both guest soundboard pickers. CI: `npm run test:ci-phase804`.
## Summary (v0.8.770) — guild 3-peer custom sticker fanout (Phase 803)
Triple mesh custom stickers propagate to both guest expression pickers. CI: `npm run test:ci-phase803`.
+62 -1
View File
@@ -77,6 +77,7 @@ Phase 800 items: **50/50 complete**
Phase 801 items: **50/50 complete**
Phase 802 items: **50/50 complete**
Phase 803 items: **50/50 complete**
Phase 804 items: **50/50 complete**
Skipped items tracked: **19** (Phase 712 superseded by Phase 714 completion)
---
@@ -100,12 +101,71 @@ Skipped items tracked: **19** (Phase 712 superseded by Phase 714 completion)
## Now
**Phase 803 complete.** Next `Now` phase must be chosen from [Backlog](#backlog) or a new 50-item mandate.
**Phase 804 complete.** Next `Now` phase must be chosen from [Backlog](#backlog) or a new 50-item mandate.
---
## Completed (recent)
### Phase 804 — Guild 3-peer soundboard mesh fanout (v0.8.771) ✓
**Goal:** Host upserts custom guild sound on triple mesh; both guests see sound in guildSounds and soundboard picker can refresh.
Bundle: `npm run test:ci-phase804` → triple sound smoke + agentctl contract + `test:ci-phase803`.
| ID | Item | Status |
|----|------|--------|
| P804-1 | `runGuildMeshTripleSoundJourney` 3-peer | [x] |
| P804-2 | `connectGuildMeshTriple` in sound journey | [x] |
| P804-3 | Matcher `guildSoundNamed` on both guests | [x] |
| P804-4 | Matcher `meshPeersMin` per peer | [x] |
| P804-5 | `syncGuildMeshTripleChrome` calls soundboard chrome | [x] |
| P804-6 | UI-flow `sync-guild-mesh-triple-sounds` IPC | [x] |
| P804-7 | Smoke `test:guild-mesh-triple-sounds-refresh` | [x] |
| P804-8 | Smoke `test:agentctl-phase804-guild-mesh-triple-sound` | [x] |
| P804-9 | Smoke `test:phase804-boot-gate` v0.8.771 | [x] |
| P804-10 | `test:ci-phase804` meta-bundle | [x] |
| P804-11 | Regression `test:ci-phase803` | [x] |
| P804-12 | Live journey [SKIP] flaky | [SKIP] CI contract only |
| P804-13 | `SOUNDBOARD.md` triple fanout note | [x] |
| P804-14 | `AGENTCTL.md` Phase 804 | [x] |
| P804-15 | `PRODUCTION_MESH.md` triple sounds | [x] |
| P804-16 | UI-flow README triple sounds | [x] |
| P804-17 | Agentctl README Phase 804 | [x] |
| P804-18 | `PEARCORD_PARITY.md` triple sound tier | [x] |
| P804-19 | `upsertGuildSound` in journey | [x] |
| P804-20 | Triple `requestGuildSyncFanout` | [x] |
| P804-21 | Version bump 0.8.771 | [x] |
| P804-22 | Changelog Phase 804 | [x] |
| P804-23 | Roadmap Now complete | [x] |
| P804-24 | `DOCUMENTATION_INDEX` v0.8.771 | [x] |
| P804-25 | Release notes v0.8.771 | [x] |
| P804-26 | Push all repos | [x] |
| P804-27 | `test:doc-version-alignment` | [x] |
| P804-28 | Phase 793 2-peer journey unchanged | [x] |
| P804-29 | `guild-sync-ready` sounds in triple IPC | [x] |
| P804-30 | Boot gates 780803 accept 0.8.771 | [x] |
| P804-31 | `MESH_STABILITY.md` triple sounds | [x] |
| P804-32 | `SETTINGS.md` v0.8.771 | [x] |
| P804-33 | `publicListing: false` | [x] |
| P804-34 | `PEARCORD_SKIP_MESH_ROUNDTRIP` | [x] |
| P804-35 | `renderSoundboardPicker` when open | [x] |
| P804-36 | `guild-mesh-topology` in triple sound IPC | [x] |
| P804-37 | Platform README Phase 804 | [x] |
| P804-38 | Reuses Phase 793 sound gossip path | [x] |
| P804-39 | `guildSoundsViewSignature` in worker | [x] |
| P804-40 | `guildSoundsNeedsRefresh` light polls | [x] |
| P804-41 | Cross-link SOUNDBOARD ↔ PRODUCTION_MESH | [x] |
| P804-42 | `pear run` boot sign-off | [x] |
| P804-43 | Log scan (manual) | [x] |
| P804-44 | Both guests sound row verify | [x] |
| P804-45 | `sync-guild-sounds` unchanged | [x] |
| P804-46 | `syncComposerSoundboardHint` on sound sync | [x] |
| P804-47 | `buildTestToneWav` payload in journey | [x] |
| P804-48 | Host mesh peers before upsert | [x] |
| P804-49 | Soundboard hub live region unchanged | [x] |
| P804-50 | Push pearcord + agentctl + ui-flow + docs | [x] |
### Phase 803 — Guild 3-peer custom sticker mesh fanout (v0.8.770) ✓
**Goal:** Host upserts custom sticker on triple mesh; both guests see sticker in guildStickers and expression picker can refresh.
@@ -8288,6 +8348,7 @@ For deferred items, use `[SKIP]` and include a brief reason inline.
## Changelog
- 2026-06-04 - Completed Phase 804 guild 3-peer soundboard mesh fanout (v0.8.771): `runGuildMeshTripleSoundJourney`, `sync-guild-mesh-triple-sounds`, `test:ci-phase804` (50/50). **Now:** await Backlog-selected phase.
- 2026-06-04 - Completed Phase 803 guild 3-peer custom sticker mesh fanout (v0.8.770): `runGuildMeshTripleStickerJourney`, `sync-guild-mesh-triple-stickers`, `test:ci-phase803` (50/50). **Now:** await Backlog-selected phase.
- 2026-06-04 - Completed Phase 802 guild 3-peer custom emoji mesh fanout (v0.8.769): `runGuildMeshTripleEmojiJourney`, `sync-guild-mesh-triple-emojis`, `test:ci-phase802` (50/50). **Now:** await Backlog-selected phase.
- 2026-06-04 - Completed Phase 801 guild 3-peer channel delete fanout (v0.8.768): `runGuildMeshTripleChannelLifecycleJourney`, `sync-guild-mesh-triple-channel-delete`, `test:ci-phase801` (50/50). **Now:** await Backlog-selected phase.
+6
View File
@@ -126,6 +126,12 @@ Bundle: `npm run test:ci-phase780` (includes `test:guild-loading-state-push`, `t
- Agentctl: `runGuildMeshStickerJourney`
- Bundle: `npm run test:ci-phase791`
## 3-peer soundboard (Phase 804, v0.8.771)
- `runGuildMeshTripleSoundJourney` — sound on both guests
- UI `syncGuildMeshTripleChrome` + `sync-guild-mesh-triple-sounds` IPC
- Bundle: `npm run test:ci-phase804`
## 3-peer custom stickers (Phase 803, v0.8.770)
- `runGuildMeshTripleStickerJourney` — sticker on both guests
+2
View File
@@ -2,6 +2,8 @@
Pearcord settings use a shared **Discord-style modal shell** (`apps/pearcord/ui/components/settings-modal.js`) for user preferences and per-guild server settings. All prefs sync over P2P gossip — no central settings API.
**v0.8.771 (Phase 804):** 3-peer soundboard fanout over live mesh. CI: `npm run test:ci-phase804`.
**v0.8.770 (Phase 803):** 3-peer custom sticker fanout over live mesh. CI: `npm run test:ci-phase803`.
**v0.8.769 (Phase 802):** 3-peer custom emoji fanout over live mesh. CI: `npm run test:ci-phase802`.
+2
View File
@@ -1,5 +1,7 @@
# Guild voice soundboard (P2P)
**v0.8.771 (Phase 804):** 3-peer custom sound fanout — `runGuildMeshTripleSoundJourney`, `sync-guild-mesh-triple-sounds`. Bundle: `npm run test:ci-phase804`.
**v0.8.760 (Phase 793):** Custom guild sounds refresh on mesh gossip without full guild reload — worker `guildSoundsViewSignature`, UI `syncGuildSoundboardChrome`, `guild-sync-ready` with `sounds`, GUILD_SYNC `guildSounds`, agentctl `runGuildMeshSoundJourney`. Bundle: `npm run test:ci-phase793`. See [PRODUCTION_MESH.md](./PRODUCTION_MESH.md).
**v0.8.554 (Phase 591):** Fifth soundboard depth pass — `syncSoundboardHubLivePanelDuringGuildLoading`; `#soundboard-hub-panel-live` alongside `#soundboard-panel-live`; **soundboard-errors** excludes audit/compliance/slash/webhook/bot/automation/attachment/embed/message/reaction/pin/search/voice/stage/screen bleed; clipboard `soundboardHubPanelLiveBusy`; platform `soundboard.play`/`upload`/`delete`/`stage` span ends add `guildCount`; `#soundboard-panel-live` sets `aria-busy` during guild load; `syncComposerSoundboardHint` refreshes soundboard hub; agentctl play/upload `refreshView` re-verify. Bundle: `npm run test:phase591-soundboard` (chains Phase 590 screen regression). Presence hub depth: see [PRESENCE.md](./PRESENCE.md) (Phase 592).
+8
View File
@@ -0,0 +1,8 @@
# Release v0.8.771 — Phase 804
Guild 3-peer soundboard mesh fanout: host sound upsert propagates to both guests; triple topology refreshes soundboard picker.
- Agentctl: `runGuildMeshTripleSoundJourney`
- UI: `syncGuildMeshTripleChrome` includes `syncGuildSoundboardChrome`
- UI-flow: `sync-guild-mesh-triple-sounds`
- CI: `npm run test:ci-phase804`