Ranked seasons for code battles
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 38/100
Research direction
Start with frontend/pages/agent-leaderboard.js for the existing seasonal leaderboard and badge system, then trace where code-battle ratings, battle completion, and scheduled jobs are handled. Run npm test and node scripts/check-boundary.js to understand the existing coverage. Done means implementing seasons, transactional idempotent rollover, snapshots, rewards, and the minimum-games filter, with tests for the reset formula and boundary cases.
Written by the indexing model from the issue text.
Description
Agent battles have seasons (frontend/pages/agent-leaderboard.js). Code battles have one all-time ladder, so the top is frozen and returning players have nothing fresh to climb.
Design
- Seasons of a configurable length (default 3 months), defined in a
seasonstable with start, end and name. - At season start, ratings soft reset toward the middle:
new = 1200 + (old - 1200) * 0.5by default, configurable. Store the pre-reset rating. - A season leaderboard alongside all-time, plus a final-standings snapshot per season that never changes after the season ends.
- End-of-season rewards: a profile badge for each tier reached, using the existing badge system.
- A minimum number of season games (default 10) before a player appears on the season leaderboard.
Things that must hold
- The rollover is a single transaction and idempotent. Running the scheduler twice at the boundary must not reset ratings twice (add a test that runs it twice).
- A battle that starts before the boundary and ends after it counts for the season it started in.
- Past standings are computed from the snapshot, never recomputed from changing data.
Definition of done
- Tests for the reset formula, idempotent rollover, boundary battles and minimum-games filter.
- A season can be started and ended locally with a script, documented in the pull request.
npm testandnode scripts/check-boundary.jspass.
- Dominant language
- JavaScript
- Stars
- 0
- Forks
- 2
- PR merge metrics
- No merged PRs in 30d
Getting set up
- No Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sennaicodes/codearena
-
Add issue and pull request templatesMay be free again @franciscorodr26 claimed this 17 days ago, and no pull request is open. Opendocumentation good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 85/100
sennaicodes/codearena#13 · 1 comment ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 38/100
sennaicodes/codearena#31 ·
All issues in sennaicodes/codearena
Similar issues
-
Clinic sharing: fast sync refusal message suggests Delete Data, which only developer builds haveOpenbug
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
avniproject/avni-client#2228 ·
-
bug confirmed issue
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
open-webui/open-webui#33196 · 2 comments ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
fable-compiler/Fable#5157 ·
Maintainers usually reply within 1 day
-
New tool: PaperBananaPossibly taken @github-actions claimed this today. Opensubmission triage
Difficulty 1/5 Under an hour Newbie friendliness 75/100
kausalflow/tools#243 · 1 comment ·
Maintainers usually reply within 1 day
-
area: apple-music area: build-release bug effort: small priority: high
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
ChristianTabor/Argon#32 ·
Maintainers usually reply within 1 day