Skip to content

[codex] Support current XCPC ELO upstream schema - #154

Merged
greenthree merged 3 commits into
mainfrom
codex/fix-xcpc-upstream-schema
Aug 25, 2026
Merged

[codex] Support current XCPC ELO upstream schema#154
greenthree merged 3 commits into
mainfrom
codex/fix-xcpc-upstream-schema

Conversation

@greenthree

Copy link
Copy Markdown
Owner

What changed

  • Normalize the current XCPC ELO name/history payload into the internal player contract while retaining compatibility with the legacy teamMember/rating/contests shape.
  • Derive current rating, peak rating, and contest count from the current history tuples.
  • Add adapter and shared-cache regression coverage.
  • Record the production recovery evidence in ROADMAP.md.

Root cause

The upstream XCPC ELO data.js schema changed from teamMember/rating/contests to name/history. The old parser classified the shared cache refresh as schema_changed, so downstream member synchronization safely retained stale values.

Validation

  • Edge Function tests: 479 passed, 0 failed, 1 ignored.
  • Targeted Deno checks: 40/40 passed.
  • Vitest: 101 files, 648 tests passed.
  • Formatting, lint, build, sync workflow checks, and git diff --check passed.
  • Production sync-stats v40 and sync-member v59 are active.
  • One controlled xcpc_elo run succeeded: 3 pages, 7/7 results succeeded.
  • Cache recovered to v4 with 53 players and no error/cooldown; all 7 XCPC stats are fresh.
  • QOJ had zero jobs, runs, and stats writes in the validation window.

No QOJ rerun, other function deployment, Secret/Vault change, database migration, or Pages deployment was performed for this recovery.

@greenthree
greenthree marked this pull request as ready for review August 25, 2026 09:58
@greenthree
greenthree merged commit e623aca into main Aug 25, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant