Add multiplayer UNO, room sentiment tracking, and audit fixes

- Multiplayer UNO: lobby system (2-4 humans + bot), DM-based turns,
  30s auto-play timer, winner-takes-all pot, forfeit handling
- Solo UNO: refactor bot AI to shared standalone functions, support
  starting games from DM, passive UNO call system
- Room sentiment: new room_sentiment_stats table and !roomsentiment
  command showing per-room sentiment breakdown with percentages
- Stop purging llm_classifications (retain indefinitely for analytics)
- Fix multiplayer UNO audit issues: dead code in initMultiGame,
  double game.turns++ on human plays, missing !uno status command
- Update README with UNO commands, config, and architecture

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
prosolis
2026-03-13 10:26:50 -07:00
parent 7c9dd28021
commit e0a201ef97
6 changed files with 1891 additions and 63 deletions

View File

@@ -51,8 +51,13 @@ BLACKJACK_AUTOPLAY_THRESHOLD=15
BLACKJACK_MIN_BET=1
BLACKJACK_MAX_BET=500
BLACKJACK_DEBT_LIMIT=1000 # max debt before betting disabled
UNO_MIN_BET=10 # minimum wager in euros
UNO_MIN_BET=10 # minimum wager in euros (solo)
UNO_POT_TAUNT_THRESHOLD=500 # pot size at which GogoBee starts taunting
UNO_MULTI_MIN_BET=25 # minimum ante for multiplayer UNO
UNO_MULTI_MAX_BET=500 # maximum ante for multiplayer UNO
UNO_MULTI_LOBBY_TIMEOUT=300 # lobby expiry in seconds (default 300 = 5min)
UNO_MULTI_TURN_TIMEOUT=30 # auto-play timeout in seconds (default 30)
UNO_MULTI_MAX_AUTOPLAY=3 # consecutive auto-plays before forfeit
# ---- Space Groups (automatic room grouping for community-wide leaderboards) ----
SPACE_GROUP_THRESHOLD=50 # % of smaller room's members that must overlap (1-100, default 50)