The Intelligence Upgrade
This is the largest Nox update to date. From a full-featured ticket system to a redesigned UI, smarter AI, and multi-language moderation β nearly evrey part of the bot has been touched.
π« AI-Powered Ticket System
A complete support ticket system, built from scratch.
Creating Tickets
- Three ways to create:
/ticket create, the ticket panel button, or just ask Nox in chat ("create a ticket for me") - AI understands natural language and creates tickets automatically
- Configurable cooldowns with a 30-minute minimum (enforced via dropdown in
/settings)
Managing Tickets
/ticket statusβ View all your open and closed tickets in one embed/ticket closeβ Close with a reason (modal input, not hardcoded text)- Close button inside ticket channels with reason prompt
/ticket panelβ Admin-only embed panel for ticket creation
Transcripts & AI Summaries
- Transcripts are auto-saved on close and stored in Firestore with 30-day TTL
- Download any closed ticket transcript from the status menu
- β¨ Premium: Hit "Get AI Summary" for an instant AI breakdown β core issue, actions, resolution, sentiment, and analysis
- Free alternative: Ask Nox in chat:
!nox summarize my ticket - Gemini can also fetch transcripts via the
get_ticket_transcripttool
Under the Hood
- Auto-incrementing IDs (
@username-T1001) - Professional channel naming and topics
- Ticket channels exempt from long-term memory extraction
- Full security: users can only access their own transcripts (admins bypass)
- Analytics tracking for ticket creations (by method) and closures
βοΈ Unified Command Structure
All legacy configuration commands have been consolidated into a single /settings command with subcommands:
| Old Command | New Command |
|---|---|
/viewconfig | /settings view |
/modconfig | /settings moderation |
/automoderation | /settings automod |
/reportconfig | /settings report |
/logchannel + /botchannel | /settings channels |
/staffroles | /settings staff |
- All legacy files deleted
/helpand/setupguideupdated to reflect new structure- Developer-only command references cleaned up
π¨ UI Overhaul β Unified Design System
Every major command got a visual refresh with a consistent, premium design language:
- Core:
help,welcome - Moderation:
ban,kick,timeout - Report System:
report - Settings:
settings,ai-announcement
Embeds now use consistent colors, formatting, and field layouts across the entire bot.
π Ticket Analytics
The analytics collector now tracks ticket-specific events:
- Creations β broken down by method (AI chat,
/ticket create, panel button) - Closures β with duration tracking
- Data flows into the existing analytics sync pipeline
π§ Smarter Memory (Qdrant Fixes)
Two critical fixes to the long-term memory system:
- Unbiased Recall:
getUserMemories()now uses filter-only scroll retrieval instead of a vector search with a generic query that biased results - Reliable Deletion:
deleteUserMemories()was silently failing β it passed a filter object where Qdrant expected an array of point IDs. Now properly scrolls β collects IDs β deletes
π Multi-Language Bad Word Detection
The moderation filter now catches profanity in 7 languages:
| Language | |
|---|---|
| πΊπΈ | English |
| πͺπΈ | Spanish |
| π«π· | French |
| π©πͺ | German |
| π·πΊ | Russian |
| π΅π± | Polish |
| πΊπ¦ | Ukrainian |
Combined with the existing leetspeak regex engine, the filter is now significantly harder to bypass in any language. The exclusion whitelist has been deduplicated into a single source of truth.
π Premium Check Standardization
All premium feature gates now use a single centralized function: isPremiumActive(guildId) from utils/core/premium.js.
Previously, some features (like tickets) checked guildData.isPremium directly β bypassing the cache, expiry logic, and developer guild overrides. Now everything is consistent:
- 5-minute memory cache
- Proper subscription expiry handling
- Developer guild overrides respected
π Command Audit & Documentation
- Verified
/helpand/setupguideaccuracy after the command refactor - Fixed missing admin content in
/setupguide - Enabled and documented the
/aiannouncementcommand - Clarified the distinction between
/eventsand/aiannouncement
π§ Technical Improvements
- Gemini Summary Timeout: 30-second
Promise.raceprevents the bot from hanging if the AI doesn't respond - Embed Safety: AI summary fields are type-checked and truncated to 1024 chars before passing to Discord
- Ticket ID Reset Fix: Counter no longer resets unexpectedly
- Firestore Security Rules: Updated to secure tickets based on the new ID format
