Commit Graph
98 Commits
Author SHA1 Message Date
Raven ScottandCursor 759e8eb330 Log typing.ipc with channelId before signalTyping (Phase 389).
Emit debug metadata on typing-start IPC so diagnostics correlate typing
gossip with the active channel.

Co-authored-by: Cursor <[email protected]>
2026-05-23 13:46:40 -04:00
Raven ScottandCursor de6a49b7ab Accept legacy typing IPC as alias for typing-start.
Stops unhandled ipc warnings when the UI or older clients send type typing.

Co-authored-by: Cursor <[email protected]>
2026-05-23 13:10:11 -04:00
Raven ScottandCursor 9d344ca130 Always push UI state after leave-voice IPC.
Ensures voice chrome clears even when platform leave is a noop.

Co-authored-by: Cursor <[email protected]>
2026-05-23 13:02:46 -04:00
Raven ScottandCursor a79cf8f504 feat(ui-flow): mark-channel-read emits threadChannelId for desktop dismiss
Thread mark-read cleared events include threadChannelId so the desktop UI
can dismiss thread-family notifications alongside parent channel batch.

Co-authored-by: Cursor <[email protected]>
2026-05-23 09:54:47 -04:00
Raven ScottandCursor bb662dddf1 feat(ui-flow): mark-notification-read includes notificationChannelId
Emits parent channelId for batch dismiss and notificationChannelId for
thread-family desktop clearing on thread notifications.

Co-authored-by: Cursor <[email protected]>
2026-05-23 09:45:49 -04:00
Raven ScottandCursor aaf8776229 feat(ui-flow): emit mark-channel-read-cleared for desktop unread dismiss
Resolves parent channel id for threads before notifying desktop UI.

Co-authored-by: Cursor <[email protected]>
2026-05-23 09:36:40 -04:00
Raven ScottandCursor 85bc63ddbe docs(ui-flow): document mark-all and mark-read cleared IPC events
Co-authored-by: Cursor <[email protected]>
2026-05-23 09:32:20 -04:00
Raven ScottandCursor b2e3fca2d5 feat(ui-flow): emit mark-all-notifications-read-cleared after mark all
Lets desktop dismiss parent-channel unread desktop notification tags when
mark-all-notifications-read completes from any IPC client.

Co-authored-by: Cursor <[email protected]>
2026-05-23 09:32:10 -04:00
Raven ScottandCursor 5084311160 feat(ui-flow): emit mark-notification-read-cleared for desktop unread dismiss
After markRead, push mark-notification-read-cleared with guild and channel ids
so desktop can dismiss channel unread desktop notifications.

Co-authored-by: Cursor <[email protected]>
2026-05-23 09:27:25 -04:00
Raven ScottandCursor 20dfeb5156 feat(v0.8.281): emit open-notification-opened for desktop dismiss
After openNotificationTarget, notify UI so desktop can clear channel
unread desktop notification batch.

Co-authored-by: Cursor <[email protected]>
2026-05-23 09:18:58 -04:00
Raven ScottandCursor cd32dbb82a Pass guildId and meta through settings deep link and diagnostics export IPC.
format-settings-deep-link includes guildId in URL; export-diagnostics-jsonl forwards meta to platform writer.

Co-authored-by: Cursor <[email protected]>
2026-05-23 06:45:53 -04:00
Raven ScottandCursor 063f4f3c89 Log leave-voice noop and add format-settings-deep-link IPC.
Skip pushState when leaveVoiceChannel returns null; format settings URLs for the desktop copy-link flow.

Co-authored-by: Cursor <[email protected]>
2026-05-23 06:33:50 -04:00
Raven ScottandCursor 1735572f73 Handle export-diagnostics-jsonl IPC from the diagnostics panel.
Forwards filtered JSONL lines to the platform writer and replies with the saved file path for UI toasts.

Co-authored-by: Cursor <[email protected]>
2026-05-23 06:22:22 -04:00
Raven ScottandCursor c27ecfa440 fix(ui-flow): reset display-capture trace on stop-screen-share
Mirror leave-voice behavior so display frame counters clear when screen
share stops, keeping voice-capture trace diagnostics accurate.

