Integrate pearcord-voice-notes with stage/discard/commit APIs, permission
gates, and voiceNoteDraft in view payloads for composer UI parity.
Co-authored-by: Cursor <[email protected]>
This introduces CI-enforced checks that compare index.js pearcord-* requires against declared dependencies and smoke-resolve imported modules, preventing undeclared module regressions in local file-link and attached runtime environments.
Co-authored-by: Cursor <[email protected]>
Add the missing `pearcord-dm-voice` local dependency so Bare-based attached/headless agentctl sessions can resolve platform imports reliably, and document the stabilization in the platform README for future module-graph maintenance.
Co-authored-by: Cursor <[email protected]>
Track per-peer GUILD_SYNC_ACK watermarks and stop owner burst pushes when
joiners catch up. Queue guild gossip when the mesh has zero peers and flush
on peer join. Add member/message LWW on GUILD_SYNC ingest, mod fallback sync
push, optional zlib bundles, sync health progress/bytes, and diagnostics export.
Co-authored-by: Cursor <[email protected]>
Filter bundles by joiner syncWatermark, gossip GUILD_SYNC_ACK after ingest,
append outbound messages to Hypercore via pearcord-guild-replicator, and
export channelCoreKeys in GUILD_SYNC payloads when cores exist.
Co-authored-by: Cursor <[email protected]>
Wire pearcord-webhooks for local token posts, view.guildWebhooks, gossip
sync, and webhook author display names on messages.
Co-authored-by: Cursor <[email protected]>
Wire pearcord-log for ready(), session startup, loadGuild, and openGuild
with stale-load warnings and structured errors.
Co-authored-by: Cursor <[email protected]>
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]>
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.
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.
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]>
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]>
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]>
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]>
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]>
Initialize sticker registry per guild, upsertGuildSticker with Hyperdrive
staging, readStickerImage previews, gossip ingest, and expose
guildStickers in platform.view() for the composer picker.
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.
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]>
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]>
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]>
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]>
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]>