Major Domo v2 - Discord bot for Strat-o-Matic Baseball Association
Go to file
Claude 57b4dc0ce9
CLAUDE: Fix critical bug preventing Monday freeze/thaw from executing
## Problem
The weekly freeze/thaw system had a state flag initialization bug that prevented
both Monday freeze operations and Saturday thaw operations from executing.

## Root Cause (Introduced in commit 07f69eb on Oct 25, 2025)
The `weekly_warning_sent` boolean flag was being used for TWO different purposes:
1. Preventing duplicate freeze/thaw operations (state machine)
2. Preventing duplicate error notifications

The flag was initialized to `False`, but the Monday freeze condition required
it to be `True`:
- Line 205: `if ... and self.weekly_warning_sent:` (required True)
- Line 160: `self.weekly_warning_sent = False` (initialized to False)

This created a deadlock:
- Monday freeze: Never ran (flag was False, needed True)
- Saturday thaw: Never ran (freeze flag in DB never set to True)

## Impact
- First failure: Monday October 27, 2025
- Affected weeks: 2+ weeks of missed freeze/thaw operations
- Result: Week did NOT increment, transactions did NOT execute

## Solution
Separated the two concerns and replaced boolean flag with week tracking:

1. **Deduplication**: Track `last_freeze_week` and `last_thaw_week` (int | None)
   - Monday: Execute if `last_freeze_week != current.week`
   - Saturday: Execute if `last_thaw_week != current.week`
   - Prevents duplicate operations during same hour (loop runs every minute)

2. **Error notifications**: Separate `error_notification_sent` boolean flag
   - Only used for preventing duplicate error notifications
   - Clear separation of concerns

## Validation
Created and ran validation script simulating 7 scenarios across multiple weeks:
-  Monday freeze executes on first check
-  Monday freeze skips on subsequent checks same hour
-  Saturday thaw executes on first check
-  Saturday thaw skips on subsequent checks same hour
-  Next Monday freeze executes for new week
-  Week numbers increment correctly (19→20→21→22)
-  All state transitions work as expected

## Files Changed
- tasks/transaction_freeze.py:157-167 - Separated state tracking from error flags
- tasks/transaction_freeze.py:211-231 - Fixed freeze/thaw conditions with week tracking
- tasks/transaction_freeze.py:248-250 - Updated error notification flag name

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-05 17:56:44 +00:00
.gitlab CLAUDE: Add automated weekly transaction freeze/thaw system 2025-10-20 12:16:13 -05:00
.vscode CLAUDE: Convert constants to configurable environment variables 2025-10-16 10:40:22 -05:00
api CLAUDE: Add automated weekly transaction freeze/thaw system 2025-10-20 12:16:13 -05:00
commands All pings on /cc 2025-10-29 13:00:14 -05:00
models CLAUDE: Fix draft list operations and improve add success display 2025-10-25 19:35:50 -05:00
scripts CLAUDE: Automate player roster updates in transaction freeze/thaw system 2025-10-27 14:25:00 -05:00
services CLAUDE: Use DELETE endpoint for clearing draft list 2025-10-25 19:50:30 -05:00
tasks CLAUDE: Fix critical bug preventing Monday freeze/thaw from executing 2025-11-05 17:56:44 +00:00
tests CLAUDE: Refactor dice rolling into reusable utility module and add /d20 command 2025-10-29 01:15:11 -05:00
utils CLAUDE: Refactor dice rolling into reusable utility module and add /d20 command 2025-10-29 01:15:11 -05:00
views CLAUDE: Fix injury roll validation to support playoff weeks 2025-10-29 00:56:39 -05:00
.dockerignore Add debug directory to .gitignore and .dockerignore 2025-10-24 00:06:34 -05:00
.gitignore Draft pick service and draft helpers 2025-10-24 10:24:14 -05:00
.gitlab-ci.yml CLAUDE: Add automated weekly transaction freeze/thaw system 2025-10-20 12:16:13 -05:00
.mcp.json CLAUDE: Add automated weekly transaction freeze/thaw system 2025-10-20 12:16:13 -05:00
bot.py CLAUDE: Integrate draft commands into bot.py 2025-10-24 22:17:09 -05:00
BUILD_AND_PUSH.md CLAUDE: Add comprehensive Docker deployment infrastructure 2025-10-16 00:54:56 -05:00
build-and-push.sh CLAUDE: Add comprehensive Docker deployment infrastructure 2025-10-16 00:54:56 -05:00
CLAUDE.md CLAUDE: Add comprehensive CLAUDE.md documentation files for AI agent guidance 2025-10-20 20:30:07 -05:00
COMMAND_LIST.md CLAUDE: Add comprehensive scorecard submission system 2025-10-16 00:21:32 -05:00
config.py CLAUDE: Add playoff configuration constants for injury roll validation 2025-10-29 01:20:13 -05:00
docker-compose.dev.yml CLAUDE: Add comprehensive Docker deployment infrastructure 2025-10-16 00:54:56 -05:00
docker-compose.yml CLAUDE: Add comprehensive Docker deployment infrastructure 2025-10-16 00:54:56 -05:00
DOCKER.md CLAUDE: Add comprehensive Docker deployment infrastructure 2025-10-16 00:54:56 -05:00
Dockerfile CLAUDE: Add comprehensive Docker deployment infrastructure 2025-10-16 00:54:56 -05:00
Dockerfile.versioned CLAUDE: Add automated weekly transaction freeze/thaw system 2025-10-20 12:16:13 -05:00
exceptions.py CLAUDE: Add comprehensive scorecard submission system 2025-10-16 00:21:32 -05:00
pyrightconfig.json CLAUDE: Convert constants to configurable environment variables 2025-10-16 10:40:22 -05:00
requirements.txt CLAUDE: Add comprehensive Docker deployment infrastructure 2025-10-16 00:54:56 -05:00
test_real_data.py CLAUDE: Refine injury roll display and cleanup imports 2025-10-16 22:20:13 -05:00