Co-authored-by: Cursor <[email protected]>
2026-05-23 05:32:26 -04:00
Raven ScottandCursor 82fb4a090c feat(ui-flow): voice trace bytes/sec window and reset on leave-voice
Track rolling bytesPerSec in voice-capture trace logs and reset capture
counters when the user leaves voice.

Co-authored-by: Cursor <[email protected]>
2026-05-23 05:22:13 -04:00
Raven ScottandCursor c01d59a381 feat(ui-flow): voice/display trace bytes and request-stage-speak IPC
Aggregate voice-capture bytes and display-capture frame counts at trace
when PEARCORD_LOG_VOICE_CAPTURE_TRACE=1, and surface request-stage-speak
capacity errors to the UI like join-stage.

Co-authored-by: Cursor <[email protected]>
2026-05-23 05:13:16 -04:00
Raven ScottandCursor eba2d713d3 fix(ui-flow): join-stage capacity errors and voice capture trace (v0.8.248)
Handle join-stage like join-voice for full channels, forward no-viewable guild
warnings to diagnostics, and sample voice-capture chunks at trace when enabled.

Co-authored-by: Cursor <[email protected]>
2026-05-23 04:50:05 -04:00
Raven ScottandCursor 3d1d44d0a2 fix: surface voice channel full errors for join-voice-listen IPC
Return UI error toast instead of ipc dispatch failed when voice
channel is at capacity for listen-only joins.

Co-authored-by: Cursor <[email protected]>
2026-05-23 04:43:08 -04:00
Raven ScottandCursor 012f4f656c fix: noop set-voice-mute when not in voice; emoji miss debug log
Avoid ipc dispatch failed errors after disconnect races and forward
emoji-image-miss as a debug log record for the diagnostics panel.

Co-authored-by: Cursor <[email protected]>
2026-05-23 04:31:19 -04:00
Raven ScottandCursor f4d580743d fix(ipc): emoji-image-miss instead of throwing on missing attachment
Co-authored-by: Cursor <[email protected]>
2026-05-23 04:23:17 -04:00
Raven ScottandCursor 1aec691a24 chore(log): trace-level compose draft IPC logging
Co-authored-by: Cursor <[email protected]>
2026-05-23 04:15:26 -04:00
Raven ScottandCursor c0ce2502fd fix(ipc): set-compose-draft no longer pushes full UI state
Co-authored-by: Cursor <[email protected]>
2026-05-23 04:10:25 -04:00
Raven ScottandCursor 9990f85624 feat(log): ui-flow guild select and IPC warn logging
Depend on pearcord-log; log select-guild and unhandled IPC via hooks.log.

Co-authored-by: Cursor <[email protected]>
2026-05-23 04:02:54 -04:00
Raven ScottandCursor 42fda37fe6 feat(ipc): add refresh-notifications handler for empty inbox UI
Re-push view state when the notifications modal Refresh control is used.

Co-authored-by: Cursor <[email protected]>
2026-05-23 03:30:28 -04:00
Raven ScottandCursor ac8083216e feat(ui-flow): forward nsfwGateEnabled on update-guild-settings (v0.8.174)
Wire guild settings IPC to platform.updateGuildSettings so the desktop UI can
toggle the server-wide NSFW acknowledgement gate.

Co-authored-by: Cursor <[email protected]>
2026-05-22 22:48:41 -04:00
Raven ScottandCursor 62fecd0589 Wire set-channel-nsfw IPC handler
Route NSFW toggle from channel context menu to platform.

Co-authored-by: Cursor <[email protected]>
2026-05-22 22:35:54 -04:00
Raven ScottandCursor c0e2347470 Wire set-channel-user-limit IPC handler
Route voice/stage user limit updates from desktop UI to platform.

Co-authored-by: Cursor <[email protected]>
2026-05-22 22:25:39 -04:00
Raven ScottandCursor 6f75eaaa11 Wire rename-channel IPC and role hoist updates
Handle rename-channel and pass hoist flag through update-guild-custom-role.

