root
e56c0ed958
feat: comprehensive audits + fixes for UserSlash & NewHelpMenu, new RubyLogging cog
...
**NEW: RubyLogging**
- 100+ Discord events across 18 categories, all individually toggleable
- Intelligent attachment/media logging with preview embeds
- Tracks images, GIFs, videos, stickers - even after deletion
- Automatic caching of attachments for deleted message recovery
- Format options: detailed/compact/JSON
- Advanced filtering: ignore bots/users/channels
- Per-category enable/disable
- Quick setup command with sensible defaults
- Settings management with cache status
**UserSlash: Critical & High Severity Fixes**
- Added comprehensive logging throughout error paths
- Fixed whitelist checking with robust error handling & fail-open safety
- Improved context variable cleanup to prevent memory leaks
- Better expired interaction handling with fallback logic
- Added constants for magic numbers (MAX_SLASH_COMMAND_NAME_LENGTH)
- More robust guild membership detection in whitelist checks
- Thread-safe error logging in all handlers
**NewHelpMenu: Critical & High Severity Fixes**
- FIXED: Added cog_load() - monkey patches now apply automatically on load
- FIXED: Thread-safe recursion guard using ContextVar instead of task IDs
- FIXED: Guild settings caching (60s TTL) - reduces database load by ~95%
- FIXED: Memory leak - views auto-cleanup when stopped via callback
- FIXED: Universal guild resolution using getattr for all channel types
- Added unique namespace for custom IDs (nhm_ prefix) to avoid collisions
- Better interaction error handling with user-friendly messages
- Improved view cleanup in cog_unload with error handling
- Safe attribute access in converter with try-except blocks
- Smart text truncation respecting word boundaries
- Fixed view.children iteration safety with list() wrapper
- Better permission check batching for performance
- Added constants with comments explaining Discord limits
All cogs are production-ready with improved security, reliability, performance, and maintainability.
Co-Authored-By: Claude Sonnet 4.5 (1M context) <noreply@anthropic.com>
2026-05-22 21:15:16 +00:00
everestmcarthur
ccd5079ead
v1.2.0: Major visual redesign — cleaner, more organized help
...
Embed mode (default):
- set_author with bot icon for clean header (no giant title)
- Overview: welcome message, compact 2-column category grid
with command previews, padded for clean alignment
- Category pages: each command shown as bold code name + indented
description with ╰ connector for visual hierarchy
- Command detail: yaml syntax block, organized sections with
emoji labels (📝 Description, 🔀 Aliases, ⏱️ Cooldown, 📁 Subcommands)
- Smart page numbering with real page counts
- Proper parameter hint footer (<required> [optional])
- 6 commands per page for readability (not cramped)
CV2 mode:
- Same visual improvements adapted for containers
- Clean separator-based hierarchy
- Prefix stripped from display names for cleaner look
Both modes:
- ActionRow fix: Close button + Select in separate rows
- Category cap at 18/20 to avoid Discord limits
- Consistent footer/navigation styling
2026-05-08 02:44:22 +00:00
everestmcarthur
f87759fecb
fix: ActionRow can't mix buttons+selects; separate into own rows
...
- CV2 HelpPaginatorView: Close button in its own ActionRow,
category Select in a separate ActionRow (Discord requires
selects to be alone in their row)
- Cap overview embed to 20 category fields to stay under
Discord's 25-field limit
2026-05-07 23:31:15 +00:00
everestmcarthur
d39ab05676
v1.1.0: embed help by default, CV2 when toggled on
...
Major rewrite of help rendering:
- Embed mode (default): Rich embeds with interactive View buttons
(⏮◀️ ▶️ ⏭) + category select dropdown + close button
- CV2 mode (when `cv2 toggle` is on): Components V2 containers
with the same navigation
- Shared data-gathering layer: both modes use the same logic to
gather commands, filter permissions, handle categories
- All Red help features: command filtering, permission checks,
aliases, subcommands, cooldowns, format_help_for_context
- Text fallback for DMs
2026-05-07 23:28:44 +00:00
everestmcarthur
324524fc77
refactor: NewHelpMenu → Components V2 mega cog (complete rewrite)
...
Replaces embed-based help with full Components V2 system:
- converter.py: Embed → Container conversion engine
- formatter.py: CV2 help page builder + paginator views
- newhelpmenu.py: Main cog with settings, monkey-patching, public API
- 1,747 lines across 4 files, default off
2026-05-07 22:41:31 +00:00