- Rewrite /play page to use direct dynamic import inside useEffect
instead of next/dynamic (fixes BAILOUT_TO_CLIENT_SIDE_RENDERING)
- Fix Phaser 3.86 particle API: use direct property assignment
instead of setFrequency/setLifespan
- Add AI match detection and skip blockchain calls for AI opponents
- Pass NEXT_PUBLIC_* build args via Dockerfile/docker-compose
so the built client points to the correct API endpoint
- Remove obsolete PlayClient.tsx
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Simplify Dockerfiles to use single-stage pnpm install
- Add openssl to server Alpine image for Prisma
- Remove obsolete version from docker-compose.yml
- Fix Dockerfile.node copy paths for monorepo root context
- Add .dockerignore at monorepo root
- Create empty public dir for Next.js standalone build
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Phase 0 foundation:
- Docker Compose with PostgreSQL, Redis, Hardhat node
- RPSArena.sol commit-reveal smart contract with tests
- Node.js + Socket.io server with matchmaking and match state machine
- Next.js + Phaser 3 frontend with Boot, Lobby, Arena, Result scenes
- Nginx Proxy Manager integration planned for jeu.cosmolan.fr
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>