Co-authored-by: Cursor <[email protected]>
2026-05-22 22:17:45 -04:00
Raven ScottandCursor 2a16746f71 feat(ui-flow): move-channel-to-parent IPC handler (v0.8.168)
Wire category drag-drop moves from the desktop UI to the platform.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:55:31 -04:00
Raven ScottandCursor 512f62cda8 feat(ui-flow): IPC handler for set-channel-mute-duration
Co-authored-by: Cursor <[email protected]>
2026-05-22 21:45:07 -04:00
Raven ScottandCursor abd9b9446f feat(ui-flow): IPC handler for reorder-guild-custom-roles
Wire settings drag-reorder to platform.reorderGuildCustomRoles.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:38:01 -04:00
Raven ScottandCursor 64aa0a9932 feat(ui-flow): handle set-channel-notification-level IPC
Route channel notification level changes from the desktop UI to the
platform layer.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:20:31 -04:00
Raven ScottandCursor e207b0e97b feat(ui-flow): mark-channel-read IPC and attachment uploadLocalId echo
Support channel mark-read from context menus and pass through upload
local ids on attachment-staged for composer progress UI.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:14:38 -04:00
Raven ScottandCursor d9ba232b7d feat(ui-flow): handle reorder-categories IPC
Route category drag-reorder from the desktop UI to the platform layer.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:08:24 -04:00
Raven ScottandCursor 6ef43b0893 feat(ui-flow): handle reorder-channels IPC from desktop UI
Route sidebar drag-reorder to platform.reorderChannelsInParent and
refresh view state after sibling positions update.

Co-authored-by: Cursor <[email protected]>
2026-05-22 21:03:28 -04:00
Raven ScottandCursor 4e66fd3e31 feat(ui-flow): handle remove-search-recent IPC (v0.8.140)
Co-authored-by: Cursor <[email protected]>
2026-05-22 19:41:52 -04:00
Raven ScottandCursor cefc3b69c9 fix(ui-flow): await async setDiscoveryFilter on update-discovery-filter
Phase 146 (v0.8.111): ensures Explore filter prefs are written before
state push returns to the renderer.

Co-authored-by: Cursor <[email protected]>
2026-05-22 15:54:52 -04:00
Raven ScottandCursor a547a4bb3d feat(ui-flow): set-voice-roster-expanded IPC handler
Phase 145 (v0.8.110): forwards channel expand/collapse toggles to
platform.setVoiceRosterChannelExpanded for USER_PREFS persistence.

Co-authored-by: Cursor <[email protected]>
2026-05-22 15:23:48 -04:00
Raven ScottandCursor aed80652dc feat(ui-flow): pass publicListing on create-guild IPC
Phase 144 (v0.8.109): create-guild forwards publicListing to
platform.createGuild so the create-server modal listing checkbox is honored.

Co-authored-by: Cursor <[email protected]>
2026-05-22 15:06:03 -04:00
Raven ScottandCursor 00cfaeb3bc feat(ui-flow): IPC for explore baseline, onboarding Explore, async thread filter
Phase 142: format-discovery-baseline-link handler (existing).

Phase 143 (v0.8.108):
- mark-onboarding-explore-shown clears first-guild Explore prompt
- join-invite forwards explore deep-link results as deep-link-result
- await setThreadsPanelFilter for USER_PREFS persistence

Co-authored-by: Cursor <[email protected]>
2026-05-22 14:48:41 -04:00
Raven ScottandCursor 97df9a13fd feat(ui-flow): wire set-voice-roster-combined-filter IPC
Dispatch combined voice roster filter preset to platform (Phase 141).

Co-authored-by: Cursor <[email protected]>
2026-05-22 14:17:34 -04:00
Raven ScottandCursor cf83bb0cb9 feat(ui-flow): wire set-voice-roster-deafened-only IPC
Dispatch desktop IPC to platform.setVoiceRosterDeafenedOnly for
Phase 140 voice roster filtering.

Co-authored-by: Cursor <[email protected]>
2026-05-22 14:08:47 -04:00
Raven ScottandCursor b450239f57 feat(ui-flow): handle set-voice-roster-muted-only IPC
Wire desktop IPC set-voice-roster-muted-only to platform
setVoiceRosterMutedOnly for Phase 139 sidebar voice roster filter.

Co-authored-by: Cursor <[email protected]>
2026-05-22 14:04:59 -04:00
Raven Scott b4f0cbd0f0 docs: full module READMEs (v0.8.103 platform audit) 2026-05-22 13:40:05 -04:00
Raven ScottandCursor 0de1297a66 feat(ui-flow): handle discovery-explore-opened IPC (Phase 137)
Wire discovery-explore-opened to platform.markDiscoveryExploreOpened so the
Pear UI can reset the discovery listing baseline whenever Explore opens.

