claude-memory/graph/solutions/play-lock-context-manager-refactor-locked-play-1f7cd0.md
Cal Corum b140d4d82a migrate: 313 memories from MemoryGraph
- 313 new markdown files created
- 30 relationships embedded
- 313 entries indexed
- State initialized with usage data
2026-02-13 11:11:48 -06:00

828 B

id type title tags importance confidence created updated
1f7cd081-6532-4db7-ad4b-4049b1a5603a solution Play lock context manager refactor - locked_play
paper-dynasty
python
fix
play-lock
context-manager
0.8 0.8 2026-02-11T03:48:13.286652+00:00 2026-02-11T03:48:13.286652+00:00

Created command_logic/play_context.py with locked_play async context manager. Wraps checks_log_interaction() and guarantees lock release on exception, early return, or normal exit. Fixed production bug where log_chaos, log_sac_bunt, and log_stealing left locks permanently stuck due to early returns after lock acquisition. Migrated all 18 locking commands in cogs/gameplay.py. Removed double-locking in end_game_command. Special handling for undo_play (sets original_play.locked=False to prevent committing deleted row).