fix(ui): advance turn glow/interactivity to the player to move

`active` was `$derived(gameStore.activeBoards)`, and that getter read the
non-`$state` `#game`. The $derived captured no reactive dependency, so the
glowing/interactive boards froze on North's NW+NE after move 1: the next
player couldn't act, clicks on their boards did nothing, and selections fired
on unexpected boards — the reported "turns", "what piece is selected", and
"mirrored movements" symptoms were all this one stale-derived bug.

Fix: derive `active` from the reactive `view.currentPlayer`; remove the
footgun `activeBoards` getter so nothing re-reads `#game` reactively.

Add scripts/smoke.py: Playwright end-to-end test driving the real app through
a full N->S->E->W round (engine vitest can't see Svelte reactivity wiring).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
claude (duplicate_chess)
2026-06-26 09:36:59 -04:00
parent 294a786336
commit a44b4de717
4 changed files with 96 additions and 7 deletions
+3
View File
@@ -29,3 +29,6 @@ dist-ssr
.superpowers/
*.tsbuildinfo
GITEA_API.md
# Backups (global safety rule keeps these locally; never commit them)
.backup/