Co-authored-by: Cursor <[email protected]>
2026-05-22 12:53:12 -04:00
Raven ScottandCursor ec344bc897 feat(ui-flow): set-server-folder-color IPC (v0.8.100)
Wire folder color changes from desktop context menu.

Co-authored-by: Cursor <[email protected]>
2026-05-22 12:07:37 -04:00
Raven ScottandCursor edf7c478cd feat(ui-flow): thread pin/mute IPC handlers (v0.8.99)
Wire toggle-thread-pin and set-thread-notification-muted through the
UI flow bridge.

Co-authored-by: Cursor <[email protected]>
2026-05-22 11:53:34 -04:00
Raven ScottandCursor 426e305879 feat(ui-flow): set-threads-panel-sort IPC (v0.8.98)
Wire threads panel sort mode through the UI flow bridge.

Co-authored-by: Cursor <[email protected]>
2026-05-22 11:39:00 -04:00
Raven ScottandCursor 8f1dc42505 feat(ui-flow): IPC set-threads-panel-parent-filter (v0.8.97)
Wire guild-scope threads panel parent channel filter through the UI
flow bridge so desktop can limit Active Threads to one parent channel.

Co-authored-by: Cursor <[email protected]>
2026-05-22 11:22:36 -04:00
Raven ScottandCursor daf89afe1a feat(ui-flow): refresh-search IPC for mesh search rerun (Phase 130)
Wire refresh-search to platform.refreshSearch() and pushState so the
desktop ↻ control can refresh guild/forum mesh hits on demand.

Co-authored-by: Cursor <[email protected]>
2026-05-22 10:57:01 -04:00
Raven ScottandCursor 8d9a39b9d8 feat(ui-flow): server-folder-created IPC for undo toast (Phase 129)
After create-server-folder (with optional initialGuildId assign), emit
server-folder-created so the desktop UI can show an undo toast that
deletes the folder and unassigns the guild.

Co-authored-by: Cursor <[email protected]>
2026-05-22 10:44:40 -04:00
Raven ScottandCursor 26a1a718de feat(ui-flow): offline pair QR SVG and folder drag-create (Phase 128)
device-pair-code IPC now includes qrSvg from pearcord-qr renderQrSvg
for the pearcord://pair URL beside the raw pcdv_ invite.

create-server-folder assigns initialGuildId to the new folder after
create (drag guild onto rail folder button flow).

Add file:../pearcord-qr dependency for Bare smokes and desktop IPC.

Co-authored-by: Cursor <[email protected]>
2026-05-22 10:30:23 -04:00
Raven ScottandCursor 937cb41c64 feat(ui-flow): open-notification and device pair deep link IPC (v0.8.92)
Dispatch open-notification for companion inbox taps and include pairUrl
when creating device pair codes.

Co-authored-by: Cursor <[email protected]>
2026-05-22 10:15:18 -04:00
Raven ScottandCursor faaa2bdcab feat(ipc): set-threads-panel-filter and update-search includeMesh (v0.8.86)
Wire new UI IPC handlers for thread panel filter modes and mesh-aware search.

Co-authored-by: Cursor <[email protected]>
2026-05-22 08:02:52 -04:00
Raven ScottandCursor cdd8eb8c98 feat(scenarios): audit modal filter double-refresh UI IPC scenario (v0.8.85)
Add runAuditModalFilterDoubleRefreshScenario to exercise set-audit-log-export-filter
followed by two refresh IPC cycles, asserting user prefs and guild schedule filter
remain stable — matching audit modal close/reopen without a live renderer.

Co-authored-by: Cursor <[email protected]>
2026-05-22 07:52:17 -04:00
Raven ScottandCursor 91f88c73b3 feat(ui-flow): audit filter IPC and onboarding audit CSV scenario (v0.8.83)
- set-audit-log-export-filter IPC handler
- runOnboardingHostAuditCsvScenario for UI IPC smokes with badge/dashboard verify

Co-authored-by: Cursor <[email protected]>
2026-05-22 07:39:12 -04:00
Raven ScottandCursor e09098ccf1 feat(ui-flow): audit CSV download and mesh sync IPC (v0.8.81)
- export-audit-log with download flag → audit-export-download
- sync-audit-export-csv → pushAuditExportCsvToMesh

