Files
comunidadhll/ai/tasks/done/TASK-245-fix-public-snapshot-runner-initialize-storage-argument.md

2.7 KiB

id, title, status, type, team, supporting_teams, roadmap_item, priority
id title status type team supporting_teams roadmap_item priority
TASK-245 Fix public snapshot runner initialize storage argument done backend Backend Senior
Arquitecto Python
foundation high

TASK-245 - Fix public snapshot runner initialize storage argument

Goal

Fix the deployed manual public jobs that failed with initialize_rcon_materialized_storage() got an unexpected keyword argument 'ensure_storage'.

Context

TASK-243 added ensure_storage gating in the ranking and historical snapshot paths, but one wrapper incorrectly propagated that keyword into initialize_rcon_materialized_storage(), whose signature only accepts db_path.

The failure was visible when running:

  • python -m app.historical_runner --public-job ranking-weekly
  • python -m app.historical_runner --public-job ranking-monthly
  • python -m app.historical_runner --public-job historical-weekly
  • python -m app.historical_runner --public-job historical-monthly

Steps

  1. Audited every ensure_storage= path around public snapshot generation.
  2. Confirmed that initialize_rcon_materialized_storage() does not accept that keyword.
  3. Moved the gating logic to a local path resolver in rcon_historical_leaderboards.
  4. Kept connect_postgres_compat(initialize=False) for follow-up read/write connections after the one-time initialization point.
  5. Added regression tests for both enabled and disabled initialization flows.

Files to Read First

  • AGENTS.md
  • ai/architecture-index.md
  • ai/repo-context.md
  • backend/app/historical_runner.py
  • backend/app/rcon_historical_leaderboards.py
  • backend/app/rcon_admin_log_materialization.py

Expected Files to Modify

  • backend/app/rcon_historical_leaderboards.py
  • backend/tests/test_historical_snapshot_refresh.py
  • docs/public-snapshot-refresh-schedule.md

Constraints

  • Keep public GET endpoints snapshot-only.
  • Do not touch frontend, assets or server configuration.
  • Preserve the TASK-243 fixes for JSON serialization, duplicate ranking items and monthly MVP V2 fallback.

Validation

  • python -m compileall backend/app
  • cd backend; python -m unittest tests.test_historical_snapshot_refresh
  • cd backend; python -m unittest tests.test_current_match_payload tests.test_rcon_admin_log_storage tests.test_historical_snapshot_refresh

Outcome

  • Manual public jobs no longer pass an invalid keyword to initialize_rcon_materialized_storage().
  • ensure_storage=True still initializes materialized storage once through the wrapper layer.
  • ensure_storage=False now skips the base initializer cleanly and relies on the existing non-DDL connection path.
  • Regression coverage now asserts both enabled and disabled initialization flows.