5.5 KiB
id, title, status, type, team, supporting_teams, roadmap_item, priority
| id | title | status | type | team | supporting_teams | roadmap_item | priority | |
|---|---|---|---|---|---|---|---|---|
| TASK-151 | Current match page base | pending | frontend | Frontend Senior |
|
rcon-full-data | high |
TASK-151 - Current match page base
Goal
Create the first functional internal "Partida actual" page for active Comunidad Hispana servers.
Background
The home page will link to
partida-actual.html?server=<server_slug>. We need the first real version of
our internal current-match page.
This page should be visually aligned with the existing historical match detail page, but it represents a live match instead of a closed historical match.
Important public scoreboard URLs:
comunidad-hispana-01->https://scoreboard.comunidadhll.escomunidad-hispana-02->https://scoreboard.comunidadhll.es:5443
These are base URLs for the current public scoreboard and must not include
/games.
Constraints / DO NOT BREAK
- Do not break the existing historical page.
- Do not break the existing match detail page.
- Do not change scoreboard correlation logic.
- Do not implement the live kill feed in this task unless there is already a safe endpoint that can be reused trivially.
- Do not fabricate closed-match data.
- Do not show final winner/duration/closed_at for a live match.
- Do not depend on server #03.
- Do not expose untrusted public scoreboard URLs.
- Keep polling moderate and safe.
Allowed Changes
partida-actual.html- new frontend JS/CSS for current match page
- backend API endpoint only if needed
- backend read-model code only if needed for current live state
- tests where practical
Implementation Requirements
- Create or upgrade
partida-actual.htmlas a real live-current-match page. - The page must read
?server=from the URL. - Supported server values:
comunidad-hispana-01comunidad-hispana-02
- Unknown server values must show a safe error/empty state and must not build external URLs from the unknown value.
- Add trusted current public scoreboard links:
comunidad-hispana-01->https://scoreboard.comunidadhll.escomunidad-hispana-02->https://scoreboard.comunidadhll.es:5443
- Add a "Ver scoreboard público" button using the trusted base URL for that server.
- The page should display a live-match header with:
- server name
- live/online status
- current map
- game mode if available
started_atif available- current players / max players if available
- last updated/captured timestamp
- The page should display a scoreboard panel:
- allied score if available
- axis score if available
- neutral state if scores are unavailable
- Do not display:
- final duration
- final winner
closed_at- any copy implying that the match has finished
- Add a placeholder section for future live kill feed:
- title: "Feed de combate"
- text explaining that live kill events will appear here when enabled
- no fake kill rows
- Add a player table section if current player stats are already available
from existing APIs. If they are not available, show a clean placeholder:
- "Las estadísticas en vivo aparecerán cuando haya datos suficientes."
- Add frontend polling with safe in-flight protection:
- default interval: 30 seconds
- avoid overlapping requests
- show stale/error states clearly
- If no backend endpoint exists for current match state, add a minimal endpoint that derives the current server state from existing live/RCON snapshot data. Keep it read-only.
- The endpoint response should be stable and minimal:
- server slug/name
- status
- map
game_modestarted_atallied_scoreaxis_score- players
max_playerscaptured_at/updated_atpublic_scoreboard_urlfrom trusted mapping
Files to Read First
AGENTS.mdai/architecture-index.mdai/repo-context.mdai/orchestrator/frontend-senior.md- current historical match detail frontend files
- live server backend/read-model files used by the existing server cards
Expected Files to Modify
partida-actual.html- new current-match frontend JS/CSS files as needed
- minimal live-state backend endpoint/read-model files only if existing APIs cannot supply the page state
- focused tests where practical
Validation
python -m compileall backend/app- Run backend tests relevant to live server/read model if available.
- Run
node --checkon modified/new frontend JS files. - Review
git diff --name-onlyand confirm the changed files match this task.
Manual Verification
- Open
partida-actual.html?server=comunidad-hispana-01. - Open
partida-actual.html?server=comunidad-hispana-02. - Verify the public scoreboard button opens:
https://scoreboard.comunidadhll.eshttps://scoreboard.comunidadhll.es:5443
- Verify
/gamesis not used for the current public scoreboard button. - Verify no final/closed-match fields are shown.
- Verify unknown server query values do not create unsafe links.
Commit Message
feat: add current match page base
Expected Outcome
A safe first version of the internal current-match page exists and can display live server/match state without pretending the match is closed.
Outcome
Document the live-state source, polling behavior, validation performed, and any follow-up task instead of expanding scope.
Change Budget
- Prefer fewer than 5 modified files.
- Prefer changes under 200 lines when feasible.
- Split the work into follow-up tasks if the scope grows.