Co-authored-by: Cursor <[email protected]>
2026-05-22 07:26:14 -04:00
Raven ScottandCursor 33bf9d078c feat(ui-flow): IPC for webhook relay dry-run and archive health prefs (v0.8.79)
Expose dry-run-digest-webhook-relay, refresh-archive-peer-health, and
set-archive-health-prefs sidecar channels for server settings UI.

Co-authored-by: Cursor <[email protected]>
2026-05-22 07:11:31 -04:00
Raven ScottandCursor 9652d2b775 feat(ui-flow): webhook relay dry-run and archive health refresh IPC
Wire dry-run-digest-webhook-relay and refresh-archive-peer-health handlers.

Co-authored-by: Cursor <[email protected]>
2026-05-22 06:59:00 -04:00
Raven ScottandCursor 83d14ffc51 feat(ui-flow): ensure-mod-digest-group-dm IPC handler
Wire UI button to platform.ensureModDigestGroupDmChannel and emit
mod-digest-group-dm-ready after channel creation.

Co-authored-by: Cursor <[email protected]>
2026-05-22 06:37:48 -04:00
Raven ScottandCursor fa073bacd0 feat(ui-flow): pass channelTag on announce-worker-release IPC
Co-authored-by: Cursor <[email protected]>
2026-05-22 06:19:32 -04:00
Raven ScottandCursor fa28943fc7 feat(ui-flow): IPC for hook failure digest notification prefs
Handle set-hook-failure-digest-notify-prefs from server settings UI.

Co-authored-by: Cursor <[email protected]>
2026-05-22 06:10:59 -04:00
Raven ScottandCursor e43bd5768b feat(ui-flow): digest relay handoff IPC and semver announce option
Handle get-digest-relay-handoff and pass allowDowngrade to announceWorkerRelease.

Co-authored-by: Cursor <[email protected]>
2026-05-22 06:01:04 -04:00
Raven ScottandCursor 3e2af0f29f feat(ui-flow): automation health dashboard and digest notify prefs IPC
Handle get-automation-health-dashboard and set-automation-digest-notify-prefs
worker messages for server settings automation panel.

Co-authored-by: Cursor <[email protected]>
2026-05-22 05:46:16 -04:00
Raven ScottandCursor f2d3928e1d feat(ui-flow): pass digest snapshot fetch retry options to platform
Forward maxAttempts and baseDelayMs for automation digest mesh fetch;
surface fetchAttempts on error events for UI retry feedback.

Co-authored-by: Cursor <[email protected]>
2026-05-22 05:37:33 -04:00
Raven ScottandCursor 34f63baf09 feat(ui-flow): handle fetch-automation-digest-snapshot worker message
Bridge UI fetch-automation-digest-snapshot to platform.fetchAutomationDigestSnapshotFromMesh
with timeout and optional targetMemberId; emit body or error events to the renderer.

Co-authored-by: Cursor <[email protected]>
2026-05-22 05:31:56 -04:00
Raven ScottandCursor 5f96ee8b9d feat(ui-flow): automation digest export schedule IPC handlers
Add set-automation-digest-export-schedule and run-automation-digest-export-now
for scheduled email-style digest bundle exports in server settings.

Co-authored-by: Cursor <[email protected]>
2026-05-22 05:23:38 -04:00
Raven ScottandCursor 4633245da7 feat(ui-flow): peer picker, schedule digest export, trial matrix IPC
Pass targetMemberId for archive mesh fetch. Add export-automation-schedule-digest,
run-worker-trial-matrix, and list-audit-archive-fetch-peers handlers.

Co-authored-by: Cursor <[email protected]>
2026-05-22 05:09:15 -04:00
Raven ScottandCursor d930d3b8a2 feat(ui-flow): archive fetch errors and overdue automation IPC
Wrap mesh archive fetch in try/catch with audit-export-archive-error.
Pass maxAttempts/baseDelayMs for retry. Add run-overdue-automation-schedules.

