Implement trusted scoreboard origins, persisted scoreboard links, RCON-to-scoreboard correlation, match link UX priority, enriched internal match details, and historical UI regression validation.
6.1 KiB
6.1 KiB
id, title, status, type, team, supporting_teams, roadmap_item, priority
| id | title | status | type | team | supporting_teams | roadmap_item | priority | ||
|---|---|---|---|---|---|---|---|---|---|
| TASK-117 | Prioritize match link UX | done | frontend | Frontend Senior |
|
historical-ui | high |
TASK-117 - Prioritize match link UX
Goal
Adjust the historical UI link priority so safe external scoreboard links are primary when available, and internal details remain the fallback.
Context
Recent cards currently show internal Ver detalles links when no safe external match URL exists. After persisted and correlated match_url support is improved, the UI must prefer safe external scoreboard links without making unsafe assumptions.
Use branch:
plan/scoreboard-match-linking-tasks
Steps
- Work from this task only after moving it to
ai/tasks/in-progress/. - Inspect the listed files before changing anything.
- On recent match cards:
- If safe external
match_urlexists, show primaryVer partida. - If no
match_urlexists, show internalVer detalles.
- If safe external
- On the internal match detail page:
- If
match_urlexists, showAbrir en scoreboard. - If no
match_urlexists, keep internal details only.
- If
- Ensure external links use
target="_blank"andrel="noopener noreferrer". - Do not show both buttons as competing primary actions unless the existing design clearly requires it.
- Preserve the current sober military/Vietnam tactical visual style.
- Validate the result.
- Move this task to
ai/tasks/done/only after validation is complete and document the outcome in this file. - Commit and push the completed implementation branch.
Files to Read First
ai/architecture-index.mdai/repo-context.mdai/orchestrator/frontend-senior.mdai/orchestrator/ui-expert.mdfrontend/historico.htmlfrontend/assets/js/historico.jsfrontend/assets/css/historico.cssfrontend/historico-partida.htmlfrontend/assets/js/historico-partida.jsbackend/app/routes.pyscripts/run-integration-tests.ps1
Expected Files to Modify
frontend/assets/js/historico.js- possibly
frontend/assets/css/historico.css - possibly
frontend/historico-partida.html - possibly
frontend/assets/js/historico-partida.js - this task file, moved to
ai/tasks/done/
If additional files become necessary, explain why in the task outcome and commit message.
Expected Files Not to Modify
- backend historical ingestion modules
- database migrations
- persisted data
- local
.env - Docker/Compose config
- Elo/MMR implementation files
- unrelated frontend pages
Constraints
- Do not reintroduce Comunidad Hispana #03.
- Do not reintroduce paused MVP/Elo UI.
- Do not change historical ingestion policy.
- Do not add real credentials.
- Do not modify local
.env. - Do not delete persisted data, migrations, backend endpoints or historical ingestion code.
- Do not use the public word "snapshot" in user-facing UI.
- Do not fabricate or transform external URLs in the frontend; trust only backend-provided
match_url.
Validation
Before completing the task, run and document:
git statusnode --check frontend/assets/js/historico.jsnode --check frontend/assets/js/historico-partida.jsif presentpowershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1- served or static HTML check confirming recent cards show
Ver partidawhenmatch_urlexists - served or static HTML check confirming recent cards show
Ver detalleswhenmatch_urlis absent - served or static HTML check confirming detail page shows
Abrir en scoreboardwhenmatch_urlexists - served or static HTML check confirming no Comunidad Hispana #03 appears
- served or static HTML check confirming paused MVP/Elo UI remains absent
- check confirming external links include
target="_blank"andrel="noopener noreferrer" git diff --name-onlyand confirmation that changed files match the expected scope
If a configured validation command cannot be run, document the exact reason in the outcome.
Commit And Push Requirements
- Run validation before committing.
- Run
git status. - Stage only intended files.
- Commit with message:
chore: prioritize match link ux - Push the branch to origin.
- Do not leave completed work only in local.
Outcome
Completed.
Implementation decisions:
- Recent match cards now trust only backend-provided
match_urlfor the external primary action. - Existing priority remains:
Ver partidawhenmatch_urlexists, otherwise internalVer detalles. - Existing detail-page behavior already matched the task: it shows
Abrir en scoreboardonly whenmatch_urlexists and usestarget="_blank"plusrel="noopener noreferrer". - No CSS or markup change was needed.
Validation performed:
git status --short --branchconfirmed branchplan/scoreboard-match-linking-tasks.node --check frontend/assets/js/historico.jspassed.node --check frontend/assets/js/historico-partida.jspassed.- Static Node render check confirmed recent cards show
Ver partidawhenmatch_urlexists. - Static Node render check confirmed recent cards show
Ver detalleswhenmatch_urlis absent. - Static Node render check confirmed recent external links include
target="_blank"andrel="noopener noreferrer". - Static Node render check confirmed the detail-page action shows
Abrir en scoreboardwhenmatch_urlexists and hides when absent. - Static Node render check confirmed no
Comunidad Hispana #03appears in the checked match-card states. - Static Node render check confirmed paused MVP/Elo UI does not surface in the checked match-card states.
powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1passed.git diff --name-onlyandgit status --shortwere reviewed. Changed files match the expected scope:frontend/assets/js/historico.jsand this task file.
Note:
- The Browser plugin was not available as a callable browser automation tool in this session, so validation used the task-allowed static HTML/JS render checks instead of an in-browser screenshot pass.
Change Budget
- Prefer fewer than 5 modified files.
- Prefer changes under 200 lines when feasible.
- Split follow-up work into a new task if the scope grows.