AI Implementation feature(910): Scoreboard: Ranking, Matrix, Event Log and Score Graph 1.00 (#53)

This commit was merged in pull request #53.
This commit is contained in:
2026-07-23 05:42:17 +00:00
parent 7c4843d5cc
commit 4273662211
14 changed files with 129 additions and 179 deletions
+10 -4
View File
@@ -3,7 +3,7 @@ type: guide
title: Scoreboard Stream
description: How fresh solves are broadcast to clients — both the public unauthenticated scoreboard SSE stream and the authenticated combined /api/v1/events stream that the /scoreboard page consumes.
tags: [guide, scoreboard, sse, stream, public, authenticated]
timestamp: 2026-07-23T05:10:00Z
timestamp: 2026-07-23T05:41:00Z
---
# Overview
@@ -43,9 +43,15 @@ is published to the scoreboard hub.
* `/api/v1/scoreboard/stream` emits a flattened shape
(`challengeId`, `userId`, `pointsAwarded`, `rankBonus`,
`solvedAt`) for anonymous spectators.
* `/api/v1/events` emits a richer `SolveEventPayload` (with both
snake_case and camelCase aliases, plus `position`,
`live_points`, `solve_count`, etc.) for the authenticated SPA.
* `/api/v1/events` emits a richer `SolveEventPayload` (with both
snake_case and camelCase aliases, plus `challenge_name`,
`category_abbreviation`, `position`, `live_points`,
`solve_count`, etc.) for the authenticated SPA. The display
metadata fields are sourced from the same `challenge` +
`category` join that backs the `/api/v1/scoreboard/event-log`
REST projection, so the Event Log tab can render an SSE-pushed
row with the challenge name and category abbreviation without a
second lookup.
The hub is in-process; multi-replica deployments need a shared
pub/sub to fan out across pods (not in scope for this repo).