Co-authored-by: Cursor <[email protected]>
2026-05-22 05:03:33 -04:00
Raven ScottandCursor bfc6d3c3b4 feat(ui-flow): mesh archive fetch IPC and automation dashboard
fetch-audit-export-archive accepts fetchMesh to call
fetchAuditExportArchiveFromMesh. Add get-automation-schedule-dashboard
handler for server settings refresh.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:57:18 -04:00
Raven ScottandCursor 16b2a4065b feat(ui-flow): fetch-audit-export-archive and run-worker-install-trial IPC (Phase 101)
Wire archive download and in-process worker trial sidecar messages.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:49:11 -04:00
Raven ScottandCursor 8e8691adcf feat(ui-flow): digest schedule and worker install plan IPC (Phase 100)
Wire set-digest-export-schedule, run-digest-export-now, and
get-worker-install-plan sidecar messages.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:44:45 -04:00
Raven ScottandCursor b5b8158d64 feat(ui-flow): audit schedule, digest sync, export-now IPC (Phase 99)
Wire set-audit-export-schedule, run-audit-export-now, and
sync-hook-failure-digest sidecar messages to platform APIs.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:38:49 -04:00
Raven ScottandCursor 63c13f631c feat(ui-flow): export-hook-failure-digest and releaseNotes IPC (Phase 98)
Wire export-hook-failure-digest and announce-worker-release releaseNotes
to platform APIs; pass gossip flag on export-audit-log by default.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:32:25 -04:00
Raven ScottandCursor a2d71f4881 feat(ui-flow): export-audit-log IPC handler (Phase 97)
Wire export-audit-log sidecar message to platform.exportAuditLog and return
audit-export payload (format, count, body) for clipboard export in the UI.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:27:19 -04:00
Raven ScottandCursor 477359e3fe feat(ipc): announce-worker-release from server settings
Allows mods to gossip the current app version as the published
worker release for other guild peers on the mesh.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:17:53 -04:00
Raven ScottandCursor 43b5648f1c feat(ipc): handle set-hook-failure-prefs from server settings UI
Wires hook failure notification mute checkbox to platform
setHookFailurePrefs and refreshes view state.

Co-authored-by: Cursor <[email protected]>
2026-05-22 04:05:12 -04:00
Raven ScottandCursor 1ea00cabc5 feat(ui-flow): dry-run-automod IPC with member role simulation
Preview automod as a regular member so moderators see accurate block
reasons in server settings (Phase 92).

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:52:15 -04:00
Raven ScottandCursor 9068ef8b5c feat(ui-flow): dry-run-automation-hook IPC for hook editor preview
Return automation-hook-dry-run payload to UI after simulating sample
APP_EVENT match against hook filters (Phase 91).

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:48:33 -04:00
Raven ScottandCursor 1d505be532 feat(ui-flow): IPC for receipt retention and worker script export
Handle set-automation-receipt-retention and export-integration-worker-script
messages from server settings automation panel (Phase 90).

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:44:53 -04:00
Raven ScottandCursor 0d1ff0564e feat(ipc): automation hook and manifest export/import dispatch
Handle upsert-automation-hook, delete-automation-hook, export-automation-manifest,
and import-automation-manifest UI messages for server settings.

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:20:16 -04:00
Raven Scott 3839dd6ac7 feat(ui-flow): IPC for channel permission overwrites
Wire upsert-channel-overwrite and delete-channel-overwrite to platform APIs.
2026-05-22 02:56:26 -04:00
Raven Scott f4ecbab483 feat(ui-flow): IPC for activity image upload and preview
Wire set-activity-image and request-activity-image to platform staging and
readActivityImagePreview; responds with activity-image for the renderer.
2026-05-22 02:51:19 -04:00
Raven Scott d48d194b32 feat(ui-flow): IPC handlers for channel topic and description
Add set-channel-topic and set-channel-description dispatch to platform
setChannelTopic/setChannelDescription for the header edit modal.
2026-05-22 02:45:09 -04:00
Raven ScottandCursor 520927d24e feat(ui-flow): set-activity, clear-activity, and presence activity IPC
Handle set-presence activity field plus dedicated set-activity and
clear-activity messages for the status modal Now Playing controls.

Co-authored-by: Cursor <[email protected]>
2026-05-22 02:37:24 -04:00
Raven ScottandCursor a23925b49a feat(ui-flow): IPC handlers for server folder management
Add create-server-folder (optional initialGuildId assign), delete-server-folder,
assign-guild-to-folder, set-server-folder-collapsed, and rename-server-folder
messages that delegate to platform methods and pushState.

