From 510e096c3386289fbf5fad10d4a13e1328cef4ec Mon Sep 17 00:00:00 2001 From: Raven Scott Date: Sun, 24 May 2026 12:21:04 -0400 Subject: [PATCH] feat(ui-flow): composer focus after ban/kick/timeout IPC (Phase 535) Emit composer-focus-channel when guild mode retains activeChannelId after member moderation actions complete. Co-authored-by: Cursor --- README.md | 2 ++ index.js | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/README.md b/README.md index be3f7db..6cf9465 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. +**v0.8.498 (Phase 535):** `ban-member`, `kick-member`, and `timeout-member` emit `composer-focus-channel` in guild mode when `activeChannelId` is set. Bundle: `npm run test:phase535-moderation` (app repo). + **v0.8.497 (Phase 534):** `create-guild-custom-role`, `update-guild-custom-role`, `upsert-channel-overwrite`, and `delete-channel-overwrite` emit `composer-focus-channel` in guild mode when `activeChannelId` is set. Bundle: `npm run test:phase534-roles` (app repo). **v0.8.496 (Phase 533):** `delete-channel` and `reorder-channels` emit `composer-focus-channel` when `platform.mode === 'guild'` and `activeChannelId` is set. Bundle: `npm run test:phase533-guild-admin` (app repo). diff --git a/index.js b/index.js index 917cfd7..27bc313 100644 --- a/index.js +++ b/index.js @@ -1480,11 +1480,23 @@ async function dispatchUiMessage (platform, msg, hooks = {}) { } if (t === 'ban-member') { await platform.banMember({ userId: msg.userId, reason: msg.reason }) + if (platform.mode === 'guild' && platform.activeChannelId) { + send({ + type: 'composer-focus-channel', + channelId: platform.activeChannelId + }) + } pushState() return true } if (t === 'kick-member') { await platform.kickMember({ userId: msg.userId, reason: msg.reason }) + if (platform.mode === 'guild' && platform.activeChannelId) { + send({ + type: 'composer-focus-channel', + channelId: platform.activeChannelId + }) + } pushState() return true } @@ -1494,6 +1506,12 @@ async function dispatchUiMessage (platform, msg, hooks = {}) { durationMinutes: msg.durationMinutes, reason: msg.reason }) + if (platform.mode === 'guild' && platform.activeChannelId) { + send({ + type: 'composer-focus-channel', + channelId: platform.activeChannelId + }) + } pushState() return true }