Sessions are served from MariaDB via sessionModel.js + routes/sessionRoutes.
These files were orphaned by the SQLite->MariaDB migration:
- requireSession.js: unused (no importers), still required ./sqlite-db
- healthcheck.js: required removed ./sqlite-db; would crash every run
- server-healthcheck.yml: scheduled the broken healthcheck every 15 min
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
healthcheck.js only opens the local committed SQLite DB on the runner
and never contacts the deployed server, so the every-15-min schedule
validated nothing and consumed Actions minutes. Keep workflow_dispatch
for manual runs.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
- Dedicated 'Run unit tests' step (npm run test:unit) so unit tests are
visible and guaranteed in CI rather than implied by the build script.
- Build now calls react-scripts build directly, avoiding a redundant
second Jest run (CI=true still fails the build on lint warnings).
- Bump Node 18 (EOL) -> 20 and enable npm dependency caching.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Centralizes all GM controls—add, update, delete player, set RP or renown, reset player passwords—into the PlayerTab for a more intuitive workflow. Removes GM panel logic and duplication from the shop view, clarifies GM access, and improves error feedback on player list loading. Adds a backend health check endpoint and minor UI polish.