3.8 KiB
id, title, status, type, team, supporting_teams, roadmap_item, priority
| id | title | status | type | team | supporting_teams | roadmap_item | priority |
|---|---|---|---|---|---|---|---|
| TASK-257 | Fix current match null history link crash | done | frontend | Frontend Senior | foundation | high |
TASK-257 - Fix current match null history link crash
Goal
Correct the JavaScript crash in the current match page when the optional historical link node is absent from the HTML.
Context
Production showed this error on /partida-actual.html?server=comunidad-hispana-01:
Uncaught TypeError: can't access property "href", nodes.history is null
The crash happened before the page initialized the main current-match, kill-feed and player-stat requests, leaving the UI stuck in loading states.
Steps
- Inspect current-match HTML and JavaScript.
- Confirm where
nodes.historyis defined and whether the matching HTML node exists. - Review similar
nodes.*accesses for optional link or dynamically inserted nodes. - Make optional link initialization null-safe without global try/catch.
- Validate syntax, static access patterns and current-match public endpoints.
Files to Read First
ai/architecture-index.mdai/repo-context.mdai/orchestrator/frontend-senior.mdfrontend/partida-actual.htmlfrontend/assets/js/partida-actual.js
Expected Files to Modify
frontend/assets/js/partida-actual.jsai/tasks/done/TASK-257-fix-current-match-null-history-link-crash.md
Constraints
- Do not touch backend, scheduler, RCON, server config or port
27001. - Do not touch TeamKills behavior.
- Do not reactivate Elo/MMR.
- Do not reintroduce Comunidad Hispana #03.
- Do not touch physical assets, maps, weapons, clans or brands.
- Do not touch
ai/system-metrics.md. - Do not include
tmp/,TASK-204or unrelated previous changes. - Do not commit or push.
Validation
node --check frontend/assets/js/partida-actual.jspassed.- Static search confirmed there are no direct
nodes.history.href,nodes.scoreboard.hrefornodes.scoreboard.hiddenpatterns left outside null-safe helpers. - DOM simulation with
current-match-historyabsent completed without TypeError and reached controlled current-match, kill-feed and player-stat states. - Chrome headless validation of
/partida-actual.html?server=comunidad-hispana-01from a local static frontend server reporteduncaughtExceptionCount: 0andtypeErrorCount: 0. With no local backend running, the page reached controlled empty/error states instead of blocking in loading text. - Public audit command executed:
python .\scripts\audit_public_requests.py --base-url https://comunidadhll.devzamode.es --timeout 30 --output tmp\task257_full_audit_after.json - Audit summary:
CRITICAL: 0. - Required current-match endpoints returned
OK 200:current-match-comunidad-hispana-01,current-match-comunidad-hispana-02,current-match-kills-comunidad-hispana-01,current-match-kills-comunidad-hispana-02,current-match-players-comunidad-hispana-01,current-match-players-comunidad-hispana-02.
Outcome
nodes.history pointed to #current-match-history, but frontend/partida-actual.html no longer contains that element. The node was removed from the current page markup in d6f1739 Adjust countdown and page navigation; only the top navigation historical link remains.
The fix makes optional link handling null-safe through dedicated helpers. If the history or scoreboard nodes exist, their attributes are updated. If they do not exist, initialization continues and the main data loaders still run.
Dynamic feed and player-stat containers are also guarded before rendering so missing optional/dynamic nodes do not cascade into TypeError failures.
No backend, endpoint, scheduler, RCON, server configuration, assets, maps, weapons, clans, brands, TeamKills, Elo/MMR, Comunidad Hispana #03 or ai/system-metrics.md changes were made by this task.