Commit Graph
518 Commits
Author SHA1 Message Date
Raven ScottandCursor dabdaaa7e2 feat(platform): wire voice audio-frame broadcast on guild voice mesh
Forward VoiceMediaHub audio-frame events to guild.sendVoiceMedia so live
Opus/pcm frames fan out to all peers in the voice channel. Emit voice-media
on audio activity for UI refresh.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:59:48 -04:00
Raven ScottandCursor 3eff053cf8 feat(platform): v0.7.7 automod enforcement and guild module bootstrap
Integrate pearcord-automod: pre-send check in _sendPlainMessage,
setAutomodConfig/getAutomodConfig with MANAGE_GUILD gate, P2P gossip
handler, automodConfig in view(), and _ensureGuildModules() so forum,
stage, and automod initialize on loadGuild/join/create paths.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:54:57 -04:00
Raven ScottandCursor 52be3813ab feat(platform): v0.7.6 stage channels — join, request speak, mod approve
Integrate pearcord-stage with voice occupancy: joinStageChannel sets
audience/speaker roles and auto-mutes audience; requestStageSpeak,
approveStageSpeaker, demoteStageSpeaker with STAGE_SPEAKER_UPDATE gossip.
Clear stage role on voice leave. View exposes stageRolesByChannel,
myStageRole, and stagePendingRequests. Include stage in voice occupancy
snapshots.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:50:05 -04:00
Raven ScottandCursor d39a1e6962 feat(platform): v0.7.5 announcement channels — mod-only post and typing gates
Wire CHANNEL_TYPES.ANNOUNCEMENT through channel settings, search, unread,
and view.canPostInActiveChannel. _assertAnnouncementPost() requires
MANAGE_MESSAGES for sendMessage/createForumPost paths; block TYPING_START
for non-moderators. Integrates pearcord-threads isAnnouncementChannel().

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:42:59 -04:00
Raven ScottandCursor 0716dfc692 feat(platform): apply channel slowmode to forum new-post creation (v0.7.4)
Add _assertSlowmodeFor and _recordSlowmodeFor so createForumPost rate-limits on
the forum channel id before switching into the post thread. Include forum
channels in channelSettings snapshot for header slowmode badge.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:37:37 -04:00
Raven ScottandCursor 165f42e51b feat(platform): forum tags module, palette, filter, and createForumPost tags
Co-authored-by: Cursor <[email protected]>
2026-05-21 21:34:42 -04:00
Raven ScottandCursor 6eca466781 feat(platform): createForumPost API and forumPosts view snapshot
Create forum posts as threads with starter messages, gossip channel create/
update, audit forum.post.create, and expose sorted forumPosts when a forum
channel is active. Block typing on forum channels.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:30:12 -04:00
Raven ScottandCursor 6dadc18c51 feat(platform): gate kick, ban, and bot install tokens behind step-up PIN
Wire pearcord-step-up into bootstrap and view snapshot (stepUpPinSet,
stepUpUnlocked). Add setStepUpPin, verifyStepUpPin, clearStepUpPin, and
_assertStepUp before moderation and bot-admin APIs. Depends on pearcord-step-up.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:24:24 -04:00
Raven ScottandCursor ab31c97441 feat(platform): gossip DM read receipts on markChannelRead
When marking a DM channel read, fan out CHANNEL_READ on the DM mesh.
Expose dmPeerReadAt and dmReadByUser on view() for Seen UI.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:16:54 -04:00
Raven ScottandCursor 031b5ffa71 feat(platform): pruneDiscoveryListings wrapper
Expose discovery.pruneStaleListings for future IPC; listing reads
already auto-prune via listPublicListings in view().

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:14:23 -04:00
Raven ScottandCursor 200f2e54b5 feat(platform): setGuildDiscoveryTags and discovery tag filter
Wire discovery tags through platform view and IPC.

- setGuildDiscoveryTags re-announces public listing when listed
- setDiscoveryFilter accepts tag; view.discoveryAllTags
- _refreshDiscoveryAnnouncements includes guild tags

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:12:53 -04:00
Raven ScottandCursor 9d089e2dda feat(platform): thread channel typing hints and archived guards
Extend guild typing for thread channels (v0.6.6 Phase 20).

- _buildThreadTypingByParent for sidebar typing pills on thread rows
- view.threadTypingByParent with displayNames per active thread
- Block sendMessage in archived threads (_assertChannelWritable)
- signalTyping no-op when active thread is archived
- Reuse memberNameById for voice + thread typing maps

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:10:26 -04:00
Raven ScottandCursor 11b0346e17 feat(platform): discovery filter state in view
Add setDiscoveryFilter() and expose filteredPublicListings,
discoveryFilter on view() for Explore UI and autonomous smokes.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:07:54 -04:00
Raven ScottandCursor ee460f6ee2 feat(platform): setPresence accepts optional customStatus
Pass customStatus through to PearcordPresence.setStatus so IPC and
contacts.broadcastPresence can sync status text to friends.

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:05:23 -04:00
Raven ScottandCursor 913149cc2a feat(platform): friend presence and guild channel typing in view
Extend PearcordPlatform for v0.6.3 social realtime polish.

- setPresence also contacts.broadcastPresence()
- listContacts enriches accepted friends with presence/customStatus
- _guildTyping map (5s TTL) + _onGuildTyping from guild typing event
- signalTyping fans out to DM and guild.gossipTyping in guild mode
- view() typingUsers: member names in guild, peer id in DM
- friend-presence IPC event for UI status dots

Co-authored-by: Cursor <[email protected]>
2026-05-21 21:03:46 -04:00
Raven ScottandCursor 7dcb5875ca feat(platform): v0.6.2 createGroupDM and openGroupDM APIs
_initDmSession with Hyperswarm keypair, gossip group channel on create,
view fields dmIsGroup and dmParticipantIds.

Co-authored-by: Cursor <[email protected]>
2026-05-21 20:59:54 -04:00
Raven ScottandCursor 4e9afd18d6 feat(platform): v0.6.1 image guild emoji staging and preview API
stageGuildEmojiImage on __emoji__ channel, upsertGuildEmoji with image blob,
gossip ATTACHMENT_META with EMOJI_UPSERT, readEmojiImage for UI IPC.

Co-authored-by: Cursor <[email protected]>
2026-05-21 20:56:45 -04:00
Pearcord dc38423a91 chore: publish pearcord-platform from pearcord workspace 2026-05-21 20:51:54 -04:00