Table of Contents

Namespace EchoHub.Server.Services

Classes

ChannelService
ChatService
DirectoryClaimStore

Persists and exposes the EchoHubSpace directory claim — the opaque token issued on first registration and the row's stable ServerId. Also surfaces ephemeral registration status (success/failure code, conflicting hosts) for operator-facing endpoints.

Persistence uses atomic write (tmp + rename). Treat the file contents as a secret.

FileCleanupService
FileStorageService
LinkEmbedService
MessageEncryptionService
MuteExpirationService

Background service that periodically unmutes users whose timed mute has expired.

PresenceTracker
RegistrationStatus
ServerDirectoryService
SignalRBroadcaster
SpamGuard

In-memory, per-user spam protection consulted from ChatService (messages, joins) and ChannelService (channel creation), so every ingress protocol — SignalR and IRC alike — shares the same limits. State is per-process and never persisted; auto-mutes land in the normal mute store. Operates only on content the server already stores (for end-to-end encrypted rooms that is ciphertext) — nothing is decrypted.

UserService

Structs

SpamVerdict

Enums

SpamVerdictKind