undef-dice 2026-03-01
Dropped die detection, secure throw, results display fixes, E2E test refactor, and dead-code detection tooling
39 files · 1,670+ · 1,306-

Core physics and input fixes

3 files changed
  • UndefDiceApp.tsx Index-based dropped die detection, stable keyboard listener, frame-based secure throw
  • useKeyboard.ts Keyboard listener stability improvements
  • useModifierStore.ts Modifier store adjustments
  • Index-based dropped die detection replaces fragile identity-based detection. Keyboard listener stabilized. Frame-based secure throw implemented. remediate behavioral
    2 files
    • UndefDiceApp.tsx
    • useKeyboard.ts

Results display

1 file changed
  • ResultsOverlay.tsx D% max value and DF min value highlighting corrected
  • D% (percentile dice) max value highlighting and DF (fate dice) min value highlighting corrected in the ResultsOverlay component. remediate behavioral
    1 file
    • ResultsOverlay.tsx

E2E test refactor

17 files changed
  • _helpers.ts Shared E2E helper utilities
  • throw.spec.ts Per-die throw spec for d4
  • throw.spec.ts Per-die throw spec for d6
  • throw.spec.ts Per-die throw spec for d8
  • throw.spec.ts Per-die throw spec for d10
  • throw.spec.ts Per-die throw spec for d12
  • throw.spec.ts Per-die throw spec for d20
  • snapshot.spec.ts Canvas snapshot regression test for d4
  • snapshot.spec.ts Canvas snapshot regression test for d6
  • snapshot.spec.ts Canvas snapshot regression test for d8
  • snapshot.spec.ts Canvas snapshot regression test for d10
  • snapshot.spec.ts Canvas snapshot regression test for d12
  • snapshot.spec.ts Canvas snapshot regression test for d20
  • determinism-rapier.spec.ts Determinism test with rewound playback startTime
  • full-session.spec.ts Full session test updated to use getByTestId for grab-btn
  • dice-roller.spec.ts Dice roller E2E tests updated
  • UndefDiceApp.test.tsx App mock and E2E selectors repaired
  • Monolithic canvas-snapshot E2E test replaced with per-die feature specs (throw + snapshot per die type). Headless Playwright config and canvas snapshot regression tests added. grab-btn selectors updated to use getByTestId after aria-label approach broke getByRole. decouple behavioral
    4 files
    • _helpers.ts
    • throw.spec.ts
    • snapshot.spec.ts
    • determinism-rapier.spec.ts
4 files changed
  • knip.json Knip dead-code detection configuration
  • pre-commit Pre-commit hook updated
  • package-lock.json Lock file updated after audit fixes
  • package.json Three audit vulnerabilities fixed via npm audit fix
  • Knip dead-code detection added to the project. Three npm audit vulnerabilities fixed. baseline internal
    2 files
    • knip.json
    • package.json