Tier-3
Merged
HU
4mo ago+15106+15106+01234567890123456789012345678901234567890123456789-5924-5924-0123456789012345678901234567890123456789
Summary by cubic
Adds polished page-load motion, media upload, and “how to play” guides on the web app, plus JWT auth with API keys, offline read-only caching, and a rate‑limited, cached API with structured logs for better UX, security, and reliability.
-
New Features
- Motion system:
AnimatedOutlet,TabStrip, and route-aware skeletons; respects reduced motion. - Media: UI upload with progress/cancel; sessions now support video/poster and player photos.
- Game guides: single source
content/game-guides.tswithGameGuideCard; tests included. - Field tooltips: enforced via
TextField/SelectField/FileFieldwith centralized copy. - Auth:
/auth/tokenissues HS256 JWTs; API keys list/create UI at/settings/keys;AuthProvider+OwnerSwitcher. - PWA/offline:
vite-plugin-pwa+ React Query persistence for sessions;OfflineBanner. - Scorecard export: print-ready HTML; basic i18n via
i18next; API docs hosted in/docsusing Redoc.
- Motion system:
-
Scale & Reliability
- Rate limiting via
RateLimiterDurable Object per IP (health/docs excluded). - KV caching for
GET /sessions(60s TTL,Cache-Control: max-age=15,X-Cacheheaders). - Structured JSON logging with
X-Trace-Id; deep readiness atGET /health?deep=1. - Tests for health, JWT, rate limiter, session cache; Vitest UI tests for Overview/History.
- Upgrades:
wranglerv4; new envs includeOCHE_JWT_SECRET,RATE_LIMITER, andCACHEbindings.
- Rate limiting via