Commit Graph
31 Commits
Author SHA1 Message Date
Raven ScottandCursor 1d8e700bd1 feat(search): guild index, mesh fanout, thread filter, companion readOnly (v0.8.86)
Integrate pearcord-search GuildSearchIndex with incremental message indexing.
Add searchGuildMessagesWithMesh via MESSAGE_SEARCH_REQUEST/RESPONSE gossip.
Expose searchMeshMeta, threadsPanelFilter, readOnly, and companionMode in view.
setThreadsPanelFilter, setSearch includeMesh, and block sends in read-only mode.

Co-authored-by: Cursor <[email protected]>
2026-05-22 08:02:52 -04:00
Raven ScottandCursor aae2a51cd1 feat(platform): Phase 111 relay plugins, digest summary, prerelease tag
- digestRelayPlugins on GUILD_SYNC; apply active plugin to relay handoff
- Hook failure digest summary channel post on mesh push
- Worker announce channelTag; dry-run relay preview for digest-relay hooks

Co-authored-by: Cursor <[email protected]>
2026-05-22 06:19:31 -04:00
Raven ScottandCursor 13a4b69b7c feat(platform): integration workers, hook editor APIs, receipt retention
Add pearcord-integration-worker templates, PearcordIntegrationWorker class,
createIntegrationWorker/buildIntegrationWorkerScript, receipt retention
get/set, and emit app-event on bot bridge for local worker subscriptions.

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:44:42 -04:00
Raven ScottandCursor c4b46d63e9 feat(platform): dispatch automation hooks and record P2P delivery receipts
Wire pearcord-delivery-receipts to run enabled hooks on every APP_EVENT and
bot-bridged messageCreate. Successful deliveries gossip APP_EVENT_RECEIPT;
view exposes automationDelivery stats for server settings UI.

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:39:41 -04:00
Raven ScottandCursor 41a0adf295 feat(automations): export/import manifest and GUILD_SYNC hooks slice
Wire pearcord-automation-export: list/upsert/delete hooks, exportAutomationManifest,
importAutomationManifest, mesh gossip ingest, and automationHooks in view().

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:20:15 -04:00
Raven ScottandCursor 23a1c999d6 feat(automations): APP_EVENT fanout and createAppListener
Wire pearcord-app-events on guild open: bridge bot payloads, fanout channel
permission and custom-role changes, gossip APP_EVENT to mesh, and expose
view.appEvents snapshot for debugging.

Co-authored-by: Cursor <[email protected]>
2026-05-22 03:15:08 -04:00
Raven Scott 5c4b6c1ed4 feat(platform): GUILD_SYNC channel meta + SEND_MESSAGES enforcement
Bundle channelSettings (description + slowmode) and all topic-bearing channel
types in GUILD_SYNC; ingest into ChannelDescriptionStore on peer join. Push
mesh sync after topic/description edits. _participationMask applies channel
overwrites for send, voice join, and view.canPostInActiveChannel.
2026-05-22 03:02:43 -04:00
Raven Scott 30f27c515a feat(platform): per-channel permission overwrites (Phase 82)
Integrate pearcord-channel-permissions: list/upsert/delete overwrites,
channel-effective _hasPerm/_myPermissions, GUILD_SYNC bundle, and mesh
ingest handlers. Requires MANAGE_CHANNELS on the active channel to edit.
2026-05-22 02:56:26 -04:00
Raven Scott ad99fa78f9 feat(platform): channel topic/description with description sidecar
Wire pearcord-channel-meta: setChannelTopic updates channels + gossip;
setChannelDescription uses ChannelDescriptionStore (always initialized in
ready()) while slowmode stays in HyperDB. Ingest remote CHANNEL_SETTINGS
into the sidecar. view().activeChannelSummary uses buildChannelSummary.
2026-05-22 02:45:09 -04:00
Raven ScottandCursor 05bfce0955 feat(platform): activityFeed view, setActivity, and presence gossip
Wire pearcord-activity buildActivityFeed into view(), extend setPresence and
add setActivity for Now Playing. Friend list rows include activity field.

Co-authored-by: Cursor <[email protected]>
2026-05-22 02:37:23 -04:00
Raven ScottandCursor 893f518045 feat(platform): server folders in view and user-prefs CRUD
Wire pearcord-server-folders into PearcordPlatform: createServerFolder,
assignGuildToFolder, collapse/rename/delete, and buildServerRailLayout on
view() as serverRail with folderColors. Persist via updateUserPrefs
serverFolders and emit user-prefs after saves.

