undef-dice 2026-02-02
Vanilla Three.js layer removed; core modules relocated to src/core/; Zustand store tests added
120 files · 5,529+ · 11,569-

Architectural namespace reorganization

25 files changed
  • defaults.ts Config defaults moved to src/core/
  • dice-configs.ts Dice configs moved to src/core/
  • index.ts Config index moved to src/core/
  • custom-geometry.ts Dice geometry moved to src/core/dice/
  • face-reader.ts Face reader moved to src/core/dice/
  • geometry-data.ts Geometry data moved to src/core/dice/
  • mesh-factory.ts Mesh factory moved to src/core/dice/
  • notation-parser.ts Notation parser moved to src/core/dice/
  • numbers-overlay.ts Numbers overlay moved to src/core/dice/
  • textures.ts Textures moved to src/core/dice/
  • chromatic-aberration.ts Effect moved to src/core/effects/
  • crt-scanlines.ts Effect moved to src/core/effects/
  • effect-chain.ts Effect chain moved to src/core/effects/
  • motion-trails.ts Effect moved to src/core/effects/
  • panel-glow.ts Effect moved to src/core/effects/
  • pixelation.ts Effect moved to src/core/effects/
  • seeded-rng.ts Seeded RNG moved to src/core/integration/
  • die-bodies.ts Physics bodies moved to src/core/physics/
  • world.ts Physics world moved to src/core/physics/
  • pre-simulate.ts Pre-simulate moved to src/core/simulation/
  • playback.ts Playback moved to src/core/simulation/
  • config.ts Types moved to src/core/types/
  • dice.ts Types moved to src/core/types/
  • ui-setup.ts UI setup moved to src/core/
  • logger.ts Logger moved to src/core/utils/
  • Moved all engine modules into src/core/ namespace: config/, dice/, effects/, integration/, physics/, simulation/, types/, utils/ remediate architectural
    5 files
    • dice-configs.ts
    • notation-parser.ts
    • effect-chain.ts
    • world.ts
    • pre-simulate.ts
  • Deleted the entire vanilla Three.js layer (~11,500 lines removed): remediate architectural
    5 files
    • scene.ts
    • floor.ts
    • roll.ts
    • dice-buttons.ts
    • main.css

Test coverage expansion

10 files changed
  • useCameraStore.test.ts Camera store tests
  • useDiceStore.test.ts Dice store tests
  • useEffectsStore.test.ts Effects store tests
  • useHistoryStore.test.ts History store tests
  • useModifierStore.test.ts Modifier store tests
  • usePhysicsStore.test.ts Physics store tests
  • usePresetStore.test.ts Preset store tests
  • EffectComposer.test.tsx EffectComposer component tests
  • PanelGlow.test.tsx PanelGlow component tests
  • visual-parity.spec.ts Visual parity E2E test comparing vanilla and React renders
  • Added 7 comprehensive Zustand store test suites (~3,700 lines total): qualify internal
    7 files
    • useCameraStore.test.ts
    • useDiceStore.test.ts
    • useEffectsStore.test.ts
    • useHistoryStore.test.ts
    • useModifierStore.test.ts
    • usePhysicsStore.test.ts
    • usePresetStore.test.ts
  • Added EffectComposer.test.tsx and PanelGlow.test.tsx component tests qualify internal
    2 files
    • EffectComposer.test.tsx
    • PanelGlow.test.tsx
  • Added visual-parity.spec.ts E2E test comparing vanilla and React renders qualify internal
    1 file
    • visual-parity.spec.ts

Supporting additions

6 files changed
  • record-features.mjs Automated feature recording script
  • index.html Stripped down by ~490 lines, removing inline styles and scripts
  • tsconfig.build.json Updated path mappings
  • vitest.config.ts Enhanced test setup with additional mocking utilities
  • test-setup.ts Enhanced test setup
  • css.d.ts CSS module type declarations
  • Added record-features.mjs script for automated feature recording instantiate behavioral
    1 file
    • record-features.mjs
  • Stripped down index.html by ~490 lines, removing inline styles and scripts remediate internal
    1 file
    • index.html
  • Updated import paths across all remaining source files to use @/core/ prefix remediate internal
    2 files
    • tsconfig.build.json
    • vitest.config.ts