feat(ui-flow): wire DM scheduled-message IPC routes

Add create/list/cancel/send-now dispatch handlers for DM scheduled messages
so renderer and agentctl can exercise queue operations through the standard
IPC contract.

Co-authored-by: Cursor <[email protected]>
This commit is contained in:
Raven Scott
2026-06-02 04:11:22 -04:00
co-authored by Cursor
parent 5450b0f4b3
commit 03eeffe4bd
2 changed files with 34 additions and 0 deletions
+2
View File
@@ -4,6 +4,8 @@ Pearcord desktop UI IPC dispatch and automated flow scenarios for Bare smokes. M
**v0.8.638 (Phase 659):** Added DM poll IPC routes: `vote-dm-poll` (optional `voted` desired-state) -> `dm-poll-voted`, `edit-dm-poll` -> `dm-poll-edited`, `close-dm-poll` -> `dm-poll-closed`, and `delete-dm-poll` -> `dm-poll-deleted`. **v0.8.638 (Phase 659):** Added DM poll IPC routes: `vote-dm-poll` (optional `voted` desired-state) -> `dm-poll-voted`, `edit-dm-poll` -> `dm-poll-edited`, `close-dm-poll` -> `dm-poll-closed`, and `delete-dm-poll` -> `dm-poll-deleted`.
**v0.8.638 (Phase 659):** Added DM scheduled-message IPC routes: `create-dm-scheduled-message`, `list-dm-scheduled-messages`, `cancel-dm-scheduled-message`, and `send-now-dm-scheduled-message`.
**v0.8.638 (Phase 658):** Added `audit-dm-thread-p2p` IPC -> `dm-thread-p2p-audit` event to expose DM-thread topic safety diagnostics from platform. **v0.8.638 (Phase 658):** Added `audit-dm-thread-p2p` IPC -> `dm-thread-p2p-audit` event to expose DM-thread topic safety diagnostics from platform.
**v0.8.628 (Phase 655 batch 2):** IPC `rename-group-dm`, `start-dm-voice`, `start-dm-video`; `open-dm` passes `sidebarFilterActive`. See [DM_INBOX.md](../../docs/DM_INBOX.md). **v0.8.628 (Phase 655 batch 2):** IPC `rename-group-dm`, `start-dm-voice`, `start-dm-video`; `open-dm` passes `sidebarFilterActive`. See [DM_INBOX.md](../../docs/DM_INBOX.md).
+32
View File
@@ -1040,6 +1040,38 @@ async function dispatchUiMessage (platform, msg, hooks = {}) {
pushState() pushState()
return true return true
} }
if (t === 'create-dm-scheduled-message') {
const out = await platform.createDmScheduledMessage({
content: msg.content,
sendAt: msg.sendAt,
timezone: msg.timezone,
recurrence: msg.recurrence
})
send({ type: 'dm-scheduled-message-created', result: out })
pushState()
return true
}
if (t === 'list-dm-scheduled-messages') {
const out = await platform.listDmScheduledMessages({
channelId: msg.channelId || null,
includeSent: !!msg.includeSent
})
send({ type: 'dm-scheduled-messages', items: out })
pushState()
return true
}
if (t === 'cancel-dm-scheduled-message') {
const out = await platform.cancelDmScheduledMessage(msg.scheduleId)
send({ type: 'dm-scheduled-message-cancelled', result: out })
pushState()
return true
}
if (t === 'send-now-dm-scheduled-message') {
const out = await platform.sendNowDmScheduledMessage(msg.scheduleId)
send({ type: 'dm-scheduled-message-sent', result: out })
pushState()
return true
}
if (t === 'stage-attachment') { if (t === 'stage-attachment') {
const att = await platform.stageAttachment({ const att = await platform.stageAttachment({
data: fromBase64(msg.dataBase64), data: fromBase64(msg.dataBase64),