Co-authored-by: Cursor <[email protected]>
2026-05-22 02:27:28 -04:00
Raven ScottandCursor 22de3514ca feat(platform): custom guild roles and permission editor integration (v0.8.31)
Wire pearcord-guild-roles for create/update/delete roles, member assignments,
_hasPerm enforcement, GUILD_SYNC role bundles, and view.guildCustomRoles for UI.

Co-authored-by: Cursor <[email protected]>
2026-05-22 01:48:30 -04:00
Raven ScottandCursor b8badff7b1 feat(platform): guild voice soundboard upsert, play, and view state (v0.8.21)
Integrate pearcord-soundboard: stage WAV attachments, upsert/remove registry rows,
gossip SOUND_UPSERT/SOUND_PLAY, playSoundboardSound with voice-plane injection,
remote play ingest on guild-sound-play, and expose guildSounds/recentSoundPlays
on platform.view(). Depends on pearcord-soundboard file dep.

Co-authored-by: Cursor <[email protected]>
2026-05-22 00:19:46 -04:00
Raven ScottandCursor 7635295cfb feat(platform): forum archive search and show-archived toggle (v0.8.20)
Add searchForumPosts, setForumIncludeArchived, forum search scope in
_resolveSearchResults (fix channel db.get with guildId), guild search thread
titles, and pearcord-forum-search dependency.

Co-authored-by: Cursor <[email protected]>
2026-05-22 00:13:51 -04:00
Raven ScottandCursor d14fc164f5 feat(stickers): stage Lottie JSON and pass format to sticker registry (v0.8.18)
stageGuildStickerImage detects Lottie via pearcord-lottie, stores
application/lottie+json attachments, and upsertGuildSticker forwards
image bytes for validateSticker. Supports Phase 52 vector stickers.

Co-authored-by: Cursor <[email protected]>
2026-05-21 23:48:30 -04:00
Raven ScottandCursor 0ff4d29ed1 feat(profile): remote peer banner preview over P2P attachment meta (v0.8.17)
Phase 51 — remote profile banners:
- pearcord-profile-assets: embed bannerAttachment on PROFILE_COSMETIC gossip
- _gossipProfileCosmetics enriches payload; _ingestPeerCosmetics ingests meta
- readPeerProfileBannerPreview(userId) + _ensureBannerAttachmentReady
- _prefetchBannerFromPeers for guild mesh byte fallback

Peers can render banner images after cosmetics sync without a central CDN.

Co-authored-by: Cursor <[email protected]>
2026-05-21 23:43:37 -04:00
Raven ScottandCursor b9393ea45c feat(view): expose messageLayout for sticker+text combo bodies (v0.8.16)
Add pearcord-message-layout dependency and messageLayoutKind() so each
message in view() carries messageLayout: text | sticker-only | combo | hub.
Combo rows keep displayContent for caption text while sticker-only and hub
mirrors still clear displayContent for legacy render paths.

Depends on [email protected] for classifyMessageLayout().

Co-authored-by: Cursor <[email protected]>
2026-05-21 23:37:59 -04:00
Raven ScottandCursor 3899ff9a7f feat(platform): profile cosmetics save, gossip, and cosmeticsByUserId view
Integrate pearcord-profile-cosmetics with boost perk gates, guild and
contacts fanout, peer cache, profile modal IPC, and mesh join on settings swarm.

Co-authored-by: Cursor <[email protected]>
2026-05-21 23:30:28 -04:00
Raven ScottandCursor a8027178c6 feat(platform): rich hub mirror cards on ingest and in view/search
Integrate pearcord-hub-cards: build card on ANNOUNCEMENT_HUB_POST ingest,
hubMirrorJson on insert, enrichMessageRow for UI, hub-only displayContent,
authorAvatarHash in discovery payload, search haystack includes card text.

Co-authored-by: Cursor <[email protected]>
2026-05-21 23:25:40 -04:00
Raven ScottandCursor 7577984266 feat(platform): remote announcement hub publish and ingest (v0.8.5)
Wire pearcord-announcement-hub: setAnnouncementHubPublish,
subscribeRemoteAnnouncementHub, _publishAnnouncementHub on send,
_ingestAnnouncementHubPost from discovery gossip, and view fields for UI.
Depends on pearcord-announcement-hub via file: for local dev.

Co-authored-by: Cursor <[email protected]>
2026-05-21 22:30:52 -04:00
Raven Scott e75ed08dfc feat(platform): wire pearcord-stickers APIs and view.guildStickers
Initialize sticker registry per guild, upsertGuildSticker with Hyperdrive
staging, readStickerImage previews, gossip ingest, and expose
guildStickers in platform.view() for the composer picker.
2026-05-21 22:26:41 -04:00
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 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 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 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
Pearcord dc38423a91 chore: publish pearcord-platform from pearcord workspace 2026-05-21 20:51:54 -04:00