major-domo-v2/commands
Cal Corum 32cb5da632 CLAUDE: Refactor voice cleanup service to use @tasks.loop pattern
Problem:
- Voice cleanup service used manual while loop instead of @tasks.loop
- Did not wait for bot readiness before starting
- Startup verification could miss stale entries
- Manual channel deletions did not unpublish associated scorecards

Changes:
- Refactored VoiceChannelCleanupService to use @tasks.loop(minutes=1)
- Added @before_loop decorator with await bot.wait_until_ready()
- Updated bot.py to use setup_voice_cleanup() pattern
- Fixed scorecard unpublishing for manually deleted channels
- Fixed scorecard unpublishing for wrong channel type scenarios
- Updated cleanup interval from 60 seconds to 1 minute (same behavior)
- Changed cleanup reason message from "15+ minutes" to "5+ minutes" (matches actual threshold)

Benefits:
- Safe startup: cleanup waits for bot to be fully ready
- Reliable stale cleanup: startup verification guaranteed to run
- Complete cleanup: scorecards unpublished in all scenarios
- Consistent pattern: follows same pattern as other background tasks
- Better error handling: integrated with discord.py task lifecycle

Testing:
- All 19 voice command tests passing
- Updated test fixtures to handle new task pattern
- Fixed test assertions for new cleanup reason message

Documentation:
- Updated commands/voice/CLAUDE.md with new architecture
- Documented all four cleanup scenarios for scorecards
- Added task lifecycle information
- Updated configuration section

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-24 00:05:35 -05:00
..
admin CLAUDE: Add /admin-clear-scorecards command for manual channel management 2025-10-22 17:03:43 -05:00
custom_commands CLAUDE: Remove duplicate emojis from EmbedTemplate method calls 2025-10-14 00:43:05 -05:00
dice Add pitcher injury numbers to AB rolls 2025-10-23 23:47:45 -05:00
examples CLAUDE: Refine injury roll display and cleanup imports 2025-10-16 22:20:13 -05:00
gameplay Make /scorebug ephemeral 2025-10-23 19:51:51 -05:00
help CLAUDE: Add comprehensive CLAUDE.md documentation files for AI agent guidance 2025-10-20 20:30:07 -05:00
injuries Clear Injury bug fix 2025-10-22 19:20:43 -05:00
league Add sba_logo_url to the config and update /standings formatting 2025-10-21 14:40:03 -05:00
players Allow any user to toggle player stats 2025-10-21 13:06:03 -05:00
profile CLAUDE: Add comprehensive CLAUDE.md documentation files for AI agent guidance 2025-10-20 20:30:07 -05:00
soak Refactored listener logic and added SpoilerListener 2025-10-22 14:59:19 -05:00
spoiler Refactored listener logic and added SpoilerListener 2025-10-22 14:59:19 -05:00
teams CLAUDE: Add comprehensive CLAUDE.md documentation files for AI agent guidance 2025-10-20 20:30:07 -05:00
transactions CLAUDE: Change transaction diagnostic logging from INFO to DEBUG 2025-10-23 16:09:12 -05:00
utilities CLAUDE: Add multi-image support for charts 2025-10-20 22:00:19 -05:00
voice CLAUDE: Refactor voice cleanup service to use @tasks.loop pattern 2025-10-24 00:05:35 -05:00
__init__.py CLAUDE: Initial commit for discord-app-v2 rebuild 2025-08-15 00:04:50 -05:00
CLAUDE.md CLAUDE: Add comprehensive CLAUDE.md documentation files for AI agent guidance 2025-10-20 20:30:07 -05:00