Commit Graph

7 Commits

Author SHA1 Message Date
goyban 1149687e3c Security hardening: escape names in result screens, drop tech-stack headers
- Escape player names rendered via innerHTML on the hand-over and game-over
  score rows (defense-in-depth XSS; names are already capped at 16 chars)
- app.disable('x-powered-by') to stop advertising Express
- Add safe response headers: X-Content-Type-Options, X-Frame-Options,
  Referrer-Policy (no CSP — inline SW script + socket.io would need unsafe-inline)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-16 12:42:14 +00:00
goyban 3cf338d014 Use JOKER-3.svg for the colorful joker
Point JOKER-COLOR at /cards/JOKER-3.svg instead of JOKER-1.svg.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-12 09:22:08 +00:00
goyban 23ae455ec1 Sort cards C D S H so same-colour suits aren't adjacent
Reorder the suit sort (hand + widow overlay) to alternate colours
(clubs, diamonds, spades, hearts) so hearts and diamonds no longer sit
next to each other.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 18:11:12 +00:00
goyban 66a9e59db6 Add tap-to-update button on version footer to force-refresh cached assets
Phones stuck on stale service-worker caches (esp. iOS home-screen PWAs) could
show the new version string while still running old app.js/css. Tapping the
footer now unregisters the service worker, clears all caches, and reloads to
pull the latest build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 23:07:16 +00:00
goyban ab069f2ec3 Show all 4 bids on mobile during bidding (remove inner scroll cap)
The mobile bid-history was capped at 110px, hiding the 4th player's bid behind
a scroll even though the panel had room. There are always exactly 4 players, so
show all four rows.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-11 20:54:50 +00:00
goyban cb664e4505 Show app version in lobby footer; expose version via /api/config
- Server reads version from package.json and returns it from /api/config
- Client fetches it at boot and renders it in a lobby footer
- Bump service-worker cache to shelem-v3 so precache refreshes

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-05 19:46:13 +00:00
goyban 8e8478e45b Initial commit: Shelem card game
Full-stack multiplayer Shelem (Iranian trick-taking card game) with
Socket.IO, JWT auth, bot players, joker mode, and mobile-friendly UI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-08 16:17:37 +00:00