undef-dice 2026-03-13
Geometry and visuals modules split into focused files, pre-simulate rewritten for local-space symmetry rotation
54 files · 2,582+ · 1,654-

Geometry module split

5 files changed
  • geometry-data.ts Monolithic file reduced; non-generic parts extracted
  • d10-geometry.ts D10-specific geometry data extracted (new)
  • geometry-init.ts Geometry initialization logic extracted (new)
  • geometry-registry.ts Geometry registry/lookup extracted (new)
  • geometry-values.ts Geometry numeric values extracted (new)
  • geometry-data.ts (623 lines) split into four focused modules: d10-geometry.ts, geometry-init.ts, geometry-registry.ts, and geometry-values.ts. Dead code removed. decouple architectural
    3 files
    • geometry-data.ts
    • d10-geometry.ts
    • geometry-registry.ts

Visual submodule split

7 files changed
  • die-meshes.ts die-meshes.ts reduced; visual responsibilities split
  • die-materials.ts Die material creation extracted (new)
  • die-overlays.ts Die overlay rendering extracted (new)
  • die-animation.ts Die animation utilities extracted (new)
  • die-geometry.ts Die geometry helpers extracted (new)
  • die-materials.test.ts Die materials tests (217 lines)
  • die-overlays.test.ts Die overlays tests (269 lines)
  • die-meshes.ts (664+ lines) split into four visual submodules: die-materials.ts, die-overlays.ts, die-animation.ts, die-geometry.ts. Test files added for the new materials and overlays modules. decouple architectural
    3 files
    • die-meshes.ts
    • die-materials.ts
    • die-materials.test.ts

Local-space symmetry rotation for secure throws

3 files changed
  • pre-simulate.ts Rewritten for local-space symmetry rotation; correct secure throw orientations
  • pre-simulate-async.ts Async wrapper updated for rewritten pre-simulate
  • pre-simulate.test.ts Pre-simulate tests updated
  • pre-simulate.ts substantially rewritten to fix local-space symmetry rotation, producing correct orientations for secure throws. This ensures dice land on the intended face after a deterministic throw. remediate behavioral
    1 file
    • pre-simulate.ts

11th code review and UI fixes

6 files changed
  • useUndefDiceController.ts Input clamping and stale closure fixes
  • useUndefDiceController.test.tsx Controller tests updated
  • Sliders.tsx Input clamping applied to sliders
  • ResultsOverlay.tsx Results overlay fixes
  • useDiceStore.ts Stale closure fix in dice store
  • usePhysicsStore.ts Stale closure fix in physics store
  • 11th code review: input value clamping applied to sliders to prevent out-of-range values. Stale closure bugs fixed in React hooks. remediate internal
    2 files
    • Sliders.tsx
    • useDiceStore.ts

CI and packaging

4 files changed
  • ci.yml CI workflow updated
  • release.yml Release workflow updated
  • tailwind.config.js Tailwind config added
  • postcss.config.js PostCSS config added
  • CI and release workflows updated. Tailwind and PostCSS configs added to undef-dice package. baseline internal
    2 files
    • ci.yml
    • tailwind.config.js