Skip to content

v2.4.0 — God of Digging + Thinking Broadcast

Choose a tag to compare

@aebrer aebrer released this 19 Feb 02:06
· 3 commits to master since this release

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() fires on_thinking with 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 executeDigCommand to protect the command polling loop
  • Protected json.loads in _handle_tool_calls for malformed LLM output
  • callable to Callable[[str], None] | None type annotations across all gods
  • alias field 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

Closes #24 | PR #25