undef-engine 2026-01-16
Hook standardization with require_character and Undef Dice control panels
162 files · 33,653+ · 2,946-

Hook standardization with require_character decorator

5 files changed
  • main.py Applied async_command to CLI files
  • game_helpers.py Updated game helpers with ActionResult pattern
  • character_extensions.py Added character persistence extensions
  • mixin.py Updated persistence mixin
  • serializers.py Added persistence serializers
  • Added require_character decorator to standardize hook return types and applied to all remaining hooks decouple behavioral
    1 file
    • character_extensions.py
  • Converted remaining hooks to ActionResult pattern with error handling harden internal
    1 file
    • game_helpers.py

Undef Dice comprehensive control panels

9 files changed
  • CameraControls.tsx Created 3D camera control panel
  • DiceButtons.tsx Created dice selection buttons
  • EffectsPanel.tsx Created visual effects panel
  • ModifierControls.tsx Created dice modifier controls
  • PhysicsSliders.tsx Created physics simulation tuning
  • PresetsPanel.tsx Created saved configuration presets
  • ResponsumDiceControls.tsx Created main control wrapper
  • RollButton.tsx Created roll button component
  • VisibilityBadge.tsx Created visibility badge component
  • Created comprehensive control panels for Undef Dice including camera, effects, physics, modifiers, and presets instantiate behavioral
    4 files
    • CameraControls.tsx
    • EffectsPanel.tsx
    • PhysicsSliders.tsx
    • PresetsPanel.tsx
  • Added DiceButtons, ModifierControls, RollButton, and VisibilityBadge components instantiate internal
    3 files
    • DiceButtons.tsx
    • ModifierControls.tsx
    • RollButton.tsx

Engine primitives and testing

6 files changed
  • __init__.py Updated primitives exports
  • dice_notation.py Added dice notation primitive
  • dice_roll.py Added dice roll primitive
  • inventory.py Added inventory primitive
  • DisputePhase.tsx Updated PDQ dispute phase
  • WebSocketContext.tsx Updated WebSocket context
  • Added dice_notation, dice_roll, and inventory engine primitives instantiate internal
    3 files
    • dice_notation.py
    • dice_roll.py
    • inventory.py
  • Added comprehensive tests for character, actions, and client_state hooks qualify internal
    2 files
    • CameraControls.test.tsx
    • PresetsPanel.test.tsx