Persist Wordle guesses, fix hardcoded rendering, announce expired puzzles

- Add wordle_guesses table to persist individual guesses to DB
- Reload guesses during rehydration so they survive bot restarts
- Clear stale guesses when puzzle is replaced (skip+new)
- Fix all hardcoded /6 and 🟩🟩🟩🟩🟩 in rendering to use puzzle.MaxGuesses
  and puzzle.WordLength
- Announce unsolved puzzles at midnight rollover instead of silently replacing
- Mark expired puzzles as failed and update stats on rollover

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-04-01 22:11:01 -07:00
parent b4d5080f48
commit a0573e67a5
3 changed files with 96 additions and 8 deletions

View File

@@ -822,6 +822,17 @@ CREATE TABLE IF NOT EXISTS wordle_puzzles (
PRIMARY KEY (puzzle_id, room_id)
);
CREATE TABLE IF NOT EXISTS wordle_guesses (
puzzle_id TEXT NOT NULL,
room_id TEXT NOT NULL,
guess_num INTEGER NOT NULL,
word TEXT NOT NULL,
player_id TEXT NOT NULL,
player_name TEXT NOT NULL,
guessed_at DATETIME NOT NULL,
PRIMARY KEY (puzzle_id, room_id, guess_num)
);
-- Space groups (rooms with overlapping membership)
CREATE TABLE IF NOT EXISTS space_groups (
room_id TEXT PRIMARY KEY,