Phase 815: add sync-guild-mesh-triple-loading recovery IPC.

Triple mesh loading recovery nudges mesh join, peer retry, topology, and structural guild-loading push.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-06-03 23:32:51 -04:00
co-authored by Cursor
parent ec730e21d9
commit 2d218d396e
2 changed files with 30 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.
**Phase 815 (v0.8.782):** `sync-guild-mesh-triple-loading` recovery IPC. Bundle: `npm run test:ci-phase815`.
**Phase 814 (v0.8.781):** `sync-guild-mesh-triple-messages` recovery IPC. Bundle: `npm run test:ci-phase814`.
**Phase 813 (v0.8.780):** `sync-guild-mesh-triple-roster` recovery IPC. Bundle: `npm run test:ci-phase813`.
+28
View File
@@ -1186,6 +1186,34 @@ async function dispatchUiMessage (platform, msg, hooks = {}) {
pushState({ structural: true, light: false })
return true
}
if (t === 'sync-guild-mesh-triple-loading') {
const gid =
platform.guild?.guild?.id || platform._guildLoadingGuildId || null
if (gid && (platform.guild?.peers?.size ?? 0) === 0) {
void platform
._requestGuildMeshJoin?.({
source: 'ui-triple-loading-watchdog',
bounded: false
})
.catch(() => {})
if (typeof platform._scheduleGuildMeshPeerRetry === 'function') {
platform._scheduleGuildMeshPeerRetry(gid)
}
}
if (platform.mode === 'guild' && gid) {
platform.emit('guild-mesh-topology', {
guildId: gid,
meshPeerCount: platform.guild?.peers?.size ?? 0,
manualRecovery: true
})
}
if (platform._guildLoading) platform.emit('guild-loading')
if (typeof platform.requestGuildSyncFanout === 'function') {
platform.requestGuildSyncFanout()
}
pushState({ structural: true, light: false, source: 'sync-guild-mesh-triple-loading' })
return true
}
if (t === 'sync-guild-mesh-triple-messages') {
if (platform.mode === 'guild' && platform.guild?.guild?.id) {
const gid = platform.guild.guild.id