5 Commits
Author SHA1 Message Date
derekandClaude Opus 5.5 a99997b96d Break leaderboard ties with Melee's tiebreakers
After total of all sessions, ties fall to OMW%, GW% and OGW% over all the
league's matches (bye = 2-0 win, not an opponent; opponents floored at 1/3),
then name. Verified identical to Melee's order and percentages on a real
night. The leaderboard shows the three percentages.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 17:13:24 +00:00
derekandClaude Opus 5.5 0e14228b8f Upload several Melee exports at once; let admins delete leagues
- The session import takes many files (every round's matches export plus
  the standings export) in one transaction; a bad file, a round repeated
  across files, or two standings exports rejects the whole batch.
- Delete league (with its sessions and results; players are kept).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 17:11:10 +00:00
derekandClaude Opus 5.5 985c85bcef Import Melee matches exports, add tests and local podman stack
- Parse Melee matches exports (one round per file, byes, null GameWins);
  one import form detects matches vs standings exports. Re-importing a
  round replaces just that round and keeps entered decks.
- Per-player deck entry for sessions scored from matches.
- node:test suite with anonymised fixtures; lockfile.
- scripts/local.sh runs the compose stack under podman with its own
  .env.local, project name and volume.
- README and CLAUDE.md docs.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-28 16:58:24 +00:00
derek a7f440c658 add base path setting 2026-10-28 14:41:43 +00:00
derek ef1c188807 Initial Commit 2026-10-28 12:47:05 +00:00