Co-authored-by: Cursor <[email protected]>
2026-05-22 02:27:28 -04:00
Raven ScottandCursor 120e4156f2 feat(ui-flow): set-threads-panel-archived IPC (Phase 75)
Co-authored-by: Cursor <[email protected]>
2026-05-22 02:22:42 -04:00
Raven ScottandCursor afd5720efa feat(ui-flow): invite/guild deep link IPC and deep-link-result (Phase 74)
format-invite-deep-link, format-guild-deep-link, and navigate-deep-link
now emits deep-link-result with kind/joined/found fields.

Co-authored-by: Cursor <[email protected]>
2026-05-22 02:18:38 -04:00
Raven ScottandCursor 13df195776 feat(ui-flow): join-voice-listen IPC for lurker voice audience (Phase 72)
Dispatches platform.joinVoiceListenOnly so lurkers can enter voice
channels without attempting a full transmit join.

Co-authored-by: Cursor <[email protected]>
2026-05-22 02:10:42 -04:00
Raven ScottandCursor fa6079a4b6 feat(ipc): navigate-deep-link, format-message-deep-link, mark-notification-read
Wire deep link navigation and single-notification read for inbox jumps.

Co-authored-by: Cursor <[email protected]>
2026-05-22 02:05:03 -04:00
Raven ScottandCursor 63c8bf041d feat(ipc): jump-to-message handler with state push
Wire jump-to-message to platform.jumpToMessage and emit
jump-to-message-result after pushState for UI scroll coordination.

Co-authored-by: Cursor <[email protected]>
2026-05-22 01:55:17 -04:00
Raven ScottandCursor c182f6ab42 feat(ipc): guild icon upload, clear, and preview request handlers
Wire set-guild-icon-image, clear-guild-icon, and request-guild-icon
to platform APIs for server settings and server rail rendering.

Co-authored-by: Cursor <[email protected]>
2026-05-22 01:52:43 -04:00
Raven ScottandCursor 58a7c4c253 feat(ui-flow): IPC for custom guild role CRUD and member assignments
Handles create-guild-custom-role, update-guild-custom-role, delete-guild-custom-role,
and set-member-custom-roles messages from server settings UI.

Co-authored-by: Cursor <[email protected]>
2026-05-22 01:48:24 -04:00
Raven ScottandCursor d154178e70 feat(ipc): set-guild-emoji-roles handler for role access UI
Wire server settings emoji role checkboxes to platform.setGuildEmojiAllowedRoles.
Phase 63 / v0.8.28.

Co-authored-by: Cursor <[email protected]>
2026-05-22 00:46:23 -04:00
Raven ScottandCursor b552b9cb19 feat(ipc): include fetchSource on attachment-preview responses
request-attachment-preview now forwards preview.fetchSource at the top level
of attachment-preview so the Pear UI can show P2P mesh provenance without
parsing nested preview fields.

Phase 60 / v0.8.25.

Co-authored-by: Cursor <[email protected]>
2026-05-22 00:36:16 -04:00
Raven ScottandCursor 8f5958db9a feat(ui-flow): onboarding host/guest scenarios for mesh E2E smokes
Add runOnboardingHostScenario (register, create-guild, pre-mesh message,
createInvite) and runOnboardingGuestJoinScenario (register, join-invite
with needsGuild assertions). Used by test:onboarding-mesh to validate the
same IPC path as the Pear onboarding + Join modal over live Hyperswarm.

Co-authored-by: Cursor <[email protected]>
2026-05-22 00:28:13 -04:00
Raven ScottandCursor 723205f5f3 feat(ui-flow): IPC for guild soundboard upsert, play, and preview
Handle upsert-guild-sound, remove-guild-sound, play-soundboard, and
request-sound-preview messages in the shared UI dispatch path used by Pear
and Bare flow smokes.

Co-authored-by: Cursor <[email protected]>
2026-05-22 00:19:49 -04:00
Raven ScottandCursor 5cfb66ef83 feat(ui-flow): IPC for set-forum-include-archived
Wire set-forum-include-archived message to platform.setForumIncludeArchived
so the forum archive toggle updates view state.

Co-authored-by: Cursor <[email protected]>
2026-05-22 00:13:55 -04:00