mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-11 08:23:45 +00:00
chore(training): promote stage-4 retry2 to medium and open stage 5
20260816-2126-gen5-s4-handling-retry2 exhausted its three attempts and missed only the 0.80 training goal-rate floor, at 0.7731. Every evaluation gate passed: 65-22-13 versus promoted/easy.json, 87% non-draw against an 80% floor, 12.6% physical-side imbalance against a 20% ceiling, and both handling telemetry floors clear. The round improved the goal rate monotonically across attempts (0.537 -> 0.683 -> 0.773) and the checkpoint plays well by hand, so close Stage 4 by human override. Promote it to Game/bots/promoted/medium.json. Medium and Hard both point at the new policy: Hard stays a label-only duplicate until a stronger one earns hard.json, which keeps the tiers monotonic rather than leaving Hard weaker than Medium. generation5_state.json flips that log entry to "pass" with a decision_override block preserving the original verdict and reasoning, and advances to Stage 5 attempt 1. This is what passing_entry() needs to resolve Stage 5's resume checkpoint and evaluation reference, and what league_pool() will need at Stage 6; --skip-to-next-stage would advance the stage without marking anything as passing and die immediately. generation5.sh now pulls before launching. Each stage ends in commit_progress()'s push, which fails and kills the run hours in if the box is behind origin.
This commit is contained in:
@@ -11,14 +11,18 @@ extends Control
|
||||
|
||||
const BOTS_DIR := "res://bots"
|
||||
|
||||
# All three tiers deliberately point at the same promoted checkpoint at its
|
||||
# full trained capability. The labels are placeholders until genuinely
|
||||
# stronger models are promoted as medium.json/hard.json; difficulty is not
|
||||
# simulated with reaction delay or action noise in the meantime.
|
||||
# Every tier runs its promoted checkpoint at full trained capability —
|
||||
# difficulty is a genuinely different policy, never the same policy
|
||||
# handicapped with reaction delay or action noise. Easy and Medium are now
|
||||
# distinct models (medium.json beats easy.json 65-22-13 head-to-head); Hard
|
||||
# still points at medium.json, the strongest promoted policy, and stays a
|
||||
# label-only duplicate until a stronger one earns hard.json. Keep the tiers
|
||||
# monotonic: never leave a lower tier pointing at a stronger model than the
|
||||
# one above it.
|
||||
const DIFFICULTIES := [
|
||||
{"name": "Easy", "model": "res://bots/promoted/easy.json", "reaction_ticks": 8, "action_noise": 0.0},
|
||||
{"name": "Medium", "model": "res://bots/promoted/easy.json", "reaction_ticks": 8, "action_noise": 0.0},
|
||||
{"name": "Hard", "model": "res://bots/promoted/easy.json", "reaction_ticks": 8, "action_noise": 0.0},
|
||||
{"name": "Medium", "model": "res://bots/promoted/medium.json", "reaction_ticks": 8, "action_noise": 0.0},
|
||||
{"name": "Hard", "model": "res://bots/promoted/medium.json", "reaction_ticks": 8, "action_noise": 0.0},
|
||||
]
|
||||
|
||||
@onready var difficulty_dropdown: OptionButton = %DifficultyDropdown
|
||||
|
||||
Reference in New Issue
Block a user