mirror of
https://github.com/jcreek/CosmicClash.git
synced 2026-09-10 16:04:04 +00:00
0b6679e84b
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.
37 lines
1.5 KiB
Bash
Executable File
37 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Run/resume the post-Stage-3 generation-5 curriculum in a detached tmux
|
|
# session. Safe to disconnect; rerunning attaches to the live session.
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")"
|
|
|
|
SESSION="cosmic-generation5"
|
|
TB_PORT=6006
|
|
|
|
command -v tmux >/dev/null 2>&1 || { echo "tmux is required: sudo apt install tmux" >&2; exit 1; }
|
|
|
|
if tmux has-session -t "$SESSION" 2>/dev/null; then
|
|
echo "Session '$SESSION' already running — attaching (detach with Ctrl-B then D)."
|
|
exec tmux attach -t "$SESSION"
|
|
fi
|
|
|
|
# Stage start and resume point both come from committed state, and each stage
|
|
# ends in commit_progress()'s `git push` — which fails, killing the run after
|
|
# hours of training, if the box is behind origin. Pull before starting, same as
|
|
# next_run.sh. Aborts here (set -e) on a dirty tree or a conflict, which is the
|
|
# point: fix it before spending the compute, not after.
|
|
git pull --rebase
|
|
|
|
tmux new-session -d -s "$SESSION" -n curriculum \
|
|
".venv/bin/python generation5.py $*; echo; echo '=== generation5.py exited — press Enter to close ==='; read"
|
|
|
|
if ! (exec 3<>"/dev/tcp/127.0.0.1/$TB_PORT") 2>/dev/null; then
|
|
tmux new-window -d -t "$SESSION" -n dashboard \
|
|
".venv/bin/tensorboard --logdir logs --host 0.0.0.0 --port $TB_PORT"
|
|
fi
|
|
|
|
IP=$(hostname -I 2>/dev/null | awk '{print $1}')
|
|
echo "Generation 5 started in tmux session '$SESSION'."
|
|
echo " watch it: tmux attach -t $SESSION"
|
|
echo " dashboard: http://${IP:-<this-box>}:$TB_PORT"
|
|
echo " progress: cat generation5_state.json"
|