Repository navigation
v2.4.0 — God of Digging + Thinking Broadcast
God of Digging
Third deity joins the pantheon — an enthusiastic hole connoisseur who actually modifies terrain for players. Four dig shapes: holes, tunnels, staircases, and shafts, all with instant block clearing, particle effects, and shared undo history.
- Structured responses: Uses pydantic-validated JSON (two-turn: dig action + memory composition), unlike the free-text approach of other gods
- Personality: Punny historical aliases each appearance, hole quality ratings, bounded memory archive of past excavations
- Inter-god communication: Can forward prayers to Kind God when requests are outside its domain — players see the handoff in chat
- Java plugin:
executeDigCommand()handles all 4 shapes with staircase two-pass placement, 5-block headroom, and try-catch safety wrapper
Thinking Broadcast
All gods' inner monologue now appears in-game as colored chat messages. Players see the gods deliberating in real-time.
- Callback pattern: Each god's
think()fireson_thinkingwith narrative text; for Kind God multi-turn schematic reasoning, thinking appears turn-by-turn - Filtering: JSON blobs, fenced code blocks, minecraft commands, and markdown formatting stripped before display
- Word wrapping: All god chat messages wrapped at ~50 chars to fit Minecraft chat width, with proper indentation on continuation lines
- Line caps: Thinking capped at 6 lines, messages at 10 lines to prevent chat flooding
PR Review Fixes
- Java try-catch on
executeDigCommandto protect the command polling loop - Protected
json.loadsin_handle_tool_callsfor malformed LLM output callabletoCallable[[str], None] | Nonetype annotations across all godsaliasfield capped at 100 chars, no-op validator removed- FILO to FIFO terminology fix, docstring updates
Stats
- 328 tests (78 dig god + 27 thinking broadcast + existing)
- 2,139 lines changed across 13 files
- 4 new files:
dig_god.py,dig_memory.py,test_dig_god.py,test_thinking_broadcast.py