Commit Graph
323 Commits
Author SHA1 Message Date
Raven Scott 881fbfae4b feat(platform): wire DisplayCaptureFeed and ingestDisplayCapture
Attach display capture feed to ScreenShareHub, reset on voice leave/stop
share, and accept base64 JPEG frames from the Pear UI for P2P screen share.
2026-05-21 22:22:17 -04:00
Raven Scott 0ec5bbfe56 feat(platform): wire VoiceCaptureFeed and ingestVoiceCapture API
Attach capture feed to VoiceMediaHub on guild load, reset on voice leave,
and accept base64 PCM chunks from the Pear UI for live microphone send.
2026-05-21 22:17:17 -04:00
Raven Scott 35ee850d17 feat(platform): wire pearcord-boosts APIs and view.guildBoost
Integrate PearcordBoosts with lazy module init, gossip ingest on
guild-boost, addGuildBoost/setGuildBoostBannerColor/getGuildBoost with
Manage Guild permission checks, audit guild.boost entries, and expose
guildBoost in platform.view() for UI accents and server settings.
2026-05-21 22:14:34 -04:00
Raven ScottandCursor 3f614a5c9c feat(platform): v0.8.0 announcement follow and cross-post
Mirror announcement posts to configured text channels via P2P gossip,
per-user follow with announcement notifications, server settings APIs,
and view fields for UI.

Co-authored-by: Cursor <[email protected]>
2026-05-21 22:07:25 -04:00
Raven ScottandCursor d000ac43d6 feat(platform): v0.7.9 screen share start/stop in voice channels
Integrate ScreenShareHub on guild voice init, broadcast frames over mesh,
auto-stop on voice leave, startScreenShare/stopScreenShare APIs, and
screenShare snapshot in view().

Co-authored-by: Cursor <[email protected]>
2026-05-21 22:03:16 -04:00
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