Starts after: Stages 6B complete. Stage 5 must also be merged.
What this is: The wiring that connects room completion → bracket advancement → round detection. Everything before this stage was built in isolation; this stage proves they compose correctly end-to-end.
Tasks
-
Complete Reconciliation Worker tournament hook
- In the
reconciliation_queue worker: after writing ContestRoom final results to MongoDB, check if contestId belongs to a knockout contest.
- If yes: call the bracket advancement hook from Stage 6B.
- Works for both 1v1 and 3v3 rooms (maps team result to
ContestStanding).
-
Full pipeline stress test
- 8-player knockout (3 rounds). All real CF accounts.
- Verify: correct participants advance at each round, bracket state is correct at every step, final winner recorded in
Contest.winner.
- Verify: all
room:<id>:* Redis keys deleted after each room ends.
- Verify: all
contest:<id>:* Redis keys deleted after the contest completes.
-
Redis cleanup verification
- After every room ends: all
room:<id>:* keys deleted.
- After tournament completes: all
contest:<id>:* keys deleted.
Testing Gate
Starts after: Stages 6B complete. Stage 5 must also be merged.
What this is: The wiring that connects room completion → bracket advancement → round detection. Everything before this stage was built in isolation; this stage proves they compose correctly end-to-end.
Tasks
Complete Reconciliation Worker tournament hook
reconciliation_queueworker: after writingContestRoomfinal results to MongoDB, check ifcontestIdbelongs to a knockout contest.ContestStanding).Full pipeline stress test
Contest.winner.room:<id>:*Redis keys deleted after each room ends.contest:<id>:*Redis keys deleted after the contest completes.Redis cleanup verification
room:<id>:*keys deleted.contest:<id>:*keys deleted.Testing Gate
Contest.winnerpopulated correctly at the end.