Fix double elimination with byes never finishing; hand-built brackets

Byes now cascade through the whole bracket (a slot nobody can fill is a bye or
a void), re-run on server start so stuck tournaments recover. New manual
bracket builder on the desk: pick round-1 pairings per match. Tests at 5-23
teams for both bracket types. Release 0.5.0.

Co-Authored-By: Claude Fable 5.1 <[email protected]>
Claude-Session: https://claude.ai/code/session_01MB7nCCAscYsb3zzkT6LHZi
This commit is contained in:
bkvargyasandClaude Fable 5.1 committed 2026-09-05 15:33:36 +00:00
1 parent a5222953dd
commit a4bee22d96
13 files changed
+214 -25

No files matched your search

+17
View File
@@ -9,6 +9,23 @@ so you can always tell what a deployment is actually serving.
## [Unreleased]
## [0.5.0] - 2026-09-03
### Fixed
- **Double elimination with byes could never finish.** With many byes (e.g. 18 teams in a
32 bracket) losers-bracket slots fed by matches that never happen were left waiting forever;
the tournament stayed live with both courts open. Byes now cascade through the whole bracket:
a slot nobody can ever fill is a bye for the team on the other side, or a void match if both
sides are empty. This is re-run when the server starts, so a stuck tournament unsticks itself
on the first deploy of this version and goes Final if everything else is played.
- Tested at 5, 6, 9, 12, 17, 18 and 23 teams, single and double elimination.
### Added
- **Build the bracket by hand.** On the desk, "Build the bracket by hand" lists every round-1
match with a team picker on each side, pre-filled with standard seeding. Pick who plays whom,
leave a side as "bye" for a walkover, choose single or double elimination, and build. Teams
picked twice are flagged before you submit and rejected by the server.
## [0.4.2] - 2026-09-03
### Fixed