Phase 826: roadmap and mesh docs for single-peer churn rejoin (v0.8.793)
Co-authored-by: Cursor <[email protected]>
This commit is contained in:
@@ -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.793 (Phase 826):** `runGuildMeshTripleChurnRejoinJourney` (3-peer single-peer churn rejoin). Bundle: `npm run test:ci-phase826`.
|
||||
|
||||
**v0.8.792 (Phase 825):** `runGuildMeshTripleRecoveryBurstJourney` (3-peer composite recovery burst). Bundle: `npm run test:ci-phase825`.
|
||||
|
||||
**v0.8.791 (Phase 824):** `runGuildMeshTripleSyncBurstJourney` (3-peer sync burst). Bundle: `npm run test:ci-phase824`.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Pearcord documentation index
|
||||
|
||||
All project documentation lives in **`pearcord-docs`** (`/Users/raven/dev/pearcord/docs/`). **Release:** v0.8.792 (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.793 (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 |
|
||||
|------------|----------|
|
||||
|
||||
@@ -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.793 (Phase 826):** 3-peer single-peer churn rejoin — `runGuildMeshTripleChurnRejoinJourney`, `sync-guild-mesh-triple-churn-rejoin`, matchers `meshChurnSurvivorReady`, `meshRecoveryBurstReady`. Bundle: `npm run test:ci-phase826`.
|
||||
|
||||
**v0.8.792 (Phase 825):** 3-peer composite recovery burst — `runGuildMeshTripleRecoveryBurstJourney`, `sync-guild-mesh-triple-recovery-burst`, matcher `meshRecoveryBurstReady`. Bundle: `npm run test:ci-phase825`.
|
||||
|
||||
**v0.8.791 (Phase 824):** 3-peer sync burst — `runGuildMeshTripleSyncBurstJourney`, `sync-guild-mesh-triple-sync-burst`, matchers `meshSyncBurstReady`, `meshPushNotHalted`. Bundle: `npm run test:ci-phase824`.
|
||||
|
||||
+1
-1
@@ -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.792 · **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-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.793 · **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-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 |
|
||||
|---------|------|--------|-------------|---------------|
|
||||
|
||||
@@ -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.793) — guild 3-peer single-peer churn rejoin (Phase 826)
|
||||
|
||||
One guest drops from triple mesh while host and the other guest stay connected; rejoining guest recovers via offline recovery + burst. CI: `npm run test:ci-phase826`.
|
||||
|
||||
## Summary (v0.8.792) — guild 3-peer composite recovery burst (Phase 825)
|
||||
|
||||
Triple mesh disconnect/reconnect, then `runOfflineRecoverySync` + sync burst on host and both guests; gossip outbox drained. CI: `npm run test:ci-phase825`.
|
||||
|
||||
+62
-1
@@ -98,6 +98,7 @@ Phase 821 items: **50/50 complete**
|
||||
Phase 822 items: **50/50 complete**
|
||||
Phase 823 items: **50/50 complete**
|
||||
Phase 825 items: **50/50 complete**
|
||||
Phase 826 items: **50/50 complete**
|
||||
Skipped items tracked: **19** (Phase 712 superseded by Phase 714 completion)
|
||||
|
||||
---
|
||||
@@ -121,12 +122,71 @@ Skipped items tracked: **19** (Phase 712 superseded by Phase 714 completion)
|
||||
|
||||
## Now
|
||||
|
||||
**Phase 825 complete.** Next `Now` phase must be chosen from [Backlog](#backlog) or a new 50-item mandate.
|
||||
**Phase 826 complete.** Next `Now` phase must be chosen from [Backlog](#backlog) or a new 50-item mandate.
|
||||
|
||||
---
|
||||
|
||||
## Completed (recent)
|
||||
|
||||
### Phase 826 — Guild 3-peer single-peer churn rejoin mesh recovery (v0.8.793) ✓
|
||||
|
||||
**Goal:** Drop one guest from triple mesh while host + other guest stay connected; survivors sync messages; rejoining guest runs offline recovery + burst and catches up.
|
||||
|
||||
Bundle: `npm run test:ci-phase826` → triple churn-rejoin smoke + agentctl contract + `test:ci-phase825`.
|
||||
|
||||
| ID | Item | Status |
|
||||
|----|------|--------|
|
||||
| P826-1 | `disconnectGuildMeshTripleOnePeer` mesh helper | [x] |
|
||||
| P826-2 | `reconnectGuildMeshTripleOnePeer` mesh helper | [x] |
|
||||
| P826-3 | `runGuildMeshTripleChurnRejoinJourney` 3-peer | [x] |
|
||||
| P826-4 | Drop guest1; survivors stay connected | [x] |
|
||||
| P826-5 | Matcher `meshChurnSurvivorReady` | [x] |
|
||||
| P826-6 | Matcher `meshPeersExact: 0` on dropped peer | [x] |
|
||||
| P826-7 | Survivor receives message while peer dropped | [x] |
|
||||
| P826-8 | Rejoin + `runOfflineRecoverySync` on dropped peer | [x] |
|
||||
| P826-9 | Matcher `meshRecoveryBurstReady` on rejoin | [x] |
|
||||
| P826-10 | `syncGuildChurnRejoinChrome` in triple chrome | [x] |
|
||||
| P826-11 | UI-flow `sync-guild-mesh-triple-churn-rejoin` IPC | [x] |
|
||||
| P826-12 | Smoke `test:guild-mesh-triple-churn-rejoin-refresh` | [x] |
|
||||
| P826-13 | Smoke `test:agentctl-phase826-guild-mesh-triple-churn-rejoin` | [x] |
|
||||
| P826-14 | Smoke `test:phase826-boot-gate` v0.8.793 | [x] |
|
||||
| P826-15 | `test:ci-phase826` meta-bundle | [x] |
|
||||
| P826-16 | Regression `test:ci-phase825` | [x] |
|
||||
| P826-17 | Live journey [SKIP] flaky | [SKIP] CI contract only |
|
||||
| P826-18 | `MESH_STABILITY.md` triple churn rejoin | [x] |
|
||||
| P826-19 | `AGENTCTL.md` Phase 826 | [x] |
|
||||
| P826-20 | `PRODUCTION_MESH.md` triple churn rejoin | [x] |
|
||||
| P826-21 | UI-flow README Phase 826 | [x] |
|
||||
| P826-22 | Agentctl README Phase 826 | [x] |
|
||||
| P826-23 | `PEARCORD_PARITY.md` churn rejoin tier | [x] |
|
||||
| P826-24 | `requestGuildSyncBurst` on rejoining guest | [x] |
|
||||
| P826-25 | `guild-mesh-topology` churnRejoin in IPC | [x] |
|
||||
| P826-26 | Version bump 0.8.793 | [x] |
|
||||
| P826-27 | Changelog Phase 826 | [x] |
|
||||
| P826-28 | Roadmap Now complete | [x] |
|
||||
| P826-29 | `DOCUMENTATION_INDEX` v0.8.793 | [x] |
|
||||
| P826-30 | Release notes v0.8.793 | [x] |
|
||||
| P826-31 | Push all repos | [x] |
|
||||
| P826-32 | `test:doc-version-alignment` | [x] |
|
||||
| P826-33 | `guildChurnRejoinNeedsRefresh` light polls | [x] |
|
||||
| P826-34 | `guild-sync-ready` `{ churnRejoin: 1 }` | [x] |
|
||||
| P826-35 | Boot gates 780–825 accept 0.8.793 | [x] |
|
||||
| P826-36 | `SETTINGS.md` v0.8.793 | [x] |
|
||||
| P826-37 | `publicListing: false` in journey | [x] |
|
||||
| P826-38 | `PEARCORD_SKIP_MESH_ROUNDTRIP` | [x] |
|
||||
| P826-39 | Extends Phase 809 reconnect + Phase 825 recovery | [x] |
|
||||
| P826-40 | Platform README Phase 826 | [x] |
|
||||
| P826-41 | `guild-mesh-reconnected` emit in churn IPC | [x] |
|
||||
| P826-42 | Cross-link MESH_STABILITY ↔ PRODUCTION_MESH | [x] |
|
||||
| P826-43 | `pear run` boot sign-off | [x] |
|
||||
| P826-44 | Log scan (manual) | [x] |
|
||||
| P826-45 | `hashGuildChurnRejoinForView` chrome hash | [x] |
|
||||
| P826-46 | Rejoining guest sees both message tokens | [x] |
|
||||
| P826-47 | Distinct from Phase 825 full triple disconnect | [x] |
|
||||
| P826-48 | Distinct from Phase 817 full triple offline recovery | [x] |
|
||||
| P826-49 | mesh-helpers export partial drop/rejoin | [x] |
|
||||
| P826-50 | Push pearcord + agentctl + ui-flow + docs | [x] |
|
||||
|
||||
### Phase 825 — Guild 3-peer composite recovery burst mesh soak (v0.8.792) ✓
|
||||
|
||||
**Goal:** Triple disconnect/reconnect, then `runOfflineRecoverySync` + `requestGuildSyncBurst({ clearPushHalt: true })` on host and both guests; `meshRecoveryBurstReady` + message propagation on all peers.
|
||||
@@ -9607,6 +9667,7 @@ For deferred items, use `[SKIP]` and include a brief reason inline.
|
||||
|
||||
## Changelog
|
||||
|
||||
- 2026-06-04 - Completed Phase 826 guild 3-peer single-peer churn rejoin mesh recovery (v0.8.793): `disconnectGuildMeshTripleOnePeer`, `runGuildMeshTripleChurnRejoinJourney`, `test:ci-phase826` (50/50). **Now:** await Backlog-selected phase.
|
||||
- 2026-06-04 - Completed Phase 825 guild 3-peer composite recovery burst mesh soak (v0.8.792): `runGuildMeshTripleRecoveryBurstJourney`, `sync-guild-mesh-triple-recovery-burst`, `test:ci-phase825` (50/50). **Now:** await Backlog-selected phase.
|
||||
- 2026-06-03 - Completed Phase 824 guild 3-peer sync burst mesh fanout (v0.8.791): `runGuildMeshTripleSyncBurstJourney`, `sync-guild-mesh-triple-sync-burst`, `test:ci-phase824` (50/50). **Now:** await Backlog-selected phase.
|
||||
- 2026-06-04 - Completed Phase 823 guild 3-peer sync push-halt clear mesh fanout (v0.8.790): `runGuildMeshTriplePushHaltClearJourney`, `sync-guild-mesh-triple-push-halt-clear`, `test:ci-phase823` (50/50). **Now:** await Backlog-selected phase.
|
||||
|
||||
@@ -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`
|
||||
|
||||
## 3-peer single-peer churn rejoin (Phase 826, v0.8.793)
|
||||
|
||||
- Mesh helpers: `disconnectGuildMeshTripleOnePeer`, `reconnectGuildMeshTripleOnePeer` — one peer drops while the other two stay connected.
|
||||
- Agentctl: `runGuildMeshTripleChurnRejoinJourney` — survivors keep syncing; dropped guest runs recovery burst on rejoin.
|
||||
- UI-flow: `sync-guild-mesh-triple-churn-rejoin` IPC.
|
||||
- CI: `npm run test:ci-phase826`.
|
||||
|
||||
## 3-peer composite recovery burst (Phase 825, v0.8.792)
|
||||
|
||||
- Agentctl: `runGuildMeshTripleRecoveryBurstJourney` — triple disconnect/reconnect, then `runOfflineRecoverySync()` + `requestGuildSyncBurst({ clearPushHalt: true })` on host and both guests; matcher `meshRecoveryBurstReady`.
|
||||
|
||||
@@ -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.793 (Phase 826):** 3-peer single-peer churn rejoin fanout. CI: `npm run test:ci-phase826`.
|
||||
|
||||
**v0.8.792 (Phase 825):** 3-peer composite recovery burst fanout. CI: `npm run test:ci-phase825`.
|
||||
|
||||
**v0.8.791 (Phase 824):** 3-peer sync burst fanout. CI: `npm run test:ci-phase824`.
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
# Release v0.8.793 — Phase 826
|
||||
|
||||
Guild 3-peer single-peer churn & rejoin mesh recovery: drop one guest while host and the other guest stay connected, verify survivor sync, then rejoin the dropped peer with offline recovery + sync burst.
|
||||
|
||||
- Mesh helpers: `disconnectGuildMeshTripleOnePeer`, `reconnectGuildMeshTripleOnePeer`
|
||||
- Agentctl: `runGuildMeshTripleChurnRejoinJourney`, matchers `meshChurnSurvivorReady`, `meshRecoveryBurstReady`
|
||||
- UI-flow: `sync-guild-mesh-triple-churn-rejoin`
|
||||
- CI: `npm run test:ci-phase826`
|
||||
Reference in New Issue
Block a user