dice-core 2026-02-28
Rounds 25-26 fixes plus camera control, settle timeout, and D20 diagnostic tests
22 files · 538+ · 90-

Review round 25-26 fixes

5 files changed
  • DiceScene.tsx Reset pendingSettledRef on abort, clarified spawnConfigs dependency
  • DiceArena.tsx Clear stale simulationResult on roll, rapier-ready sentinel for E2E, camera angle API
  • PlaybackDie.tsx Fixed settle timeout leak on early unmount
  • DiceRoller.tsx Fixed prop forwarding and type safety
  • die-visuals.ts Reduced texture waste and eliminated unnecessary re-renders
  • Fixed playbackSettledRef reset on abort, D30 validation, stale closure in DiceArena, texture waste from unnecessary re-creation, and setState calls from useFrame harden behavioral
    3 files
    • DiceScene.tsx
    • DiceArena.tsx
    • die-visuals.ts
  • Fixed settle timeout leak in PlaybackDie when component unmounts before settlement completes harden behavioral
    1 file
    • PlaybackDie.tsx

Camera control API

2 files changed
  • DiceArena.tsx Exposed setCameraAngles on DiceArenaRef for external camera control
  • types.ts Added type definitions for camera angle API
  • Exposed setCameraAngles on the DiceArenaRef for external camera control with optional look-at target interface behavioral
    2 files
    • DiceArena.tsx
    • types.ts

E2E synchronization sentinel

1 file changed
  • DiceArena.tsx Added rapier-ready sentinel flag for E2E test synchronization
  • Added a rapier-ready sentinel that E2E tests can observe to know when physics initialization is complete, with proper reset on retry qualify behavioral
    1 file
    • DiceArena.tsx

D20 diagnostic test coverage

1 file changed
  • d20-diagnostic.test.ts D20 diagnostic tests including seededQuat coverage, multi-frame slerp blend, and settle-start tolerance
  • Added D20 diagnostic tests covering seeded quaternion generation, multi-frame slerp blending, and settle-start tolerance qualify behavioral
    1 file
    • d20-diagnostic.test.ts

Build and configuration

5 files changed
  • vite.config.ts Restored worker URL in library build for consumer bundler compatibility
  • notation-parser.ts Added notation edge case handling
  • custom-geometry.ts Added custom geometry guards
  • logger.ts Logger improvements
  • index.ts Updated public API exports
  • Restored worker URL handling in the Vite config for proper library consumer bundler compatibility baseline internal
    1 file
    • vite.config.ts