undef-dice 2026-02-15
Initial commit and day-one iteration adding tests, effects, arena polish, and TypeScript hardening
111 files · 9,000+ · 6,156-

Initial project scaffold

12 files changed
  • UndefDiceApp.tsx Main React app component
  • DiceScene.tsx Three.js dice scene component
  • Chamber.tsx Arena chamber component
  • DiceRoller.tsx Dice roller wrapper
  • pre-simulate.ts Physics pre-simulation for deterministic throws
  • playback.ts Throw playback system
  • geometry-data.ts Dice geometry data
  • notation-parser.ts Dice notation parser
  • seeded-rng.ts Seeded RNG for determinism
  • messaging.ts postMessage bridge for embedding
  • package.json Package definition with workspace dependencies
  • vite.config.ts Vite build configuration
  • Repository initialized as undef-dice v1.0.0 with React/Three.js/Rapier physics stack, dice notation parser, seeded-RNG deterministic simulation, throw playback, and postMessage embedding bridge. instantiate architectural
    4 files
    • UndefDiceApp.tsx
    • pre-simulate.ts
    • seeded-rng.ts
    • messaging.ts

Test coverage expansion

12 files changed
  • effects.test.ts Core effects lifecycle tests (12% → 90% coverage)
  • chromatic-aberration.test.ts Chromatic aberration effect tests
  • crt-scanlines.test.ts CRT scanlines effect tests
  • motion-trails.test.ts Motion trails effect tests
  • panel-glow.test.ts Panel glow effect tests
  • pixelation.test.ts Pixelation effect tests
  • playback.test.ts Playback simulation tests
  • determinism-e2e.test.ts Simulation determinism E2E tests
  • pre-simulate.test.ts Pre-simulation unit tests
  • UndefDiceApp.test.tsx App component tests
  • Chamber.test.tsx Chamber component tests
  • geometry-data.test.ts Geometry data tests
  • Comprehensive tests added for the core effects lifecycle (chromatic-aberration, crt-scanlines, motion-trails, panel-glow, pixelation), pushing coverage from 12% to 90%. Simulation determinism and playback tests added. Core modules and app component tests added. qualify behavioral
    3 files
    • effects.test.ts
    • playback.test.ts
    • determinism-e2e.test.ts

Arena interactions and UI polish

6 files changed
  • DiceArena.tsx Arena with floor-tap to roll, die-tap zoom, speed-up settling
  • Chamber.tsx Added vertical corner wireframe lines
  • Die.tsx Die component with data-testid and aria attributes
  • DiceScene.tsx Updated with aria attributes
  • DiceRoller.tsx Updated with aria and testid attributes
  • PlaybackDie.tsx Playback die with testid attributes
  • Floor-tap to roll, die-tap to zoom, and speed-up-settling interactions added to the arena. Vertical corner wireframe lines added to Chamber. data-testid and aria-label attributes applied to all interactive UI elements. instantiate behavioral
    3 files
    • DiceArena.tsx
    • Chamber.tsx
    • Die.tsx

TypeScript and ESLint strictness

3 files changed
  • eslint.config.js ESLint config with expanded strict rules
  • tsconfig.json TypeScript strict mode settings
  • tsconfig.build.json Build tsconfig
  • TypeScript and ESLint strictness settings tightened. Vanilla DOM layer removed and import paths fixed after migration to undef-games scope. harden internal
    2 files
    • eslint.config.js
    • tsconfig.json