New features
Reputation dashboard for the Members page — Tracking your server’s XP economy used to mean clicking into one member profile at a time and squinting at the numbers. The new Reputation sub-tab on Members lives at /dashboard/members?tab=reputation and answers the operational questions in one view: total XP awarded, how members are distributed across levels, the current leaderboard, and who most recently earned XP. The Directory sub-tab still owns searchable member lookups with XP, levels, activity, warnings, and links into each member profile. See Reputation dashboard.AI Usage ops dashboard for deployment operators — Global admins get a new operator-only AI Usage page at /dashboard/ai-usage that rolls up AI activity across every server the deployment runs. It surfaces input, output, and total tokens; cache read and cache-creation tokens with read/write rates; estimated cost in USD; average and p95 latency plus generated tokens per second; provider, model, and request-type comparisons; the top servers by AI usage (with server names when the bot can resolve them); and recent expensive or slow requests. Filter by 24h, 7d, 30d, or 90d ranges and narrow by provider, model, or request type. Visibility is scoped to BOT_OWNER_IDS; server admins still see their own server’s spend under Analytics -> Messages. See AI usage ops dashboard.Deployment-wide AI usage dashboard for operators — A new operator-only AI Usage page lands at Dashboard -> AI Usage for global admins. It rolls up input, output, cache read, and cache creation tokens across every server, plus estimated cost in USD, average and p95 latency, and tokens-per-second throughput. Provider, model, and request-type filters let you slice the data; the top-servers list and recent expensive/slow requests surface the outliers worth investigating. Range picker covers 24h, 7d, 30d, and 90d. Per-server admins still see their own usage under Dashboard -> Analytics -> Messages — this page is for deployment operators with BOT_OWNER_IDS access. See AI usage ops dashboard.Improvements
Audit Log gets a refresh button and a proper header — The Audit Log page now leads with a consistent System Ops header and a one-click Refresh button so you can re-pull the table without reloading the page or changing a filter to nudge it. Same filters, same data — just less futzing. See Audit log.Bot health moved next to Performance — The bot health panel (heap, RSS, CPU, uptime) now lives on the operator-only Performance page alongside the rest of the runtime metrics, instead of sharing the Logs page. The Logs view stays focused on the live log stream and its filters. The standalone restart history log has been retired — restart events still surface in Audit log where the rest of operational history already lives.
New features
Voice activity tracking, plus voice XP that lives with the rest of reputation — Voice has always been the half of your server that didn’t show up on the leaderboard. That changes now. Voice Session Tracking is on by default under Settings -> Onboarding & Growth -> Engagement, feeding voice joins and session duration into Live Insight so the Voice Tracking analytics tab finally has data behind it — it only collects while the top-level Engagement toggle is on, so opting out is one switch. Separately, Voice XP has moved into the reputation system under Settings -> Onboarding & Growth -> Reputation, where it belongs with the rest of your XP settings. Flip it on and members earn whole XP per completed voice minute — defaults to 2 XP/min — running through the same cooldowns, level curve, and level-up actions as message XP. Existing servers are migrated in place; nothing about message XP changes. See Voice tracking and Community settings.Reputation dashboard on the Members page — Answering “how healthy is the XP economy right now?” used to mean clicking through individual member profiles and reading tea leaves. The new Reputation sub-tab on the Members page — at /dashboard/members?tab=reputation — puts the operational view in one place. You get total XP awarded across the server, level distribution, top members by XP, and the most recent XP earners. The existing Directory sub-tab still handles searchable per-member lookups with XP, levels, activity, warnings, and links into member detail. Nothing to enable — the sub-tab shows up automatically alongside Directory. See Reputation dashboard.Bug fixes
Per-channel AI mode stops showing empty categories — The Per-Channel AI Mode picker under Settings -> AI & Automation -> AI Chat used to list every category in the server, even ones with nothing for the bot to talk in. Lots of headers, lots of scrolling, zero payoff. Empty categories are now hidden, so you only see the ones you can actually configure. See Channel modes.
New features
Contextual docs button in the dashboard — Hunting through the documentation to figure out what a setting actually does was always one tab too many. Every dashboard page now ships a question-mark button in the header that opens the matching documentation right where you are — Analytics deep-links into the sub-tab you’re on, Settings deep-links into the feature you’re configuring, and the rest of the dashboard hands you the page you’d otherwise have to guess at. Same docs, zero search. Read the full mapping under Settings tabs.Improvements
Redesigned settings, with breathing room — The settings dashboard got a serious haircut. Every category page now opens with a bigger, calmer page title and a single column of consistent label / description / control rows, so the eye doesn’t have to renegotiate the layout every time you switch tabs. Section enable/disable toggles are now full-width cards with a tactile pill switch — the kind that makes it obvious what’s actually on. The step rail on the left reacts to your cursor, the Weekly Activity Heatmap plays a tasteful entrance animation on first render, and the Logs panel now wraps long audit-log lines instead of trailing them off the page. Behavior is unchanged — same settings, same routes, just a layout that earns its rent.Embed builder polish — The visual embed editor across welcome, ticket panels, and level-up actions got tightened up. Description fields now show real placeholder text instead of empty boxes, the accent color picker labels each swatch for screen readers, and the timestamp toggle is finally labeled correctly. Saved embeds render the same; the editing surface is just less fiddly to use. See Welcome message embed format and Tickets.Analytics sub-tab switcher returns to the header — The Messages, Voice Tracking, and Community Engagement switcher is back at the top of the Overview, where it’s easier to flip between views without scrolling the sidebar. The sidebar entries still work and the ?tab= URL parameter still drives both, so bookmarks and deep links from earlier this month don’t lose their place. See Analytics.Tidier dashboard chrome — A handful of small cuts across the dashboard: the always-on “Live” pill next to the page title is gone (the data is live; you knew), the server selector in the sidebar now matches the surrounding column width instead of nudging out a few pixels too far, and the audit-log table stops escaping its container on long entries. No setting to change — log back in and the surface area just feels less twitchy.
New features
Curve Builder for reputation progression — Hand-typing twenty XP thresholds to find the one shape that doesn’t feel like a part-time job is officially over. The new Curve Builder on Settings -> Onboarding & Growth -> Reputation generates the whole progression from three inputs — total Levels, Level 1 XP, and Final XP — plus a shape. Balanced spaces levels evenly, Early wins front-loads progress so newcomers feel traction, and Slow burn stiffens the early climb for servers that want long-haul regulars. Select Apply curve and every row in the Progression Steps editor below updates in place; nudge individual levels by hand afterward if you want to break the pattern. Up to 100 levels, thresholds still have to strictly increase, and existing curves are left alone until you apply a new one. See Level progression.
New features
Reputation Curve Builder reshapes level progression in one click — Tuning a 20-level XP curve by editing every threshold by hand was busywork that nobody enjoyed, especially when all you really wanted was “make the early levels faster” or “stretch the grind to Level 20.” The Reputation editor now ships a Curve Builder that regenerates the whole progression from three inputs — total Levels, Level 1 XP, and Final XP — plus a curve shape. Pick Balanced for even spacing, Early wins to front-load faster early levels and push XP into the tail, or Slow burn for heavier early requirements that soften near the end. Select Apply curve to regenerate, then fine-tune any individual level inline. Thresholds must strictly increase, at least one level is required, and the editor supports up to 100 progression steps. Configure it under Settings -> Onboarding & Growth -> Reputation. See Level progression.Incident ping roles for Content Safety — Posting an AI auto-moderation incident report into a busy staff channel only helps if the right humans actually see it, and “@everyone in #mod-reports” was never going to be the answer. Content Safety now ships an Incident Ping Roles setting that mentions the staff roles you pick whenever the bot posts a flagged incident to your Incident Report Channel. That covers Flag & Log reports plus the combined reports that also queue Hard Delete, Issue Warning, Temporary Timeout, Server Kick, or Permanent Ban. Mentions are scoped to the report channel post only — no extra pings in member DMs, moderation case embeds, audit logs, or operator logs. The bot also builds an explicit role allowlist, so a stray @everyone in the report body can’t escape. Configure it under Settings -> Moderation & Safety -> Content Safety, or set numeric Discord role IDs directly on aiAutoMod.incidentMentionRoleIds. See Incident ping roles.
New features
GLM 5.1 is the new default AI model — and the bouncer finally checks IDs at the door — Every AI surface that used to default to MiniMax M2.7 — Content Safety, triage classify and respond, and TL;DR — now defaults to Z.AI’s GLM 5.1. New servers pick it up automatically. Existing servers still parked on minimax:MiniMax-M2.7 are migrated to z-ai:glm-5.1 on upgrade, and TL;DR routing is force-migrated to GLM 5.1 across the board to fix a stale-config edge case that was leaving summary jobs pointed at the old default. Custom model picks you actually chose are left alone. At the same time, the premium tier stopped being theoretical — MiniMax, Moonshot (Kimi), Fireworks, OpenRouter, and GLM 5 Turbo are now premium-only and the dashboard dropdowns hide them on free-tier servers instead of letting you save a model and fail at runtime. GLM 5.1 stays free for everyone. Self-hosters opt specific servers into the premium catalog by listing their guild IDs in the new PREMIUM_GUILD_IDS env var. Pick your model under Settings -> AI, Settings -> Moderation & Safety -> Content Safety, Settings -> AI & Automation -> Triage, or Settings -> Community Tools -> TL;DR. See Available models.Improvements
Per-action thresholds show up in the operator log stream — The classification log line was still quoting old single-threshold percentages even after action ladders shipped, which made tuning the new per-action confidence settings a guessing game. Every Content Safety scoring pass now writes per-action threshold percentages — one per Flag & Log, Hard Delete, Issue Warning, Temporary Timeout, Server Kick, and Permanent Ban rung — alongside the legacy category numbers, plus each score as a percentage of the action threshold it would trip. Tune the ladder under Settings -> Moderation & Safety -> Content Safety with actual numbers instead of vibes. See AI auto-moderation configuration.Compact AI log lines that don’t punish your scrollback — Operator log entries for AI auto-moderation and AI triage have been put on a diet. Classification now writes a single AI automod classified: ... line with the clean/flagged verdict, the selected action, and the top category scores as score%/threshold%; triage writes matching AI triage classified: ... and AI triage skipped: ... lines with confidence and relevance side by side. Expanded metadata still carries the full per-action ladder for the strongest categories, so you keep the depth without drowning the Logs view. No configuration changes — applies to every server the next time the bot processes a message. See AI auto-moderation configuration.
New features
GLM 5.1 is the new default AI model — New servers now ship with z-ai:glm-5.1 selected across AI conversations, AI triage, Content Safety, and TL;DR instead of the previous MiniMax default. Existing servers using the old default are migrated automatically the next time the bot starts, and the prior value is backed up so support can restore it if you ask. Custom picks on AI, triage, and Content Safety are left alone — only saved values that matched the previous default are swapped. TL;DR is the one exception: the summary model is force-migrated to GLM 5.1 for every server so /tldr routing stays consistent with the rest of the bot. Open Settings -> Community Tools -> TL;DR and pick a different model if you want to override it. Self-hosters need ZHIPU_API_KEY set in .env to keep GLM 5.1 working; the bot otherwise falls back through your configured models. See Available models.Per-action thresholds for Content Safety — One threshold per category was always a blunt instrument: pick 75% and you either flag, delete, warn, and timeout at the same line in the sand, or you tuned the knob down and watched the bot get trigger-happy on borderline messages. Each Content Safety category now carries its own action ladder with independent confidence percentages for Flag & Log, Hard Delete, Issue Warning, Temporary Timeout, Server Kick, and Permanent Ban. Flag at 55%, delete at 70%, warn at 75%, timeout at 88%, leave kick and ban off entirely — or wire any other shape that matches your server’s tolerance. Smarter defaults ship with every category: standard categories follow the 55/70/75/88 ladder, self-harm only flags for review, and doxxing plus child endangerment start stricter and can escalate to a ban at high confidence. Existing configs are migrated automatically — your old single-threshold tuning keeps working until you open the redesigned ladder under Settings -> Moderation & Safety -> Content Safety and dial each action in on its own. See AI auto-moderation configuration.Fixes
Dashboard server list no longer lies during bot startup — If you opened the dashboard while the bot was still finishing its Discord handshake, the /api/guilds endpoint would happily hand back an empty cache, which the picker dutifully rendered as “you have no servers.” The server list now returns 503 Discord client is not ready until the gateway connection is actually live, so the dashboard can show a real loading state instead of gaslighting you into thinking your invites evaporated. No action needed; the fix kicks in for everyone the next time the bot restarts.
New features
Z.AI joins the provider roster — Z.AI is now a first-class provider for AI conversations, AI triage, AI auto-moderation, and TL;DR. Two GLM models ship visible by default on the free tier: GLM 5.1 (z-ai:glm-5.1) and GLM 5 Turbo (z-ai:glm-5-turbo). Both speak thinking mode and carry their own per-token pricing for input, output, and cache reads. Self-hosters flip on Z.AI by dropping ZHIPU_API_KEY into .env; the bot routes requests through the Z.AI Coding Plan endpoint at https://api.z.ai/api/coding/paas/v4. Managed users on volvox.bot get the new models in the dashboard pickers automatically — no restart, no fiddling. Select a Z.AI model under Settings -> AI, Settings -> Moderation & Safety -> Content Safety, Settings -> AI & Automation -> Triage, or Settings -> Community Tools -> TL;DR.Fixes
Safety guardrail spend stops sneaking past the budget — Output Safety Guardrail calls were happily classifying away without their cost showing up anywhere it counted. Safety classifier calls — including the recheck after a constrained retry — now post to AI usage, the per-model cost rollup, and the daily budget limit alongside the classifier and response models. Translation: if you’re running the guardrail at a hot threshold, it can now actually trip the budget cap it was already drafting against. The default for budget tracking flips to include safety spend; nothing to configure. See Analytics and Output Safety Guardrail.One flaky provider no longer takes everyone down with it — The AI circuit breaker kept a single, shared failure tally across every provider, so one provider’s bad afternoon could trip the breaker for all of them and quietly defeat the gateway fallback you set up for exactly this scenario. Failure state is now keyed per provider, so OpenAI hiccuping doesn’t drag Anthropic, Fireworks, or anyone else into the penalty box with it. Mid-stream errors also count properly instead of being recorded as a success at the moment the stream opened. See AI conversations.SSRF protection learns that IPv6 also exists — The dashboard’s SSRF guard only checked IPv4 dotted-quad hostnames, which meant http://[::1] and the IPv4-mapped IPv6 form http://[::ffff:127.0.0.1] could stroll past it and hit loopback or internal services. The validator now strips the brackets the URL parser leaves on IPv6 hosts, routes any IP literal — v4 or v6 — to the block check, decodes compressed IPv4-mapped addresses back to dotted-quad, and explicitly blocks the IPv6 unspecified address (::) and the unique-local range (fc00::/7). No configuration changes; the patch applies to every outbound URL the dashboard validates.Live log filtering and stream layout settle down — The operator-only Logs tab had two rough edges. The in-page text filter quietly dropped messages whose casing or whitespace didn’t match exactly, and self-hosted browsers could fail to upgrade the log WebSocket when the dashboard couldn’t guess the bot’s public origin. Filter matching now normalizes case and whitespace so partial matches behave the way the input box suggests, and unmatched WebSocket upgrade requests close cleanly instead of hanging. The Logs viewer also streams across all servers in one feed for operators. Self-hosters set the new BOT_PUBLIC_URL env var to the public bot origin (for example, your Railway bot service URL) so the browser can reach /ws/logs; managed users on volvox.bot need no changes. See Logs.
Fixes
Analytics sub-tabs stop showing up twice — The Overview dashboard was rendering its Messages, Voice Tracking, and Community Engagement switcher in both the header and the sidebar — same buttons, two homes, zero added value. The header pills are gone, and the sub-tabs now live only in the sidebar where the rest of the navigation already lives. Bookmarks, deep links, and the ?tab= URL parameter all keep working exactly as before. See Analytics.
New features
Setup wizard for new servers — Inviting Volvox.Bot now drops you into a guided, page-based setup wizard instead of a blank dashboard. Pick a server, then step through focused pages for welcome messages, content safety, protected roles, warning rules, tickets, reputation, starboard, command prefix, TL;DR summaries, and dashboard roles. A single AI provider/model pick drives chat, triage, content safety, and TL;DR routing together — no need to wire each one up separately. Toggle any section off, jump between steps, save when you’re done. The bot picks up the new config without a restart. Skipping the wizard is fine; reopen it any time from Settings -> Setup wizard in the dashboard sidebar. No AI credentials yet? The wizard still saves the non-AI defaults, and you can wire AI up later from the dashboard. See Run the setup wizard.
New features
Output Safety Guardrail for AI triage — Neural Chat can now run a lightweight AI classifier on every bot-generated triage response before it posts to Discord. Responses flagged as unsafe are silently dropped and logged to Sentry, giving you a second pass on edge cases your system prompt didn’t catch. Toggle it on under Settings -> AI & Automation -> Triage -> Behavior -> Output Safety Guardrail. Off by default. Self-hosters tune the classifier model, timeout, and fail-closed behavior through SAFETY_GUARDRAIL_* environment variables; managed users on volvox.bot get safe defaults. The AI usage ledger logs safety check cost under the safety type so you can keep an eye on the bill. See Output Safety Guardrail.Excluded channels for AI auto-moderation — Content Safety now takes a per-channel ignore list. Pick channels under Settings -> Moderation & Safety -> Content Safety -> Excluded Channels and the bot skips scoring, thresholds, and every response action for messages posted there. Threads inherit their parent’s setting, so excluding #vent covers every thread under it without extra clicks. Useful for venting channels, staff rooms quoting flagged content, or gradual Content Safety rollouts. Manual moderation, the Link filter, and classic auto-mod rules are unaffected. See Excluded channels.Removed
Standalone auto-delete toggles retired — Two global delete switches are gone: Instant Enforcement under Settings -> Moderation & Safety -> Content Safety, and the separate Auto-Delete toggle under Settings -> Moderation & Safety -> Moderation. Deletion is now driven entirely by the per-category Hard Delete response action and the Spam Response picker under Spam Detection. Pick delete on the categories that should actually remove messages, and leave it off everywhere you only want to flag, warn, or log — no more master switch quietly overruling your per-category choices. Existing configs are migrated automatically: the old toggles are dropped and every response action you already tuned keeps working. See AI auto-moderation configuration.Fixes
API keys and base URLs hidden from /config — /config view used to happily dump the raw guild config into Discord, provider API keys and base URLs included — the same secrets the dashboard and API are careful to mask. Four fields — triage.classifyApiKey, triage.respondApiKey, triage.classifyBaseUrl, and triage.respondBaseUrl — are now stripped from /config view, rejected by /config set with a clear error, and hidden from path autocomplete. Descendant paths like triage.classifyApiKey.foo are blocked too, so nothing sneaks through a nested write. Manage these from Settings -> AI in the dashboard. Every other field behaves exactly as before.Protected roles also skip the in-channel triage nudge — Protected-role members were already exempt from formal moderation logs, but the lighter in-channel “hey, knock it off” nudge from AI triage was still sliding through. That nudge now respects the same protected-role list, so admins and trusted roles stop getting publicly side-eyed by their own bot. If the role check can’t resolve cleanly, the nudge is skipped instead of sent. No configuration change needed — your existing Protect Roles selection takes effect immediately. See Protected roles.Mass pings no longer hijack the AI — Neural Chat used to treat @everyone, @here, and role pings as direct mentions, so a server-wide announcement could yank the bot into a reply it was never asked for. Mention detection now ignores mass pings by default — only an explicit @Bot mention (or a reply to the bot) triggers a response. A new Ignore mass pings toggle lives under Settings -> AI -> Chat; turn it off if you want the bot to chime in on mass pings again. See AI conversations.TL;DR dashboard toggle reflects the on-by-default behavior — TL;DR has shipped enabled out of the box for a while now. But the Settings -> Community Tools -> TL;DR toggle and the Community Features summary switch could still display as off when a guild’s saved config didn’t include an explicit enabled flag. The dashboard now treats a missing flag as enabled — matching what the bot already does at runtime — so the UI and /tldr finally stop contradicting each other. Flip the toggle off if you want to disable summaries; everything else is unchanged. See TL;DR./tldr cooldown is now per user, per server — The /tldr rate limit used to apply per channel, so one person’s summary blocked everyone else in the same channel for the full cooldown window. The cooldown is now keyed by (server, user) instead — each member gets their own timer, and it spans the whole server rather than a single channel. The default is still 300 seconds, and you can tune it under Settings -> Community Tools -> TL;DR. The rate-limit message now reads “before using /tldr again on this server.” See TL;DR.Threads hidden from dashboard channel pickers — Channel selectors across the dashboard no longer list threads as pickable options. Threads were never a useful target anyway — Content Safety excluded channels, AI chat allowlists, and the rest all inherit from the parent channel. Pickers now show only text, voice, announcement, forum, media, and category channels. Any thread IDs already saved in your configuration stick around quietly, with a one-click control to clear them if you want a clean slate. No action needed for existing setups.Server-side telemetry stays grouped by Discord server — Operational Amplitude events for bot installs, slash command usage, and AI usage are now keyed by Discord server ID instead of a shared anonymous device. Usage stays grouped by server rather than blending across guilds, and events without a resolvable server ID are dropped instead of falling back to an anonymous identifier. The properties sent are unchanged — command name, AI token and cost totals, member-count bucket, and the large-server flag. Discord user IDs, message content, raw channel IDs, channel names, and server names are still never sent. See What analytics covers.
Improvements
Shareable analytics sub-tabs — The Overview dashboard’s Messages, Voice Tracking, and Community Engagement views now live behind a ?tab= URL parameter. Bookmark a view, send a teammate a direct link to Voice Tracking, or refresh the page without bouncing back to Messages. Selecting a sub-tab from the dashboard sidebar updates the URL in place — no full reload. See Analytics.Refreshed dashboard, settings, and layout polish — A broad UI refresh lands across the dashboard. The page header picks up subtle motion, and animated pill switchers replace the old tab bars in the header, sidebar, and ticket panel format selector. AI Triage now pairs Engine & Routing with Role Filtering, and Limits & Tuning with Behavior, in side-by-side rows. Support & Integrations does the same for Ticket Routing and Operational Limits. Inputs share one consistent style with the number-spinner arrows hidden, and the Discord Markdown editor gets a thinner scrollbar. Content Safety -> Spam Response also moves to a searchable multi-select popover with checkmarks and removable action badges, so picking several response actions feels less fiddly. No behavior changes — same fields, cleaner edges.
Improvements
Triage now scores certainty and usefulness separately — The AI triage classifier used to roll “am I sure what this message is?” and “should I actually say something?” into a single confidence number, which led to the bot either over-talking or sitting on its hands. Triage now produces two scores — confidence (label certainty) and relevance (response value) — with independent thresholds. The result: fewer drive-by chime-ins on messages the model only half-understands, and more thoughtful replies when something genuinely warrants one. Classification logs surface both numbers so you can tune each on its own. Technical frustration is also now a valid chime-in trigger, so a member rage-typing about a broken build no longer gets ignored for being off-topic. See AI conversations.Web search gated on provider capability — Providers that can’t actually browse the web no longer get asked to. When the selected model lacks search, the bot injects a SEARCH_UNAVAILABLE directive and hedges on time-sensitive claims instead of making things up. System prompt facts — who built the bot, where to find the invite, your house rules — stay authoritative either way, so “who made you?” no longer triggers an existential crisis. See AI conversations.MiniMax thinking mode enabled — MiniMax models now use their thinking capability for triage and responses, trading a few extra tokens for noticeably steadier answers on multi-step questions. No configuration needed — pick a minimax:* model and you get the upgrade automatically. See Available models.Softer classifier prompts — Hard “never” and “always” rules in the classifier have been rewritten as “favor” guidance. The model now treats edge cases as judgment calls instead of bouncing off rigid rails, which translates to fewer obviously-wrong skips and fewer over-eager replies. Existing thresholds carry over; only the prompt tone changed.Smarter memory extraction — The memory pipeline got a thorough scrub. Discord markup (mentions, roles, channels, custom emoji) is now stripped before anything reaches mem0, so memories read like sentences instead of raw markup soup. Mentions resolve to displayName [userId: id] so the model can tell two @Alexes apart. Assistant replies are excluded from extraction to stop the bot from remembering its own echoes as facts. Multiple facts per message get captured together instead of only the first one. Updates to existing memories replace stale info instead of stacking duplicates. See AI conversations.Optional solo-user confidence boost — When only one human is actively chatting, the bot can now lower its confidence and relevance thresholds slightly so a 1:1 conversation doesn’t feel like pulling teeth. Enabled by default; flip it off in AI Automation config if you’d rather keep the bot at arm’s length in quiet channels.Fixes
Debug footer shows human-readable model names — Discord embeds from AI features were quietly leaking raw model paths like accounts/fireworks/models/deepseek-v4-pro into debug footers, which is exactly as readable as it looks. Footers now render as Fireworks / DeepSeek V4 Pro by resolving the friendly name from the provider registry. Unknown models fall back to a clean strip-prefix instead of dumping the full path. See AI conversations.Memory extraction dedup bug squashed — When multiple messages from the same user landed in the same extraction batch, only the first one was being sent to mem0 and the rest got dropped on the floor. All target messages per user are now joined and extracted together, so the bot stops forgetting half of what you just told it.
Fixes
Buffered messages stop falling into the void — Under sustained chatter, the AI triage buffer could quietly drop messages, direct @mentions included, once its internal re-evaluation hit a recursion cap. No follow-up timer meant the work never resumed. Re-evaluation now hands off to a short timer instead of stacking calls on itself. Rapid-fire messages coalesce into a single pass, and nothing gets orphaned when a busy channel hits the limit. Direct @mentions arriving during the delay still cancel the timer and evaluate immediately on the fast path. See AI conversations.
New features
Custom command prefixes — Admins can now set a text command prefix like ., !, or ? under Settings -> Community Tools -> Commands. Every slash command is mirrored as a prefix command using the same name, options, and permission gates — /ban @user spam and !ban @user spam route to the same handler, so a member who can’t use /ban still can’t use !ban. Prefixes accept one to five non-space characters and skip /, @, #, <, >, and backticks to avoid colliding with mentions or Markdown. Leave the field blank to keep slash-only behavior. See Command prefix.Ticket panels publish themselves — Configuring a ticket panel no longer means copying a message into a channel and praying. Save a Panel Destination and Panel Message under Settings -> Tickets and the dashboard posts the panel for you the moment the save succeeds. Switch destinations and the old panel cleans itself up before the new one drops in — no orphaned buttons lurking in last week’s announcements channel. The embed editor also got a tidy: template variables ({{username}}, {{mention}}, {{serverName}}) are now limited to the description, where they actually belong. See Tickets.Saved ticket panel publishing — Ticket panels are finally part of your dashboard save, no more copy-paste rituals. Select a Panel Destination under Settings -> Tickets, edit the Panel Message as Text, Embed, or Both, then select Save. The bot quietly cleans up the previously tracked panel message, posts a fresh one in the saved channel, and remembers the new message ID so the next edit replaces the right post. If the publish trips on missing channel access, Send Messages, or Embed Links, the failure is recorded so you can fix permissions and retry without losing your config. See Ticket panel publishing.Welcome message embed format — Welcome messages now ship in Text, Embed, or Both flavors, matching the ticket panel and level-up message editors. Configure title, description, color, thumbnail (none, server icon, custom, or user avatar), fields, footer, image, and timestamp under Settings -> Onboarding & Growth -> Welcome. The plain-text message field still works, so servers that never switch to embed mode keep their current copy untouched.Improvements
Welcome publish accepts a target channel override — The welcome publish endpoint (POST /guilds/:id/welcome/publish/:panelType) now accepts an optional channelId in the request body. Dashboards and integrations can publish the rules panel to a specific channel without first updating the saved config. Requests without channelId continue to publish to the configured channel, and invalid IDs are rejected with a 400 response.Removed
Temp roles retired — The temp roles feature leaves the bot end to end. The /temprole command, the Temp Roles dashboard page, and the Settings -> Temp Roles settings panel are gone. The Temp roles category also drops out of audit log filters. The upgrade clears any existing temp role assignments along with it. If you leaned on time-limited roles, pair Volvox.Bot with a dedicated role-scheduling bot or lean on Discord’s native role management. Permanent role assignments through Discord stay untouched.Directed onboarding DM sequence retired — The multi-step welcome DM sequence under Settings -> Onboarding & Growth -> Welcome is gone. Volvox.Bot no longer pings new members with scripted follow-up DMs after they join. The welcome flow now sticks to context-aware welcome messages in your configured channel plus optional rules verification. The upgrade drops any existing dmSequence config automatically, and the Welcome DM Sequence advanced panel and its search entry leave the dashboard with it. The welcome_onboarding source also stops appearing on notifications.dm_failed audit entries. If you leaned on staged onboarding DMs, hand the job to Discord’s native Onboarding flow — it walks new members through rules and role choices without the bot in the loop.Fixes
AI auto-mod reasons no longer end mid-thought — Mod log embeds, DM notifications, and case records were quietly chopping AI auto-mod reasons off at 512 characters, which is roughly the length it takes the model to clear its throat. Reasons now use the full 1024-character embed field limit, and the model has more tokens to actually explain itself. Case reasons sent to Discord’s audit log get capped cleanly at 512 instead of bouncing off the API. Long reasons in the dashboard also wrap properly instead of trailing off the page. See AI auto-moderation.Ticket support role picker remembers Discord exists — When the bot’s role cache was cold, the Support Staff Roles dropdown on Settings -> Tickets would shrug and show nothing. It now fetches roles directly from Discord on demand, caches the result, and stops hammering the API with repeat empty lookups. New servers and freshly restarted bots can configure tickets without waiting for the cache to warm up.Dashboard access stays in sync with Discord — Promoting or demoting a moderator in Discord now reflects in the dashboard on the next page load instead of clinging to a stale snapshot. Server membership and role lookups refresh before access is granted, so newly promoted admins can manage and ex-moderators can’t.Community Activity Over Time graph stops gaslighting you — The new Activity Over Time chart on the Community Engagement tab had mislabeled series and axis ticks that didn’t quite line up with the data. Labels and series now match what you’re actually looking at.Quieter DM failure logs — When a DM bounced — common when a user has DMs disabled — multiple subsystems would each file their own audit entry for the same event. DM delivery failures now flow through a single helper, so the audit log records the event once instead of three times.Configured providers API is scoped to your server — The GET /api/v1/providers/configured endpoint now requires a guildId query parameter and only returns data to admins of that server. Requests without guildId, with a malformed Discord snowflake, or from a non-admin caller are rejected with a 400 or 403 response. Dashboards already pass the current server’s ID; integrations that call the endpoint directly need to add ?guildId=<server id> and authenticate as a server admin. The dashboard hook also caches results per server for 30 seconds and keeps the previous data on screen during revalidation, so switching pages no longer blanks the model picker. See Providers API.
New features
Fireworks AI provider — Fireworks just joined the roster as a first-class provider for AI conversations, AI auto-moderation, AI triage, and TL;DR. Nine serverless models ship visible by default: DeepSeek V4 Flash, Kimi K2.6, Kimi K2.5, Qwen 3.6 Plus, Qwen3 VL 30B A3B Instruct, MiniMax M2.7, MiniMax M2.5, GPT-OSS 120B, and GPT-OSS 20B — each with its own per-token pricing for input, output, and cache reads. Self-hosters enable Fireworks by setting FIREWORKS_API_KEY in .env and selecting a fireworks:* model in any AI dropdown. Managed users see the new models in the dashboard pickers automatically. Under the hood, Volvox.Bot now dispatches to the matching Vercel AI SDK factory per provider based on each provider’s declared apiShape. Future providers no longer have to speak the Anthropic Messages wire protocol to play nice. Select a Fireworks model under Settings -> AI, Settings -> Moderation & Safety -> Content Safety, Settings -> AI & Automation -> Triage, or Settings -> Community Tools -> TL;DR.Doxxing and child endangerment safety categories — Content Safety just got two new line items it should have had all along. Doxxing flags personal contact info, addresses, and identity details shared without consent, and Child endangerment targets content that sexualizes or grooms minors. Both ship with the same defaults as every other Content Safety category: a 75% sensitivity threshold plus Flag & Log, Hard Delete, and Issue Warning. They start working the moment the migration runs. Any category you’ve already hand-tuned keeps your settings; only categories left at the old defaults get bumped to the new ones. Adjust thresholds and response actions under Settings -> Moderation & Safety -> Content Safety. See Content Safety.Activity Graph with rolling and custom ranges — The Messages sub-tab on the Overview dashboard now leads with an Activity Graph that plots community message volume over time. One-click buttons cover 1d, 7d, 14d, 30d, 60d, 90d, 6 month, and 1 year rolling windows. Custom opens Start and End date pickers, and Apply stays disabled until both dates are valid and in order. Custom ranges can now span up to 366 days — the legacy 90-day cap is gone — so year-over-year comparisons stop requiring duct tape and multiple queries. The selected range stays highlighted and feeds the surrounding KPIs and breakdowns, so you can pivot between Messages, Voice Tracking, and Community Engagement without losing context. See Activity Graph.Send channel message level-up action — Level-up actions now include a Send Channel Message type that posts publicly into a server channel when a member reaches a level. Pick Current Channel to celebrate in the channel that triggered the level-up, or Specific Channel to route every announcement to a fixed milestones channel. Pick text, embed, or both formats, and drop in the usual template variables ({{username}}, {{mention}}, {{level}}, {{serverName}}) anywhere in the message body. Configure it under Settings -> Community -> XP -> Level-up actions. See Level-up actions.Activity Over Time graph — The Community Engagement tab now opens with a combined Activity Over Time graph that plots messages and voice minutes on the same chart so you can see when chat and voice rise together. The graph has its own range picker — 1d, 7d, 14d, 30d, 60d, 90d, 6 month, 1 year, or Custom — independent from the dashboard-wide range. 1d buckets are hourly; everything else is daily. Custom ranges are capped at 366 days. Dashboard analytics queries now also stretch from 90 days up to 1 year. See Activity Over Time.Changed
Settings dashboard restricted to owners and admins — The keys to the settings dashboard now belong strictly to owners and admins. Moderators keep every in-Discord superpower they had — moderation, tickets, audit log — but the Manage button no longer winks at them. The server picker quietly files moderator-only servers under viewer-only. Need a moderator to tweak config? Promote them to admin. See Permissions.Improvements
20-level XP progression with a per-level editor — New servers now ship with a smoother 20-level reputation curve, climbing from 100 XP at Level 1 to 12,000 XP at Level 20. That gives long-term regulars somewhere to keep climbing without making the early levels feel like a second job. The Progression Steps editor at Settings -> Onboarding & Growth -> Reputation (XP) is rebuilt around one row per level. Edit any threshold inline, select Add Step to append a level, or select the ✕ to drop one. Thresholds must strictly increase, and at least one level is required. Existing servers keep their current thresholds — only the out-of-the-box default changed. See Level progression.Dedicated Spam Detection tab — Spam controls finally have their own room at Settings -> Moderation & Safety -> Spam Detection, instead of squatting in the Moderation and Content Safety tabs. Enable Spam Detection flips both phrase-pattern checks and the AI spam category with a single switch. Spam threshold tunes the AI spam category, and Spam response picks any combination of flag, delete, warn, timeout, kick, or ban. The standalone spam confidence input is retired — the threshold slider on this tab is the only source of truth now. Turn the master toggle off and Volvox.Bot skips both classic and AI spam checks while the other Content Safety categories keep running. Existing configurations carry over automatically. See Configuration.AI model dropdowns now hide what you can’t use — Every AI model picker in the dashboard — Settings -> AI, Settings -> Moderation & Safety -> Content Safety, Settings -> AI & Automation -> Triage, and Settings -> Community Tools -> TL;DR — only lists models whose provider has a configured API key and whose tier matches your server’s entitlement. No more selecting a provider you don’t have credentials for and discovering the failure at runtime. Saved models that fall out of availability still surface as Current saved model: provider:model; if the provider has no key, the entry is flagged with ⚠ provider not configured so you know to pick a replacement. When no provider has credentials, the dropdown shows No configured models available and goes read-only. A new GET /api/v1/providers/configured endpoint returns the same data — configuredProviders and guildTier — for integrations that render their own model pickers. See Available models.Server-agnostic default AI system prompt — New installs now ship with a generic Neural Chat system prompt that adapts to any Discord server instead of cosplaying as a developer-community mascot. The default voice stays friendly, concise, and respectful. The @everyone and @here ping bans are still in force, and the bot is told to ask for context when an answer depends on server-specific policy. If you’ve already customized the system prompt under Settings -> AI, your value is preserved — only the out-of-the-box default changed. Edit the prompt anytime to dial in tone, topics, or house rules. See AI Conversations.Simpler Weekly Activity Heatmap — The Community Engagement heatmap is now labeled Weekly Activity Heatmap and renders weekday names in your browser locale. When the selected range is a week or shorter, each row also shows the matching calendar date so you can tell repeated weekdays apart. See Weekly Activity Heatmap.Session replay on the dashboard, opt-in only — Dashboard analytics can now record sampled session replays so the team can spot UX rough edges. Recording only runs when you’ve accepted Analytics cookies, sample rates and masking are managed remotely in Amplitude, and turning Analytics off in Cookie Preferences stops recording immediately. Essential cookies are unaffected. See What analytics covers.Fixes
Tighter spam presets and a calmer custom editor — All three message spam presets now share the same 10 messages / 10 seconds rate limit. They differ only in how quickly repeated hits escalate to a timeout. Standard (the new default) times out after 2 hits in 3 minutes, Strict times out on the first hit for 10 minutes, and Relaxed keeps the previous 3-hits-in-5-minutes behavior. The Custom option hides its advanced controls until you select it. The custom editor also resets when you switch servers, reload the page, or toggle spam protection off and on, so stale values from one server never carry over to another. Enabling defaults seeds the Standard preset, and partial custom configs keep their existing fields instead of silently dropping back to defaults. See Configuration.Manual XP adjustments now trigger level-up actions — Push a member over a level threshold from the dashboard or API and Volvox.Bot now runs the same level-up actions it would for organic XP gains. Role grants, DMs, channel messages, XP bonuses, reactions, and nickname updates all fire as expected. Rewards already granted at lower levels are not replayed, so re-adjusting a member’s XP won’t double up on role grants or DMs. See Level-up actions.DM delivery failures now show up in the audit log — When Discord refuses a member DM — moderation notice, level-up action, or welcome onboarding step — Volvox.Bot writes a notifications.dm_failed audit entry instead of failing quietly. Each entry records the target member, the source feature, the Discord error, and source-specific details like the moderation action or onboarding step. Filter by Category -> Notifications and Action -> Notifications: DM failed to find members whose DMs aren’t landing. The original moderation, level-up, or onboarding action still runs. See DM delivery failures.
New features
Dedicated Warnings dashboard page — Warning records now have their own home at Dashboard -> Warnings, so you can review and triage warnings without paging through every other case type. The page leads with totals for warnings, active warnings, high-severity active warnings, and the current top user by active warning points. Inventory filters narrow records by severity, active state, or Discord user ID, and every row keeps a deep link into the broader moderation case for that warning. The old User history lookup on the Moderation page is gone. Start from Dashboard -> Members -> [member] when you’re investigating one person, or Dashboard -> Moderation when you want the broader case table and filters. See Manage warning records.Warning Rules tab with expiry and point escalation — Warning tuning moved out of the general Moderation tab into its own home at Settings -> Moderation & Safety -> Warning Rules. Set Warning expiry days to control how long warnings stay active (30 is the new default, down from 90; 0 disables expiry), assign Severity points so low, medium, and high warnings carry different weight (defaults: 1, 2, 3), and define Warning thresholds that fire when a member’s active points cross a line. Each threshold takes a point total, a lookback window in days, and an action (timeout requires a duration like 1h or 7d; ban does not). When multiple thresholds match, Volvox.Bot applies the highest point threshold first, so a 5-point ban isn’t masked by a 3-point timeout. Existing configs that used the old warns field on escalation thresholds are automatically read as points. The /warn slash command now replies with a rich embed showing case number, severity, the point progression (for example, 2 points -> 3 points), and direct links to the case and member profile in the dashboard. See Warning expiry and escalation.Classic spam detection controls in the dashboard — Phrase-pattern spam detection is now a first-class toggle under Settings -> Moderation & Safety -> Moderation -> Classic spam detection. It defaults to on, runs before AI scoring, and honors the Content Safety spam Hard Delete and Instant Enforcement settings when AI auto-moderation is enabled. Spam alerts and spam actions are decoupled — if you leave the log channel unset, Volvox.Bot still applies the configured spam action and just skips the Discord alert post. Every detection writes a spam.detect audit-log entry with the alert/delete outcome, message link, channel ID, and a redacted content preview. Filter on it under Dashboard -> Audit Log. See Classic spam detection and Audit log.Link filter UI in the dashboard — You can now manage blocked link domains directly from Settings -> Moderation & Safety -> Moderation -> Link filter. Paste hostnames, full URLs, or even Markdown links and the dashboard normalizes them to a clean hostname (so https://www.example.com/path becomes example.com) before saving. Bulk-add by separating entries with spaces, commas, semicolons, or new lines. Invalid entries are rejected inline so your blocklist stays clean. The Link filter has its own toggle that runs independently from the parent auto-mod switch, so you can enforce domain blocks without turning on every other classic rule. See Link filter.Quiet mode for Neural Chat — A new /quiet slash command temporarily silences AI replies in a single channel without disabling Neural Chat server-wide. /quiet on mutes the current channel for the default duration (30 minutes), and duration:1h or duration:30m sets a custom window that’s clamped between 1 minute and the configured maximum. Pass channel:#support to target another channel, /quiet off to resume early, or /quiet status to check what’s active. Quiet mode also pauses vibe-mode triage accumulation for the muted channel so the bot fully steps out of the conversation. Permissions default to moderators and can be widened to any, narrowed to admin, or pinned to specific role IDs via quietMode.allowedRoles. Members can also mention the bot — for example, @Volvox quiet for 30 minutes or @Volvox unquiet. See Quiet mode.Voice session tracking lands in the Overview — Analytics on the Overview page now splits cleanly into Messages, Voice Tracking, and Community Engagement sub-tabs, so voice chatter stops getting buried under message charts. Voice Tracking covers joins, active sessions, unique participants, total and average voice time, and top channels ranked by session count and duration. A recent sessions feed flags rooms still live when analytics last refreshed. Overlapping sessions in the same channel are counted instead of quietly discarded, so simultaneous calls finally show up in the totals. The date range picker and 90-day window apply as usual. See Analytics.Improvements
Settings tabs finally have addresses — The dashboard’s Config screens now keep the URL in sync with the active tab. Switching tabs appends a ?tab= query parameter, so you can bookmark Moderation & Safety -> Link filter or paste a link to a teammate and land on the exact tab you opened. Browser back and forward walk through your tab history. Existing settings links still work — they redirect to each category’s first tab.Calmer status rotation — Volvox.Bot’s presence used to swap status messages every five minutes, which turned the member list into a low-key strobe light. The default rotation interval is now 30 minutes, so Watching, Listening, Playing, and Competing each get room to land before the next one swaps in. Servers that customized the interval keep their setting; everyone else picks up the new default automatically.Removed
Command aliases have left the chat — The /alias command and the entire custom-alias system are retired. Aliases that remapped one slash command to another stop resolving on the next bot restart, so reach for Discord’s built-in slash commands instead. Nothing to clean up on your end — the underlying table is dropped automatically when migrations run.Snippets, polls, code reviews, and announcements are gone — The /snippet, /poll, /review, and /announce commands and their dashboard toggles are retired. The Post Announcement action in the level-up action builder is gone too. Discord’s native polls cover voting, threads and code blocks cover review and snippet sharing, and plain channel messages cover announcements. Saved configuration for these features is dropped automatically when migrations run, and existing level-up actions of type Post Announcement stop firing.TL;DR moved to Community Tools — The TL;DR settings tab now lives under Settings -> Community Tools alongside Starboard, instead of under Onboarding & Growth. The /tldr command and every setting (model, message limits, cooldown, system prompt) work exactly the same — only the dashboard location changed. See TL;DR.Reaction roles retired — The /reactionrole command and its create, add, remove, delete, and list subcommands have been removed, along with the underlying reaction-role menu storage. Volvox.Bot no longer assigns or revokes roles when members react to menu messages. Existing menu messages stay in your channels as ordinary posts until you delete them — they just won’t hand out roles anymore. Stored reaction-role menus and their emoji-to-role mappings were dropped as part of the upgrade. For self-assigned roles, use Discord’s native Onboarding flow or a button-based role picker from another bot. The rest of your configuration is untouched.Fixes
Bot presence is always online — Volvox.Bot now stays online at all times. Any idle, do not disturb, or invisible value left over from older configs is ignored. The availability dot no longer drifts out of sync with whether the bot is actually running. Custom status text and rotation messages still work exactly as before; only the availability dot is locked.discord.gg invites are blockable again — Adding discord.gg (or any other Discord invite host) to the Link filter blocklist now reliably deletes matching messages, including ones posted by members with the Discord Administrator permission. The raw Administrator permission no longer auto-exempts users from the Link filter — your configured admin, moderator, and protected roles still bypass it as expected. Other moderation paths continue to treat the Administrator permission as an exemption.
Improvements
Status messages that actually flex — Volvox.Bot’s Discord presence rotation got a glow-up. The old lineup — “Watching servers”, “Listening to members”, “Playing with /help” — read like placeholder copy from a 2017 starter template. The new rotation cycles through Watching, Listening, Playing, and a fresh Competing status. Each one pairs member counts with server counts, so the numbers do the bragging. Nothing to configure; your bot will start showing off the next time it reconnects.
New features
Full moderation history on member profiles — The member profile in the dashboard now shows the complete case history for that member instead of just recent warnings. Cases are paginated 10 per page, and a quick breakdown at the top tallies warnings, timeouts, kicks, and bans so you can size up a member at a glance. Select View full history to jump to the Moderation page with that member’s user ID preloaded — handy when you need filters, search, or the wider tools on that page. You can also share the preloaded view directly: https://volvox.bot/dashboard/moderation?userId=<discord-user-id>. See Moderation.Improvements
Case log messages link straight to Discord — Open any case in the dashboard and the Log Message field is now a clickable link. It opens the original log post in Discord in a new tab, as long as the bot has the channel and message ID for that case. Older cases without a stored channel ID still display the message ID as plain text. Nothing to configure — new cases pick this up automatically. See Moderation.Cookie preferences are now yours to decide — First-time visitors to the website and dashboard get a consent banner that sorts cookies into two honest buckets. Essential stays on so sign-in and saved state actually work. Analytics (Amplitude) stays off until you opt in. Pick Accept all, Reject non-essential, or Customize to flip analytics on its own. Changed your mind? The Cookie Preferences link in the footer is there for exactly that, and switching analytics off clears the Amplitude identifiers and cookies stored while you were opted in. Your choice sticks for 365 days per browser. See Cookie preferences.Add to Server lands you on the dashboard — Selecting Add to Server on the landing page used to pop Discord open in a new tab and leave you to find your own way back. The flow now starts the invite in the same window and returns you straight to the dashboard after you approve, so onboarding is one continuous trip instead of a tab-juggling exercise. The dashboard’s Add Bot button already worked this way; the landing page now matches it. See Getting started.Tidier AI auto-mod case reasons — Case reasons from AI auto-moderation used to read like a model’s stream-of-consciousness, occasionally truncating into the void. They now follow a compact format: AI Auto Mod: Toxicity 82%, Harassment 64% / delete and warn. Categories appear with their confidence scores, the actions taken are listed plainly, and case tables stop wrapping into wall-of-text territory. Existing cases keep their original reasons; new cases adopt the new format automatically.Less noisy AI model picker — Models offered through OpenRouter no longer carry a redundant (via OpenRouter) suffix in dashboard model pickers. The provider is already obvious from the section it lives in, and the cleaner labels make scanning the list a lot faster. See AI automation.Audit log filters and details, expanded — The Audit Log page now groups actions by category (Moderation, AI and triage, Config, Members, Tickets, Temp roles) and adds Target ID and Channel ID filters alongside the existing user and date filters. Each row leads with a plain-language summary — for example, “Mod#0001 banned BadUser#1234” or “AI auto-mod timed out SpamBot#0001” — so you can scan the table without decoding action codes. Expand any entry to see structured panels for moderation cases (case number, action, reason) and AI auto-mod decisions (model, category scores, thresholds, skipped actions, message link), with the raw JSON still available underneath. See Audit log.Removed
GitHub feed feature retired — The /github command, the GitHub feed module, and its Settings -> Support & Integrations panel have been removed. It saw vanishingly little use and the maintenance tax wasn’t worth it. If you relied on GitHub-to-Discord notifications, Discord’s built-in webhook integration covers the same ground in about thirty seconds of setup. Stored GitHub feed configuration has been dropped as part of the upgrade; nothing else in your config was touched.Reminders retired — The /remind command, its scheduler, and the Reminders section in Config have all been removed. The bot no longer delivers personal or channel reminders, and any pending reminders have been cleared. If you leaned on this for routine pings, Discord’s scheduled events or a lightweight webhook-driven cron are the closest replacements. The rest of your configuration is untouched.Backup and restore retired — Config backup and restore — including the export and import endpoints and any scheduled automatic backups — have been removed. Usage was minimal and the surface area carried real risk: an accidental restore could clobber a live config in a single click. Your live configuration is unaffected and stays editable from the dashboard or the /config command. If you want a snapshot before a big change, copy the relevant settings out of the dashboard manually before editing.Memory opt-out subcommand removed — The /memory optout subcommand has been retired. To clear what the bot remembers about you, use /memory forget. To turn memory off for everyone, a server admin can disable it under Settings -> AI & Automation. Existing memories stay put and keep following the server’s memory settings.Outbound webhook notifications retired — The Notifications panel for managing outbound webhook endpoints, the Webhook action under XP Level-Up Actions and Default Moderation Actions, and the webhook delivery log have all been removed. Volvox.Bot no longer fans events out to third-party URLs, and any stored webhook endpoints, secrets, and delivery history were dropped during the upgrade. If you forwarded events to another service, switch to Discord’s native channel webhooks or your own listener built against the dashboard. The Notifications category and notifications.* action types no longer appear in Audit log filters./help knowledge base retired — The /help slash command and its per-server FAQ are gone, along with the view, add, edit, remove, and list subcommands moderators used to curate topics. Usage was minimal and the format never quite kept pace with Discord’s own forum and pinned-message tooling. Stored help topics have been dropped as part of the upgrade; nothing else in your config was touched. For server documentation, a pinned message, a forum channel, or a ticket category covers the same ground without a custom command surface. Looking for product support instead? The Help page still lists every way to reach us.Fixes
Direct @mentions no longer trip over themselves — The lower-latency mention path shipped on 2026-05-11 occasionally raced against the standard triage flow and aborted the very response it was trying to speed up. Direct mentions and replies to the bot now complete reliably instead of silently bailing mid-evaluation. See Moderation.
Removed
Showcase, Challenges, and Role Menus have left the building — Three features that weren’t pulling their weight have been retired so the dashboard and bot can focus on what people actually use:
- Showcase — the
/showcase command and its community gallery pages are gone. Submissions and votes have been cleared from storage.
- Challenges — the legacy
/challenge command, scheduler, and prompt library have been removed. No more weekly prompts firing into channels nobody opted into.
- Role menus — the role menu builder under Settings -> Onboarding & Growth and the
/rolemenu command have been removed. If you handed out roles this way, swap to Discord’s native onboarding before your next member wave.
Existing data for these features has been dropped as part of the upgrade. Nothing else in your configuration was touched.Fixes
Starboard config now refuses nonsense values — The Starboard section was the lone holdout without a validation schema. The API would cheerfully accept a string where a threshold should be, or persist an emoji field long enough to qualify as a novella. All six Starboard fields are now type- and range-checked, and the emoji field is capped at a sane length. See Starboard.Starboard emoji wildcard saves correctly on autosave — Picking Any as your reaction emoji could previously persist the Unicode heavy asterisk (✱) instead of the intended wildcard (*) if autosave fired before the field lost focus. The normalization now runs on every change, so Any means any the moment you select it.
Improvements
Protected roles now skip automated moderation, too — Roles you select under Settings -> Moderation & Safety -> Moderation -> Protect Roles used to only shield members from manual mod actions, leaving them awkwardly exposed to Active Sentry’s automated side. They now also exempt members from AI auto-moderation, spam rate limiting, and link filters. Your existing selections take effect immediately — no migration, no resaving, no fuss. See Moderation.Cleaner Starboard embeds — Starboard posts now lead with a clickable title — for example, ⭐ 7 stars in #general — that jumps straight to the original message. The old Source, Stars, and Jump fields have been retired, leaving more room for the message content and any attached image. Star counts still update in place as members react. Nothing to configure; existing posts pick up the new layout the next time their star count changes. See Community.
New features
Dashboard server picker for first-time setup — Logging in without the bot installed used to dump you into a hauntingly empty dashboard. Now the dashboard opens a proper server picker that lists every Discord server you can manage. Each card shows whether Volvox.Bot is already present (Manage) or still needs an invite (Add Bot), with member counts so you pick the right one. Select Refresh server list when Discord takes its sweet time catching up after an invite. See Getting started for the full walkthrough.Inline “Add Bot” flow — Inviting Volvox.Bot from the dashboard now returns you to the server picker after Discord’s OAuth handshake, instead of stranding you on a permissions screen. Fewer tabs, fewer “wait, where did it go?” moments.Fixes
Dashboard no longer greets new users with a void — Accounts whose servers don’t yet have Volvox.Bot installed previously landed on a blank dashboard with nothing to click. The new welcome flow routes those users straight to the server picker so onboarding actually has a starting point.
Improvements
Multiple support staff roles for tickets — The Support role picker on Settings -> Tickets is now Support Staff Roles and accepts as many roles as you need. The bot grants ticket access to every selected role. It dedupes members across roles when adding them to thread tickets, and skips roles that no longer exist. Existing single-role setups continue to work unchanged. See Tickets.
Improvements
Step-by-step AI auto-mod DMs — Active Sentry now sends a separate pre-action DM for each destructive step in a sequence (for example, warn -> kick -> ban). Each DM lists Actions taken so far and the single Actions planned step coming next. Members see exactly where they are in the sequence instead of getting one combined list. Follow-up DMs use a new title like Moderation action update in <server name>. The new title makes it clear that this is the same ongoing incident. DM toggles in Settings -> Moderation & Safety -> Content Safety -> User DM Notifications still control which actions notify members. Members never receive duplicate DMs for the same action. See Moderation.
New features
Triage performance controls — AI Automation now exposes triage latency controls in the dashboard. responseCooldownMs defaults to 0 ms and remains clamped with triageDebounceMs and memoryTimeoutMs; fast direct replies are enabled by default and you can toggle them from Operational Modes. See Moderation.Improvements
Lower-latency mentions — Direct @mentions and replies to the bot now trigger immediate triage evaluation and bypass the response cooldown for mentioned messages. They still run through the classifier and responder flow. Safety and relevance checks remain in place. See Moderation.Documented triage defaults — The default response cooldown is 0 ms. New server config uses 5 recent context messages by default; runtime triage only falls back to 10 when that value is unset.Stricter triage model validation — The dashboard now rejects unsupported or malformed provider:model strings when you save a triage config, so misconfigurations surface up front instead of failing at runtime. The bot still falls back gracefully if a legacy stored value drifts out of the supported list.
Improvements
Community features on by default — TL;DR summaries, engagement tracking, and the reputation XP system now ship enabled out of the box. New servers see leaderboards, badges, and /tldr working immediately. You can still toggle each feature off from the dashboard. See Community and TL;DR.No more pre-seeded channel IDs — Welcome, moderation alert, and triage moderation log channels start empty until you select a channel for your server. Earlier defaults referenced channels from a single test server, which could surface confusing errors on first install. Configure each channel from Settings -> Onboarding & Growth and Settings -> Moderation & Safety.
New features
Community Hubs surface in the server selector — The dashboard server selector now lists every server with Community Hubs enabled under a dedicated Community Hubs section. Members see those entries even without admin or moderator roles. Selecting a hub opens the read-only public view. Servers without hubs enabled stay hidden from members who lack management permissions. See Community for details.Owner access level — Server owners now consistently get full admin access on the dashboard, regardless of role permissions. The dashboard and API access enum is now [owner, admin, moderator, viewer]. See Permissions for the role breakdown.Engagement metrics on Analytics — The Analytics overview shows Active users, Avg messages per user, Lifetime reactions given, and Lifetime reactions received. The page also adds a Recent events feed (last 10 messages and slash command uses) and a per-model AI usage breakdown. The breakdown shows requests, prompt and completion tokens, and cost in USD when usage data is available. See Analytics.Improvements
Clearer welcome personalization toggle — The “Engine Intelligence” toggle on Settings -> Onboarding & Growth is now labeled AI-Powered Personalization. The new label explains that the bot uses server context — active channels, member milestones — to personalize welcome messages. Highlight and Exclude channel pickers also stop showing the same channel in both lists, so the two settings can’t conflict.Tidier dashboard chrome — The configuration search now closes automatically when you select a result or interact elsewhere on the page. The Variables lists in welcome and XP-level editors collapse to save vertical space. The AI Chat entry has moved out of the sidebar — use Conversations for AI history instead.
New features
Customizable onboarding panel messages — Tailor the copy on your rules, role menu, and introduction panels directly from the dashboard under Onboarding & Growth. Each panel has its own Discord markdown editor (up to 2000 characters), so you can match your server’s tone instead of relying on the defaults.Introduction prompt variables — The new introduction prompt supports template variables: {{user}} mentions the new member, {{username}} prints their plain name without a ping, and {{server}} inserts your server’s name. Combine them to write a warm, personal welcome — for example, Welcome {{user}}! Tell {{server}} a bit about yourself.Dedicated role menu publishing — /welcome setup and the dashboard now publish the rules and role menu panels independently, with per-panel status feedback. Publish a single panel without touching the other, and see clear success, warning, or failure messages for each.Improvements
More reliable welcome publishing — Welcome publish routes now rate-limit requests and validate channels per server, so misconfigured publishes fail fast with a useful error. The dashboard also surfaces persistence warnings when Discord delivery succeeds but the bot can’t save state, so you know to retry.Friendlier timezone inputs — Challenge schedule timezones now accept UTC/GMT offsets like GMT+3 or UTC-05, in addition to IANA names like America/New_York. Offsets normalize to their canonical IANA equivalent (for example, GMT+3 -> Etc/GMT-3) when you save.Fixes
Stricter timezone validation — The dashboard now rejects unsupported timezone strings up front with a clear error (expected a valid IANA timezone or UTC/GMT offset). This stops bad values from reaching the scheduler. Existing servers fall back to a supported timezone automatically, so daily challenges keep posting on time.Steadier server list — The dashboard server selector no longer drops servers when a single server lookup fails. Loading falls back to bot-side data so admins still see and manage every server they have access to.
Improvements
Dark mode by default — The dashboard and the documentation site now load in dark mode on first visit, matching the rest of the Volvox.Bot brand. You can still switch to light mode or follow your system preference from the theme toggle. Your choice persists across sessions. Charts, toasts, and other themed surfaces pick up the new default automatically.Fixes
New member counts that actually update — Analytics on the dashboard now refresh new-member counts on every load, instead of holding onto stale numbers from a cached payload. Welcome the newcomers, count them properly, and stop wondering why your “new this week” tile looked suspiciously frozen.
Improvements
Global admin access for ops pages — Only global admins (configured via BOT_OWNER_IDS) can now access the dashboard’s Logs and Performance pages. Server admins and moderators continue to manage their servers as usual, while operators keep infrastructure-level views to themselves. See Permissions for the full role breakdown.Cleaner access levels — Server access roles are now consistently admin, moderator, or viewer across the dashboard and API. The dashboard surfaces global admin status separately, so sidebar navigation and protected pages reflect the correct permissions for every user.
Fixes
More reliable AI auto-moderation — AI auto-moderation now parses model responses more robustly. The bot scores and acts on messages correctly, even when the model buries its verdict in extra text or nested formatting. Fewer skipped messages, fewer “no decision” outcomes.Stronger link filter and phishing detection — The link filter now extracts URLs more accurately from messages, catching more obfuscated and disguised links. Phishing detection resists common evasion tricks (extra punctuation, mixed casing, embedded characters), so the filter flags suspicious links even when posters try to sneak them past.
Improvements
Stronger phishing and link filtering — The link filter now catches malicious URLs hidden inside markdown links ([click here](https://...)), angle-bracket links (<https://...>), and links wedged against punctuation. It also detects phishing keywords in URL query strings (for example, ?gift=nitro on a .xyz domain). See moderation for the full set of safeguards.Better reliability monitoring — Volvox.Bot now tracks dashboard errors and performance issues in the background, so the team finds and fixes problems faster. It scrubs sensitive data — Discord IDs, message content, tokens, query params, headers, and request bodies — before anything leaves your browser. Your server’s data stays private by default.Fixes
More reliable AI auto-moderation — AI auto-moderation now parses provider responses correctly, even when they arrive wrapped in extra text or nested braces. Unparseable responses route to “needs review” instead of slipping through. Fewer missed flags, fewer surprises.
New features
Branded 404 page — Missing pages on volvox.bot now serve a polished, on-brand 404 with quick links back into the dashboard and docs, instead of the generic browser error.Improvements
Audit trail for AI triage moderation — AI automation now writes its moderation actions to the audit log. Moderators can trace exactly which AI decisions led to deletes, warnings, timeouts, kicks, or bans. The bot also throttles triage budget alerts, so usage-limit notifications stop duplicating noisily.Fixes
Dashboard activity chart dates — The activity chart on the dashboard overview now plots dates correctly. Daily message and command counts line up with the right day in your server’s timezone.Documentation link in profile dropdown — The “Documentation” link in the profile dropdown menu works again across the dashboard, opening the docs in a new tab as expected.
New features
AI auto-moderation — Active Sentry now scores incoming messages with AI across toxicity, spam, harassment, hate speech, sexual content, violence, and self-harm. Select a detection model and set per-category sensitivity thresholds. Configure response actions — ignore, delete, flag, warn, timeout, kick, or ban — including multiple actions per violation. Volvox.Bot logs AI auto-moderation actions alongside classic moderation cases. Configure it under Settings -> Moderation & Safety -> Content Safety in the dashboard. See the moderation docs for details.Configurable model for /tldr — You can now select which provider/model the TL;DR command uses to generate summaries, right from the dashboard. MiniMax M2.7 is the new default.MiniMax provider — MiniMax is now a first-class AI provider, with models like MiniMax M2.7 and MiniMax M2.7 Highspeed available across AI automation and TL;DR.Welcome panel publishing from the dashboard — Publish, update, and remove your welcome and rules panels directly from the dashboard under Onboarding & Growth. Channel changes automatically clean up stale panel messages, and publish actions show clear success/failure feedback.Dedicated role menu channel — Onboarding & Growth now exposes a separate Role Menu Channel picker. Your self-serve role menu can live in its own channel, apart from rules and welcome.Improvements
Cleaner model selectors — Dashboard provider/model pickers now hide models that aren’t available to your server, so you only see options you can actually use. The dashboard preserves saved selections with provider:model IDs, including ones containing colons.Streamlined dashboard overview — The AI cost tile is gone from the dashboard overview, keeping the page focused on activity and health metrics.Fixes
Auto-mod flag embeds — Flag embeds now show the global actions that ran for an auto-mod violation, so moderators can see which actions ran at a glance.Welcome publish reliability — Welcome-panel publishing now handles several edge cases gracefully: split payloads, status mismatches, persistence gaps, channel-change cleanup, and rate-limited publish routes.AI auto-moderation stability — Prompt handling, action reporting, and case/flag log writes are now more resilient, so AI auto-moderation behaves predictably under unusual server conditions.
New features
Custom returning member welcome message — When someone rejoins your server, you can now send them a tailored greeting instead of the default copy. Toggle the Returning member message option in the dashboard under Onboarding & Growth. Then write your own message with full Discord markdown support and welcome variables like {{user}}.Improvements
Landing page navigation and feedback polish — In-page navigation on the landing page now scrolls smoothly to each section. It also respects reduced-motion preferences and lines up correctly under the sticky navbar. The footer, feature grid, pricing table, and stats sections also got visual refinements. The result is cleaner spacing, contrast, and interactive states.
Fixes
Disable milestone interval messages — Setting the welcome milestone interval to 0 in the dashboard now correctly disables interval-based milestone callouts in welcome messages. Notable milestones (like 100, 500, 1000 members) still appear, so you can opt out of the regular cadence without losing the big moments.
New features
More AI providers — Moonshot and OpenRouter are now first-class providers for AI automation and TL;DR. Select models from these providers in your AI settings using the provider:model format (for example, moonshot:kimi-k2.6).TL;DR is now front and center — /tldr now gets top billing on the landing page, with a dedicated docs page covering setup, configuration, and examples.Improvements
Faster dashboard selectors — Role and channel pickers across the dashboard load faster and refresh without a full page reload when Discord updates. New roles and channels appear sooner, and switching between pages reuses cached data.Starboard moved to Community Tools — Starboard settings now live under Community Tools in the dashboard instead of Moderation & Safety, grouping them with other member-facing utilities.Version label in the dashboard — The dashboard sidebar and landing footer now display the current Volvox.Bot version, making it easier to confirm which build you’re on.
Fixes
Welcome message channel selector — You can now select, directly from the dashboard, the channel where the bot posts welcome messages. The Onboarding & Growth settings page exposes a dedicated Message Channel picker alongside the Rules, Roles, and Support channel selectors.
New features
Level-up action builder — Configure automated actions that trigger when members reach specific XP levels. From the dashboard, set up actions like granting or removing roles, sending DMs, or posting announcements in a channel. You can also award bonus XP, add reactions, set nickname prefixes or suffixes, and fire webhooks. Each action supports Discord markdown messages, rich embeds, and template variables like {{username}} and {{level}}. Assign multiple actions per level to build customized level-up experiences for your server.
New features
Role-based triage filtering — You can now control which members the AI responds to by role. Set allowed roles (allowlist) or excluded roles (denylist) in your AI Automation settings. The triage filter automatically ignores bot, webhook, and system messages.Configurable level-up DMs — You can now set custom DM messages sent to members when they level up. Supports per-level message overrides, a live Discord-style preview, and built-in rate limiting to prevent spam.Discord markdown editor — The dashboard now includes a new rich-text editor for Discord-formatted messages. It ships with a formatting toolbar, variable inserter, split raw/preview mode, character counter, and keyboard shortcuts.Visual embed builder — Create Discord embeds visually in the dashboard with a color picker, field management, thumbnail selector, and a live embed preview.Dashboard permission controls — The dashboard now enforces role-based access. Viewers get read-only access, moderators can manage moderation features, and admins have full control.Server-scoped log viewer — The log viewer now shows logs scoped to your current server. A new channel filter lets you narrow the live log stream to specific Discord channels.Improvements
Landing page redesign — The landing page now sports a new visual style, with interactive feature previews in a bento-box grid, animated stats, and a redesigned pricing section.Dashboard polish — Tables now have row hover highlighting, KPI counters animate, and heatmap tooltips are visible. Member rows are clickable, XP progress bars now display correctly, and the dashboard shows a live commands-served counter. Inputs and dropdowns now use thin scrollbars for a cleaner look.Identity resolution — Conversation replays now show real Discord profile icons. Volvox.Bot resolves mentions to actual usernames, and audit logs display rich user identity (display name + username).Improved AI reliability — The AI triage system now includes retry logic, timeout handling, and per-role budget support. You can configure separate models for classification vs. responding to optimize costs.Mobile experience — The settings save toolbar, header, and sidebar are now fully responsive on smaller screens. Every animated component now supports reduced-motion preferences.OpenGraph previews — Sharing Volvox.Bot links now shows rich previews on social media, Discord, and Slack. A sitemap and robots.txt are now in place for better search engine discoverability.Branding update — Visible branding now uses “Volvox.Bot” consistently across the product.Fixes
More reliable bot responses — Reminders, moderation, reaction roles, and other features now handle command-response failures gracefully (for example, blocked DMs or deleted channels) instead of failing silently.Removed the Bot Owners setting — The “Bot Owners” editor is gone from dashboard Permissions settings. You now manage bot ownership via environment configuration only.Last modified on June 11, 2026