Community Plugin — Breaking Changes
This project is pre-production. There are no external consumers and no deprecation cycles. This page is a bullet-point list of breaking changes aimed at internal consumers updating against main.
Recent Breaking Changes
Section titled “Recent Breaking Changes”Notification entity removed
Section titled “Notification entity removed”Notificationentity no longer exists inslingshot-community.- Routes previously at
/community/notifications/*are gone. - Notification delivery is now handled entirely by
@lastshotlabs/slingshot-notifications. createNotificationSseConfig()helper is deleted — useslingshot-notificationsSSE route.
ContentType alias deleted
Section titled “ContentType alias deleted”- Import
ContentFormatfrom@lastshotlabs/slingshot-coreinstead. - Values:
'plain'|'markdown'. The'rich'option was removed.
scoringFn / rankingFn superseded by scoring
Section titled “scoringFn / rankingFn superseded by scoring”- The declarative
scoringconfig block replacesscoringFnfor most use cases. scoringFnandrankingFnare no longer supported as inline callbacks on community config.- The
listByContainerSortedoperation’ssortpresets (new,active,hot,top,controversial) replace customrankingFnusage in list routes.
Removed callback config
Section titled “Removed callback config”tenantResolveris removed fromCommunityPluginConfig; tenant scoping now comes from the standard Slingshot request context.autoModerationHookis removed fromCommunityPluginConfig; use declarativeAutoModRulerecords instead.adminGateis removed fromCommunityPluginConfig; moderator/admin access is handled through the standard permission model.
Thread and Reply content fields added
Section titled “Thread and Reply content fields added”ThreadandReplynow include:mentions,broadcastMentions,mentionedRoleIds,attachments,embeds.Threadadds:pollId,solutionReplyId,solutionMarkedAt.Replyadds:quotedReplyId,quotePreview.
New entities
Section titled “New entities”The following entities were added. If you are syncing a running database, add the corresponding tables / collections:
Tag,ThreadTagContainerSubscription,ThreadSubscriptionUserMute,BookmarkAutoModRule,Warning,AuditLogEntryContainerInvite
threads list route — dataScope auth required
Section titled “threads list route — dataScope auth required”GET /community/threads and GET /community/threads/:id use dataScope: { field: 'authorId', from: 'ctx:actor.id' }. The canonical binding is ctx:actor.id. Ensure your auth middleware (or
test harness) sets the actor before the route handler runs, even on auth: 'none' routes.