-
released this
2026-07-06 00:30:59 +02:00 | 12 commits to main since this releaseSentinel 3.0.0
Sentinel 3.0.0 marks a fundamental architectural shift. What was once a single-server bot driven by a flat config file is now a fully fledged, multi-guild moderation platform — with per-server persistent state, a Discord-native admin experience, and a guided first-run setup flow.
Highlights
- One process, many servers. A single Sentinel instance now safeguards any number of Discord guilds simultaneously, each with its own configuration, runtime state, event pipeline, and log destination.
- SQLite-backed settings. Per-guild configuration and exemption lists live in a durable SQLite database rather than
config.json. - Guided setup dashboard. The new
/sentinel setupcommand walks administrators through every facet of configuration — log channel, detection mode, trap role, thresholds, ban DMs, exemptions, validation, enablement, and retroactive assignment. - Slash commands across the board. Every piece of configuration and day-to-day operation is now exposed through Discord slash commands. No file editing, no restarts.
- Independent guild lifecycles. Each enabled server boots its own runtime; a validation failure in one guild never degrades protection in another.
- Environment-driven process config. Tokens, database path, application ID, and command-registration scope are set through environment variables or a
.envfile. - Automatic legacy migration. Existing
config.jsonvalues are imported into SQLite on first run for a frictionless upgrade.
Detection & Runtime
- A per-guild runtime manager routes Discord events exclusively to the relevant server controller, keeping guilds fully isolated.
- Both AutoMod and message detection modes are supported and switchable at runtime — no restart needed.
- AutoMod is now the recommended default: a ban triggers after 3 blocked pings within 1 hour.
- Message mode defaults to an immediate ban after 1 ping within 30 seconds.
- Trap-role assignment, reapplication, recovery from deletion, and AutoMod-rule repair all execute within each guild's isolated context.
- Bot accounts and exempt users are skipped for both assignment and enforcement.
- Logging is strictly guild-scoped — one server's activity never leaks into another's log channel.
Commands
- Core:
/sentinel status,validate,enable,disable,mode,log-channel,thresholds,retroassign,export-config. - Trap roles: creation, adoption, and renaming.
- AutoMod: managed mode toggle, rule adoption, and rule repair.
- Ban DMs & appeals: configurable pre-ban direct messages with optional appeal-server invite.
- Exemptions: per-guild trusted-user management.
- All configuration commands require Manage Server or Administrator.
- Slash-command registration can be global, limited to selected guilds, or disabled entirely via process configuration.
Deployment & Migration
- Local
.envfiles load automatically; exported environment variables take precedence. DISCORD_TOKENis the canonical token setting;SENTINEL_BOT_TOKENremains as a legacy alias.- The SQLite database defaults to
sentinel.sqlite, overridable withSENTINEL_DB_PATH. config.jsonsettings import automatically on upgrade, but the file is deprecated for ongoing use.- New deployments should configure each server through
/sentinel setup, run validation, then explicitly enable protection. - Documentation has been expanded to cover installation, Discord permissions and intents, commands, migration, configuration, day-to-day operation, and troubleshooting.
Testing & Quality
- Comprehensive test coverage added for multi-guild isolation, settings persistence, interactions, setup flows, Discord events, role management, AutoMod behavior, queues, bans, and logging.
- V8-based coverage reporting with enforced thresholds.
- CI pipeline runs the full coverage-enabled test suite alongside type-checking and production builds.
Full changelog:
8adddb6...59d6d4cDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads