Skip to content

Moderation: Block, Unblock, Mute, Unmute

Four structurally identical handlers, each operating on the actor's own circles.blocked or circles.muted System circle.

{ "type": "Block", "target": "@spammer@kwln.org" }
{ "type": "Unblock", "target": "@spammer@kwln.org" }
{ "type": "Mute", "target": "@annoying@kwln.org" }
{ "type": "Unmute", "target": "@annoying@kwln.org" }

Required: actorId, target (a resolvable actor/server ID). Self-block and self-mute are explicitly rejected ("cannot block yourself" / "cannot mute yourself").

target accepts @user@domain, a bare @domain server handle, or any DB-resolvable ID.

None of these four federate (federate: false always), and none create notifications.

{ activity, circleId, blocked|unblocked|muted|unmuted: bool, federate: false }.

block/unblock/mute/unmute all match { type, objectType: "User", target: userId } -- note objectType is sent by the client but unused by these handlers (they don't validate or dispatch on it). All four also call this.moderation?.invalidate() client-side to bust a local cache after success.