Namespace EchoHub.Server.Services
Classes
- 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.
- MuteExpirationService
Background service that periodically unmutes users whose timed mute has expired.
- 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.