Phase 817: sync-guild-mesh-triple-offline-recovery IPC (v0.8.784).

Emits guild-mesh-topology, guild-sync-health, and fanout after triple
offline recovery for host and both guest peers.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-06-03 23:45:00 -04:00
co-authored by Cursor
parent 7ec399d3e9
commit 8fd61db8c1
2 changed files with 33 additions and 0 deletions
+2
View File
@@ -2,6 +2,8 @@
Pearcord desktop UI IPC dispatch and automated flow scenarios for Bare smokes. Mirrors `apps/pearcord` pear-pipe message handling. Pearcord desktop UI IPC dispatch and automated flow scenarios for Bare smokes. Mirrors `apps/pearcord` pear-pipe message handling.
**Phase 817 (v0.8.784):** `sync-guild-mesh-triple-offline-recovery` recovery IPC. Bundle: `npm run test:ci-phase817`.
**Phase 816 (v0.8.783):** `sync-guild-mesh-triple-partition-heal` recovery IPC. Bundle: `npm run test:ci-phase816`. **Phase 816 (v0.8.783):** `sync-guild-mesh-triple-partition-heal` recovery IPC. Bundle: `npm run test:ci-phase816`.
**Phase 815 (v0.8.782):** `sync-guild-mesh-triple-loading` recovery IPC. Bundle: `npm run test:ci-phase815`. **Phase 815 (v0.8.782):** `sync-guild-mesh-triple-loading` recovery IPC. Bundle: `npm run test:ci-phase815`.
+31
View File
@@ -1153,6 +1153,37 @@ async function dispatchUiMessage (platform, msg, hooks = {}) {
pushState({ structural: true, light: false, source: 'sync-guild-mesh-reconnect' }) pushState({ structural: true, light: false, source: 'sync-guild-mesh-reconnect' })
return true return true
} }
if (t === 'sync-guild-mesh-triple-offline-recovery') {
if (platform.mode === 'guild' && platform.guild?.guild?.id) {
const gid = platform.guild.guild.id
platform.emit('guild-mesh-topology', {
guildId: gid,
meshPeerCount: platform.guild?.peers?.size ?? 0,
manualRecovery: true
})
if (typeof platform.clearGuildSyncPushHalt === 'function') {
platform.clearGuildSyncPushHalt(gid)
}
if (typeof platform.runOfflineRecoverySync === 'function') {
await platform.runOfflineRecoverySync().catch(() => null)
} else if (typeof platform.requestGuildSyncFanout === 'function') {
platform.requestGuildSyncFanout()
}
platform.emit('guild-sync-health')
platform.emit('guild-mesh-reconnected', {
guildId: gid,
meshPeerCount: platform.guild?.peers?.size ?? 0,
peerId: null,
manualRecovery: true
})
}
pushState({
structural: true,
light: false,
source: 'sync-guild-mesh-triple-offline-recovery'
})
return true
}
if (t === 'sync-guild-mesh-triple-reconnect') { if (t === 'sync-guild-mesh-triple-reconnect') {
if (platform.mode === 'guild' && platform.guild?.guild?.id) { if (platform.mode === 'guild' && platform.guild?.guild?.id) {
const gid = platform.guild.guild.id const gid = platform.guild.guild.id