diff --git a/README.md b/README.md index a356124..5fe07fa 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ Pearcord desktop UI IPC dispatch and automated flow scenarios for Bare smokes. Mirrors `apps/pearcord` pear-pipe message handling. +**Phase 801 (v0.8.768):** `sync-guild-mesh-triple-channel-delete` recovery IPC. Bundle: `npm run test:ci-phase801`. + **Phase 800 (v0.8.767):** `sync-guild-channel-lifecycle`, `sync-guild-mesh-triple-channels` recovery IPC. Bundle: `npm run test:ci-phase800`. **Phase 799 (v0.8.766):** `sync-guild-mesh-triple-channel-settings` → topology + channelSettings recovery. Bundle: `npm run test:ci-phase799`. diff --git a/index.js b/index.js index 55b9bff..e4f7e6f 100644 --- a/index.js +++ b/index.js @@ -931,6 +931,31 @@ async function dispatchUiMessage (platform, msg, hooks = {}) { pushState({ structural: true, light: false, source: 'sync-guild-mesh-triple-channels' }) return true } + if (t === 'sync-guild-mesh-triple-channel-delete') { + 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 + }) + platform.emit('channel-delete', { + guildId: gid, + channelId: platform.activeChannelId, + manualRecovery: true + }) + platform.emit('guild-sync-ready', { guildId: gid, channels: 1 }) + if (typeof platform.requestGuildSyncFanout === 'function') { + platform.requestGuildSyncFanout() + } + } + pushState({ + structural: true, + light: false, + source: 'sync-guild-mesh-triple-channel-delete' + }) + return true + } if (t === 'sync-guild-mesh-triple-channel-settings') { if (platform.mode === 'guild' && platform.guild?.guild?.id) { const gid = platform.guild.guild.id