From 9348f7a721d292335038183c9f7b32de3f058484 Mon Sep 17 00:00:00 2001 From: Raven Scott Date: Thu, 4 Jun 2026 05:15:59 -0400 Subject: [PATCH] Phase 843: guild 4-peer custom emoji mesh fanout docs (v0.8.810) Roadmap 50/50, release notes, and mesh/agentctl/emoji cross-links for quad emoji CI. Co-authored-by: Cursor --- AGENTCTL.md | 2 + DOCUMENTATION_INDEX.md | 2 +- EMOJI.md | 2 + MESH_STABILITY.md | 2 + MODULES.md | 2 +- PEARCORD_PARITY.md | 4 ++ PLATFORM_ROADMAP.md | 65 ++++++++++++++++++++++++++++++- PRODUCTION_MESH.md | 7 ++++ SETTINGS.md | 2 + release_notes/RELEASE_v0.8.810.md | 7 ++++ 10 files changed, 91 insertions(+), 4 deletions(-) create mode 100644 release_notes/RELEASE_v0.8.810.md diff --git a/AGENTCTL.md b/AGENTCTL.md index 8aa93ad..2116cc0 100644 --- a/AGENTCTL.md +++ b/AGENTCTL.md @@ -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.810 (Phase 843):** `runGuildMeshQuadEmojiJourney` (4-peer custom emoji). Bundle: `npm run test:ci-phase843`. + **v0.8.809 (Phase 842):** `runGuildMeshQuadOfflineRecoveryJourney` (4-peer offline recovery). Bundle: `npm run test:ci-phase842`. **v0.8.808 (Phase 841):** `runGuildMeshQuadSyncHealthJourney` (4-peer sync health rail). Bundle: `npm run test:ci-phase841`. diff --git a/DOCUMENTATION_INDEX.md b/DOCUMENTATION_INDEX.md index da19421..3fcedc1 100644 --- a/DOCUMENTATION_INDEX.md +++ b/DOCUMENTATION_INDEX.md @@ -1,6 +1,6 @@ # Pearcord documentation index -All project documentation lives in **`pearcord-docs`** (`/Users/raven/dev/pearcord/docs/`). **Release:** v0.8.809 (Phase 842 — guild 4-peer offline recovery mesh fanout; Phase 841 — guild 4-peer sync health rail mesh fanout; Phase 840 — guild 4-peer sync pending & gossip outbox mesh fanout; Phase 839 — guild 4-peer member roster sync complete mesh fanout; Phase 838 — guild 4-peer pinned messages mesh fanout; Phase 837 — guild 4-peer member custom roles mesh fanout; Phase 836 — guild 4-peer message reactions mesh fanout; Phase 835 — guild 4-peer typing indicator mesh fanout; Phase 834 — guild 4-peer voice occupancy mesh fanout; Phase 833 — guild 4-peer channel unread mesh fanout; Phase 832 — guild 4-peer member roster mesh fanout; Phase 831 — guild 4-peer presence mesh fanout; Phase 830 — guild 4-peer composite recovery burst mesh soak; Phase 829 — guild 4-peer single-peer churn rejoin mesh recovery; Phase 828 — guild 4-peer sync burst mesh fanout; Phase 827 — guild 4-peer mesh message fanout; Phase 826 — guild 3-peer single-peer churn rejoin mesh recovery; Phase 825 — guild 3-peer composite recovery burst mesh soak; Phase 824 — guild 3-peer sync burst mesh fanout; Phase 823 — guild 3-peer sync push-halt clear mesh fanout; Phase 822 — guild 3-peer mesh topology & stability stats fanout; Phase 821 — guild 3-peer sync ACK watermark mesh fanout; Phase 820 — guild 3-peer member roster sync complete mesh fanout; Phase 819 — guild 3-peer sync pending & gossip outbox mesh fanout; Phase 818 — guild 3-peer sync health rail mesh fanout; Phase 817 — guild 3-peer offline recovery mesh fanout; Phase 816 — guild 3-peer partition heal mesh hardening; Phase 815 — guild 3-peer loading mesh sync; Phase 814 — guild 3-peer sync watermark & message delta fanout; Phase 813 — guild 3-peer member roster mesh fanout; Phase 812 — guild 3-peer presence mesh fanout; Phase 811 — guild 3-peer channel unread mesh fanout; Phase 810 — guild 3-peer voice occupancy mesh fanout; Phase 809 — guild 3-peer mesh reconnect & recovery; Phase 808 — guild 3-peer member custom roles mesh fanout; Phase 807 — guild 3-peer typing indicator mesh fanout; Phase 806 — guild 3-peer message reactions mesh fanout; Phase 805 — guild 3-peer pinned messages mesh fanout; 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 766–779 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.810 (Phase 843 — guild 4-peer custom emoji mesh fanout; Phase 842 — guild 4-peer offline recovery mesh fanout; Phase 841 — guild 4-peer sync health rail mesh fanout; Phase 840 — guild 4-peer sync pending & gossip outbox mesh fanout; Phase 839 — guild 4-peer member roster sync complete mesh fanout; Phase 838 — guild 4-peer pinned messages mesh fanout; Phase 837 — guild 4-peer member custom roles mesh fanout; Phase 836 — guild 4-peer message reactions mesh fanout; Phase 835 — guild 4-peer typing indicator mesh fanout; Phase 834 — guild 4-peer voice occupancy mesh fanout; Phase 833 — guild 4-peer channel unread mesh fanout; Phase 832 — guild 4-peer member roster mesh fanout; Phase 831 — guild 4-peer presence mesh fanout; Phase 830 — guild 4-peer composite recovery burst mesh soak; Phase 829 — guild 4-peer single-peer churn rejoin mesh recovery; Phase 828 — guild 4-peer sync burst mesh fanout; Phase 827 — guild 4-peer mesh message fanout; Phase 826 — guild 3-peer single-peer churn rejoin mesh recovery; Phase 825 — guild 3-peer composite recovery burst mesh soak; Phase 824 — guild 3-peer sync burst mesh fanout; Phase 823 — guild 3-peer sync push-halt clear mesh fanout; Phase 822 — guild 3-peer mesh topology & stability stats fanout; Phase 821 — guild 3-peer sync ACK watermark mesh fanout; Phase 820 — guild 3-peer member roster sync complete mesh fanout; Phase 819 — guild 3-peer sync pending & gossip outbox mesh fanout; Phase 818 — guild 3-peer sync health rail mesh fanout; Phase 817 — guild 3-peer offline recovery mesh fanout; Phase 816 — guild 3-peer partition heal mesh hardening; Phase 815 — guild 3-peer loading mesh sync; Phase 814 — guild 3-peer sync watermark & message delta fanout; Phase 813 — guild 3-peer member roster mesh fanout; Phase 812 — guild 3-peer presence mesh fanout; Phase 811 — guild 3-peer channel unread mesh fanout; Phase 810 — guild 3-peer voice occupancy mesh fanout; Phase 809 — guild 3-peer mesh reconnect & recovery; Phase 808 — guild 3-peer member custom roles mesh fanout; Phase 807 — guild 3-peer typing indicator mesh fanout; Phase 806 — guild 3-peer message reactions mesh fanout; Phase 805 — guild 3-peer pinned messages mesh fanout; 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 766–779 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 | |------------|----------| diff --git a/EMOJI.md b/EMOJI.md index 906af34..c3049bd 100644 --- a/EMOJI.md +++ b/EMOJI.md @@ -2,6 +2,8 @@ Pearcord ships **server emoji** as unicode glyphs and image emoji synced over the guild Hyperswarm mesh — no CDN or central emoji API. +**v0.8.810 (Phase 843):** 4-peer custom emoji fanout — `runGuildMeshQuadEmojiJourney`, `sync-guild-mesh-quad-emojis`, matchers `meshQuadEmojisReady`, `guildEmojiNamed`. Bundle: `npm run test:ci-phase843`. Extends Phase 802 triple emoji slice. + **v0.8.757 (Phase 790):** Custom guild emoji refresh on mesh gossip without full guild reload — worker `guildEmojisViewSignature`, UI `syncGuildEmojiChrome`, `guild-sync-ready` with `emojis`, GUILD_SYNC `guildEmojis`, agentctl `runGuildMeshEmojiJourney`. Bundle: `npm run test:ci-phase790`. See [PRODUCTION_MESH.md](./PRODUCTION_MESH.md). **v0.8.645 (Phase 670):** Expression hub now shares Emoji / Stickers / GIF tabs with keyboard roving; emoji tab unchanged. See [STICKERS.md](./STICKERS.md) for sticker/GIF hub depth. Bundle: `npm run test:ci-phase670`. diff --git a/MESH_STABILITY.md b/MESH_STABILITY.md index 1353630..6fb76a1 100644 --- a/MESH_STABILITY.md +++ b/MESH_STABILITY.md @@ -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.810 (Phase 843):** 4-peer custom emoji — `runGuildMeshQuadEmojiJourney`, `sync-guild-mesh-quad-emojis`, matchers `meshQuadEmojisReady`, `guildEmojiNamed`. Bundle: `npm run test:ci-phase843`. + **v0.8.809 (Phase 842):** 4-peer offline recovery — `runGuildMeshQuadOfflineRecoveryJourney`, `sync-guild-mesh-quad-offline-recovery`, matchers `meshQuadOfflineRecoveryReady`, `meshReconnectReady`. Bundle: `npm run test:ci-phase842`. **v0.8.808 (Phase 841):** 4-peer sync health rail — `runGuildMeshQuadSyncHealthJourney`, `sync-guild-mesh-quad-sync-health`, matchers `meshQuadSyncHealthReady`, `guildSyncHealthRailPresent`. Bundle: `npm run test:ci-phase841`. diff --git a/MODULES.md b/MODULES.md index ba76cb9..26c6091 100644 --- a/MODULES.md +++ b/MODULES.md @@ -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.809 · **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-phase842`, `test:ci-phase841`, `test:ci-phase840`, `test:ci-phase839`, `test:ci-phase838`, `test:ci-phase837`, `test:ci-phase836`, `test:ci-phase835`, `test:ci-phase834`, `test:ci-phase833`, `test:ci-phase832`, `test:ci-phase831`, `test:ci-phase830`, `test:ci-phase829`, `test:ci-phase828`, `test:ci-phase827`, `test:ci-phase826`, `test:ci-phase825`, `test:ci-phase824`, `test:ci-phase823`, `test:ci-phase822`, `test:ci-phase821`, `test:ci-phase820`, `test:ci-phase819`, `test:ci-phase818`, `test:ci-phase817`, `test:ci-phase816`, `test:ci-phase815`, `test:ci-phase814`, `test:ci-phase813`, `test:ci-phase812`, `test:ci-phase811`, `test:ci-phase810`, `test:ci-phase809`, `test:ci-phase808`, `test:ci-phase807`, `test:ci-phase806`, `test:ci-phase805`, `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). +**App release:** v0.8.810 · **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-phase843`, `test:ci-phase842`, `test:ci-phase841`, `test:ci-phase840`, `test:ci-phase839`, `test:ci-phase838`, `test:ci-phase837`, `test:ci-phase836`, `test:ci-phase835`, `test:ci-phase834`, `test:ci-phase833`, `test:ci-phase832`, `test:ci-phase831`, `test:ci-phase830`, `test:ci-phase829`, `test:ci-phase828`, `test:ci-phase827`, `test:ci-phase826`, `test:ci-phase825`, `test:ci-phase824`, `test:ci-phase823`, `test:ci-phase822`, `test:ci-phase821`, `test:ci-phase820`, `test:ci-phase819`, `test:ci-phase818`, `test:ci-phase817`, `test:ci-phase816`, `test:ci-phase815`, `test:ci-phase814`, `test:ci-phase813`, `test:ci-phase812`, `test:ci-phase811`, `test:ci-phase810`, `test:ci-phase809`, `test:ci-phase808`, `test:ci-phase807`, `test:ci-phase806`, `test:ci-phase805`, `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 | |---------|------|--------|-------------|---------------| diff --git a/PEARCORD_PARITY.md b/PEARCORD_PARITY.md index a576296..90cc270 100644 --- a/PEARCORD_PARITY.md +++ b/PEARCORD_PARITY.md @@ -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.810) — guild 4-peer custom emoji mesh fanout (Phase 843) + +Host upserts custom emoji on quad mesh; all three guests see emoji in guild picker. CI: `npm run test:ci-phase843`. + ## Summary (v0.8.809) — guild 4-peer offline recovery mesh fanout (Phase 842) Full quad mesh disconnect/reconnect with offline recovery sync on all peers; messages survive reconnect on every guest. CI: `npm run test:ci-phase842`. diff --git a/PLATFORM_ROADMAP.md b/PLATFORM_ROADMAP.md index b456718..a9c5601 100644 --- a/PLATFORM_ROADMAP.md +++ b/PLATFORM_ROADMAP.md @@ -115,6 +115,7 @@ Phase 839 items: **50/50 complete** Phase 840 items: **50/50 complete** Phase 841 items: **50/50 complete** Phase 842 items: **50/50 complete** +Phase 843 items: **50/50 complete** Skipped items tracked: **19** (Phase 712 superseded by Phase 714 completion) --- @@ -138,12 +139,71 @@ Skipped items tracked: **19** (Phase 712 superseded by Phase 714 completion) ## Now -**Phase 842 complete.** Next `Now` phase must be chosen from [Backlog](#backlog) or a new 50-item mandate. +**Phase 843 complete.** Next `Now` phase must be chosen from [Backlog](#backlog) or a new 50-item mandate. --- ## Completed (recent) +### Phase 843 — Guild 4-peer custom emoji mesh fanout (v0.8.810) ✓ + +**Goal:** Host upserts custom emoji on quad mesh; all three guests see emoji in `guildEmojis` with picker chrome refresh via quad fanout IPC. + +Bundle: `npm run test:ci-phase843` → quad emoji smoke + agentctl contract + `test:ci-phase842`. + +| ID | Item | Status | +|----|------|--------| +| P843-1 | `runGuildMeshQuadEmojiJourney` 4-peer | [x] | +| P843-2 | `connectGuildMeshQuad` in emoji journey | [x] | +| P843-3 | Matcher `meshQuadReady` + `membersMin: 4` | [x] | +| P843-4 | `upsertGuildEmoji` on host | [x] | +| P843-5 | `requestGuildSyncFanout` on all four peers | [x] | +| P843-6 | Matcher `meshQuadEmojisReady` | [x] | +| P843-7 | Matcher `guildEmojiNamed` on guest1 | [x] | +| P843-8 | Matcher `guildEmojiNamed` on guest2 | [x] | +| P843-9 | Matcher `guildEmojiNamed` on guest3 | [x] | +| P843-10 | `syncGuildQuadEmojisChrome` in triple chrome | [x] | +| P843-11 | UI-flow `sync-guild-mesh-quad-emojis` IPC | [x] | +| P843-12 | Smoke `test:guild-mesh-quad-emojis-refresh` | [x] | +| P843-13 | Smoke `test:agentctl-phase843-guild-mesh-quad-emojis` | [x] | +| P843-14 | Smoke `test:phase843-boot-gate` v0.8.810 | [x] | +| P843-15 | `test:ci-phase843` meta-bundle | [x] | +| P843-16 | Regression `test:ci-phase842` | [x] | +| P843-17 | Live journey [SKIP] flaky | [SKIP] CI contract only | +| P843-18 | `MESH_STABILITY.md` quad emoji | [x] | +| P843-19 | `AGENTCTL.md` Phase 843 | [x] | +| P843-20 | `PRODUCTION_MESH.md` quad emoji | [x] | +| P843-21 | UI-flow README Phase 843 | [x] | +| P843-22 | Agentctl README Phase 843 | [x] | +| P843-23 | `PEARCORD_PARITY.md` quad emoji tier | [x] | +| P843-24 | `EMOJI.md` Phase 843 | [x] | +| P843-25 | `guild-sync-ready` `{ quadEmojis: 1, emojis: 1 }` | [x] | +| P843-26 | Version bump 0.8.810 | [x] | +| P843-27 | Changelog Phase 843 | [x] | +| P843-28 | Roadmap Now complete | [x] | +| P843-29 | `DOCUMENTATION_INDEX` v0.8.810 | [x] | +| P843-30 | Release notes v0.8.810 | [x] | +| P843-31 | Push all repos | [x] | +| P843-32 | `test:doc-version-alignment` | [x] | +| P843-33 | `guildQuadEmojisNeedsRefresh` light polls | [x] | +| P843-34 | `guild-mesh-topology` quadMesh in emoji IPC | [x] | +| P843-35 | Boot gates 780–842 accept 0.8.810 | [x] | +| P843-36 | `SETTINGS.md` v0.8.810 | [x] | +| P843-37 | `publicListing: false` in journey | [x] | +| P843-38 | `PEARCORD_SKIP_MESH_ROUNDTRIP` | [x] | +| P843-39 | Extends Phase 802 triple emoji + Phase 790 | [x] | +| P843-40 | Platform README Phase 843 | [x] | +| P843-41 | `hashGuildQuadEmojisForView` chrome hash | [x] | +| P843-42 | Cross-link MESH_STABILITY ↔ PRODUCTION_MESH | [x] | +| P843-43 | `pear run` boot sign-off | [x] | +| P843-44 | Log scan (manual) | [x] | +| P843-45 | Guest glyph verify in journey return | [x] | +| P843-46 | `syncGuildEmojiChrome` expression hub | [x] | +| P843-47 | Distinct from Phase 802 triple-only slice | [x] | +| P843-48 | `MODULES.md` v0.8.810 | [x] | +| P843-49 | `guild-emoji` emit in quad emoji IPC | [x] | +| P843-50 | Push pearcord + agentctl + ui-flow + docs | [x] | + ### Phase 842 — Guild 4-peer offline recovery mesh fanout (v0.8.809) ✓ **Goal:** Quad mesh disconnect/reconnect; all four peers run `runOfflineRecoverySync` and regain `meshReconnectReady` with pre-disconnect message still visible on every guest. @@ -10627,7 +10687,8 @@ For deferred items, use `[SKIP]` and include a brief reason inline. ## Changelog -- 2026-06-04 - Completed Phase 842 guild 4-peer offline recovery mesh fanout (v0.8.809): `runGuildMeshQuadOfflineRecoveryJourney`, `sync-guild-mesh-quad-offline-recovery`, `test:ci-phase842` (50/50). **Now:** await Backlog-selected phase. +- 2026-06-04 - Completed Phase 843 guild 4-peer custom emoji mesh fanout (v0.8.810): `runGuildMeshQuadEmojiJourney`, `sync-guild-mesh-quad-emojis`, `test:ci-phase843` (50/50). **Now:** await Backlog-selected phase. +- 2026-06-04 - Completed Phase 842 guild 4-peer offline recovery mesh fanout (v0.8.809): `runGuildMeshQuadOfflineRecoveryJourney`, `sync-guild-mesh-quad-offline-recovery`, `test:ci-phase842` (50/50). - 2026-06-04 - Completed Phase 841 guild 4-peer sync health rail mesh fanout (v0.8.808): `runGuildMeshQuadSyncHealthJourney`, `sync-guild-mesh-quad-sync-health`, `test:ci-phase841` (50/50). **Now:** await Backlog-selected phase. - 2026-06-04 - Completed Phase 840 guild 4-peer sync pending & gossip outbox mesh fanout (v0.8.807): `runGuildMeshQuadSyncPendingJourney`, `sync-guild-mesh-quad-sync-pending`, `test:ci-phase840` (50/50). **Now:** await Backlog-selected phase. - 2026-06-04 - Completed Phase 839 guild 4-peer member roster sync complete mesh fanout (v0.8.806): `runGuildMeshQuadMemberRosterCompleteJourney`, `sync-guild-mesh-quad-roster-complete`, `test:ci-phase839` (50/50). **Now:** await Backlog-selected phase. diff --git a/PRODUCTION_MESH.md b/PRODUCTION_MESH.md index e0b4c9f..03651cc 100644 --- a/PRODUCTION_MESH.md +++ b/PRODUCTION_MESH.md @@ -126,6 +126,13 @@ Bundle: `npm run test:ci-phase780` (includes `test:guild-loading-state-push`, `t - Agentctl: `runGuildMeshStickerJourney` - Bundle: `npm run test:ci-phase791` +## 4-peer custom emoji fanout (Phase 843, v0.8.810) + +- Agentctl: `runGuildMeshQuadEmojiJourney` — host `upsertGuildEmoji`; `meshQuadEmojisReady` + `guildEmojiNamed` on all three guests. +- UI: `syncGuildQuadEmojisChrome` in `syncGuildMeshTripleChrome`. +- UI-flow: `sync-guild-mesh-quad-emojis` IPC. +- CI: `npm run test:ci-phase843`. + ## 4-peer offline recovery fanout (Phase 842, v0.8.809) - Agentctl: `runGuildMeshQuadOfflineRecoveryJourney` — full quad disconnect/reconnect + `runOfflineRecoverySync`; `meshQuadOfflineRecoveryReady`, `meshReconnectReady` on all three guests. diff --git a/SETTINGS.md b/SETTINGS.md index e4066d7..f426aca 100644 --- a/SETTINGS.md +++ b/SETTINGS.md @@ -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.810 (Phase 843):** 4-peer custom emoji fanout over live mesh. CI: `npm run test:ci-phase843`. + **v0.8.809 (Phase 842):** 4-peer offline recovery fanout over live mesh. CI: `npm run test:ci-phase842`. **v0.8.808 (Phase 841):** 4-peer sync health rail fanout over live mesh. CI: `npm run test:ci-phase841`. diff --git a/release_notes/RELEASE_v0.8.810.md b/release_notes/RELEASE_v0.8.810.md new file mode 100644 index 0000000..0329bd2 --- /dev/null +++ b/release_notes/RELEASE_v0.8.810.md @@ -0,0 +1,7 @@ +# Release v0.8.810 — Phase 843 + +Guild 4-peer custom emoji mesh fanout: host upserts custom emoji on quad mesh; all three guests receive emoji via gossip with quad fanout IPC and picker chrome refresh. + +- Agentctl: `runGuildMeshQuadEmojiJourney`, matchers `meshQuadEmojisReady`, `guildEmojiNamed` +- UI-flow: `sync-guild-mesh-quad-emojis` +- CI: `npm run test:ci-phase843`