-
3.1.0
StableAll checks were successfulvalidation / validate-release (push) Successful in 33sreleased this
2026-07-10 14:54:05 +02:00 | 0 commits to main since this releaseSentinel 3.1.0
Sentinel 3.1.0 is a milestone release focused on reliability, operational maturity, and safe scaling for multi-guild moderation deployments. It brings durable, revision-tracked enforcement, ownership-aware reconciliation of Discord resources, hardened deployment tooling, and a new opt-in policy for immediate bans on a spam bot's very first message.
Highlights
- First-message immediate bans. Optionally enabled in both AutoMod and message modes. Toggle it via
/sentinel first-message-ban <enabled>or directly from the setup dashboard. - Per-guild runtime rewrite. Each guild now runs inside a serialized, generation-fenced controller, ensuring clean separation and race-free execution.
- Durable state in SQLite. Detection evidence, policy epochs, enforcement claims, leases, retry tracking, and recovery state are all persisted to disk.
- Bounded role-assignment workers. Background role assignment now respects rolling rate limits while reserving throughput for incoming members.
- Ownership-aware repair. Sentinel-managed roles and AutoMod rules are reconciled only when the bot explicitly owns them.
- Supervised lifecycle management. Startup supervision, retention scheduling, graceful shutdown, and isolated per-guild initialization are all built in.
- Hardened release packaging. Node.js 24 support, a non-root OCI container image, SBOM generation, production dependency audits, and built-artifact smoke tests.
Detection & Enforcement
- Ban operations are idempotent, leased, retryable, and recoverable — a restart will not lose or duplicate enforcement.
- Policy epochs prevent cross-version enforcement. Evidence collected under an old policy can never trigger actions under a newer configuration.
- AutoMod events are accepted only from attributable
BLOCK_MESSAGEactions originating from the currently verified rule. - Message edits are durably deduplicated while still catching newly introduced trap-role mentions.
- Stale asynchronous operations are fenced out — outdated runtime or resource state can never be published.
- External resources are read-only. Roles and AutoMod rules not explicitly adopted by Sentinel are never modified.
- Retroactive role assignment now runs as a bounded background job, keeping it from overwhelming the bot's operation.
Commands & Configuration
- Slash-command registration is now surgical — it creates or updates only
/sentineland leaves all other application commands untouched. - Discord-facing inputs undergo stricter validation: length limits, channel-type checks, permission verification, and role-hierarchy enforcement.
- Status and configuration exports now surface policy revisions, resource health, reconciliation errors, and first-message-ban state.
- Configuration exports are delivered as an allowlisted JSON attachment, deliberately omitting sensitive or identifying fields.
- Setup-dashboard updates are guarded by configuration revisions, preventing stale writes from overwriting newer settings.
Deployment
- The supported runtime is now standardized on Node.js 24 and npm 11.
- Ships a non-root OCI image with persistent SQLite storage at
/data/sentinel.sqlite. - The build pipeline includes source and test type-checking, coverage gates, dependency audits, CycloneDX SBOM generation, and offline smoke validation.
- CI produces a verified release archive containing built output, dependency manifests, SBOM, container inputs, and operator documentation.
Full changelog:
c8ae311...89444ddDownloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
- First-message immediate bans. Optionally enabled in both AutoMod and message modes. Toggle it via