v1.6.2 — Known Limitation Sprint
Release v1.6.2 — Known Limitation Sprint
1,532 tests · 45 files · 92.25% branch coverage · ≥80% per-file thresholds
🐛 Bug Fixes
- Monster attack distance (L6):
_stepMonsterAttacks()now validates Chebyshev tile distance before applying damage — attacks from out-of-range targets are discarded instead of hitting through walls. - Shield regen delay (L7): Regeneration delay moved from a hardcoded global constant (
SHIELD_REGEN_DELAY) toMONSTER_SPECS.S.shieldRegenDelaywith backward-compatible??fallback, making it spec-configurable.
🧪 Testing & Quality
| Metric | v1.6.1 | v1.6.2 |
|---|---|---|
| Tests | 1,420 | 1,532 (+112) |
| Test files | 43 | 45 (+2) |
| Branch coverage | 91%+ | 92.25% |
New test files:
tests/uiOverlays.test.js— 14 tests, 100% coverage (statements/branches/functions/lines) fordrawWaveTransitionprogress, fade, and early-return pathstests/preload.test.js— 30 tests, 100% coverage across all 4 metrics for the Electron preload script (contextBridge.exposeInMainWorld)tests/electronMain.test.js— 50 tests, ~55% coverage (excluded from thresholds)tests/main.test.js— 14 tests, ~47% coverage (excluded from thresholds)
🛠 Fixed Limitations
| ID | Limitation | Fix |
|---|---|---|
| L6 | Attack distance not validated | Chebyshev tile-distance check in _stepMonsterAttacks() |
| L7 | Hardcoded shield regen delay | Configurable per-spec via MONSTER_SPECS.S.shieldRegenDelay |
| L12 | drawWaveTransition progress uncovered |
100% coverage with deterministic performance.now() mocks |
| L13 | No Electron tests | Phase 1: electron-main (50 tests). Phase 2: preload (100% coverage) |
| L14 | Main.js uncovered | DOM bootstrap tests with jsdom/canvas polyfill (14 tests, ~47%) |
📋 Remaining Limitations (7)
L1 (TypeScript), L2 (save migration), L3 (particle cap), L4 (drawShop coupling), L5 (hit-test parity), L13 (electron-main <80%), L14 (main.js <80%)