6.1 KiB
id, title, status, type, team, supporting_teams, roadmap_item, priority
| id | title | status | type | team | supporting_teams | roadmap_item | priority | |
|---|---|---|---|---|---|---|---|---|
| TASK-144 | Home region cleanup and RCON freshness diagnostics | done | integration | Backend Senior |
|
foundation | high |
TASK-144 - Home region cleanup and RCON freshness diagnostics
Goal
Hide placeholder region values on the home page server cards and improve RCON historical freshness diagnostics so stale recent matches are explainable from worker/runner logs.
Context
The home page currently renders Region pendiente when a server region is missing. Recent RCON materialized matches can also appear stale without clear logs showing whether AdminLog events were seen, inserted, duplicated or materialized.
Steps
- Inspect home server-card rendering and RCON runner/worker/ingestion/materialization paths.
- Hide placeholder/missing region quick facts while preserving map data.
- Determine whether historical-runner refreshes RCON AdminLog materialization or whether rcon-historical-worker owns it.
- Add minimal logging/summary output for AdminLog ingestion/materialization and latest materialized match freshness.
- Validate frontend syntax, backend compile, pipeline scripts, Compose services, logs, manual commands and rendered pages.
Files to Read First
ai/architecture-index.mdai/repo-context.mdai/orchestrator/backend-senior.mdai/orchestrator/frontend-senior.mdfrontend/assets/js/main.jsbackend/app/rcon_historical_worker.pybackend/app/rcon_admin_log_ingestion.pybackend/app/rcon_admin_log_materialization.pybackend/app/historical_runner.pydocker-compose.yml
Expected Files to Modify
frontend/assets/js/main.jsbackend/app/rcon_historical_worker.pybackend/app/rcon_admin_log_ingestion.pybackend/app/rcon_admin_log_materialization.pyai/tasks/done/TASK-144-home-region-and-rcon-freshness.md
Constraints
- Do not expose secrets.
- Do not reintroduce Comunidad Hispana #03.
- Do not change recent-card visual design.
- Do not commit runtime DB files.
- Preserve manual RCON commands.
Validation
python -m compileall backend/appnode --check frontend/assets/js/main.jsnode --check frontend/assets/js/historico.jsnode --check frontend/assets/js/historico-recent-live.jsnode --check frontend/assets/js/historico-partida.jspowershell -ExecutionPolicy Bypass -File scripts/run-rcon-data-pipeline-tests.ps1powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1docker compose --profile advanced up -d --build backend frontend historical-runner rcon-historical-workerdocker compose --profile advanced psdocker compose logs --tail=150 historical-runnerdocker compose logs --tail=150 rcon-historical-workerdocker compose exec backend python -m app.rcon_admin_log_ingestion --minutes 360docker compose exec backend python -m app.rcon_admin_log_materializationInvoke-WebRequest "http://localhost:8000/health" | Select-Object -ExpandProperty ContentInvoke-WebRequest "http://localhost:8000/api/historical/recent-matches?server=all-servers&limit=20" | Select-Object -ExpandProperty Content- Browser verification on
index.html?nocache=region - Browser verification on
historico.html?nocache=freshness
Outcome
Implemented. Home server cards now omit the Region quick fact when the region is missing or a placeholder such as Region pendiente, while preserving the Mapa quick fact. RCON capture now runs AdminLog materialization after AdminLog ingestion and emits freshness diagnostics in the worker result, including event counters, materialized match counters and latest materialized/AdminLog match-end timestamps per configured server.
Findings:
historical-runneralready calls the RCON capture path when historical data source is RCON, but the capture path previously ingested AdminLog entries without materializing them into recent matches.rcon-historical-workerowns the 10-minute capture loop and now materializes after ingestion, so recent matches can advance without requiring a manual materialization command.- The live diagnostics show new recent data after the previously stale
17:38item. Recent matches now includecomunidad-hispana-01:1779299747:1779305147:carentanwarfareclosed at2026-05-20T19:26:46.519Zandcomunidad-hispana-02:1779296626:1779301626:carentanwarfareclosed at2026-05-20T18:41:59.219Z.
Validation passed:
python -m compileall backend/appnode --check frontend/assets/js/main.jsnode --check frontend/assets/js/historico.jsnode --check frontend/assets/js/historico-recent-live.jsnode --check frontend/assets/js/historico-partida.jspowershell -ExecutionPolicy Bypass -File scripts/run-rcon-data-pipeline-tests.ps1powershell -ExecutionPolicy Bypass -File scripts/run-integration-tests.ps1docker compose --profile advanced up -d --build backend frontend historical-runner rcon-historical-workerdocker compose --profile advanced psdocker compose logs --tail=150 historical-runnerdocker compose logs --tail=150 rcon-historical-workerdocker compose exec backend python -m app.rcon_admin_log_ingestion --minutes 360docker compose exec backend python -m app.rcon_admin_log_materializationInvoke-WebRequest "http://localhost:8000/health" | Select-Object -ExpandProperty ContentInvoke-WebRequest "http://localhost:8000/api/historical/recent-matches?server=all-servers&limit=20" | Select-Object -ExpandProperty Content- Browser verification on
http://localhost:8080/index.html?nocache=region - Browser verification on
http://localhost:8080/historico.html?nocache=freshness
Notes:
- The RCON pipeline script reports existing SQLite
ResourceWarningmessages from its test harness, but the unittest suites returnOKand the script reports validation passed. - The integration script exits successfully, but the local runtime DB emits an existing
database disk image is malformedtraceback after the pass message. Runtime DB files were not modified for commit. - Browser plugin runtime tools were not exposed by tool discovery in this session, so rendered validation used local Chrome/Selenium fallback.