Resolution
Audited the full wiring. Previous tickets (#25–#27) had already done the heavy lifting:
- #25:
gotoTick/aimToTickincontrollers.nim— done - #26: State vector…
Map complete
All 5 decision tickets resolved. The command abstraction layer design is fully decided — implementation tracked under PRD #24.
Decisions:
- #19 — Output space: 6-dim (goto x/y,…
Map complete
All tickets resolved. The destination is reached: tools/training_runner/ is a dumb CLI tool that runs PPO_Bot against a chosen opponent for unlimited rounds with crash recovery,…
Resolution
Decision: expose all non-structural hyperparameters.
Full tunable set (11 params, all via PPOB_* env vars with sensible defaults):
Easy (already wired):
PPOB_LR…
Built: tools/training_runner/
What was built
tools/training_runner/RunTraining.java — Java battle runner that accepts [opponent] [rounds] CLI args (also via env vars `TRAINING_O…
Resolution
Decision: flat env vars with stdlib defaults.
- Delivery mechanism: environment variables, one per hyperparameter
- Prefix + naming:
PPOB_+ SCREAMING_SNAKE (PPOB_LR,…
Resolved in commit 0b17430 on branch research/goto-controller.
What was done:
- Exported
AdamStatetype and itsm,v,tfields, plus allACAdamStatesfields, fromtraining.nim…
Resolution
Format: JSON lines, appended to training_log.jsonl, one object per round.
Fields per round:
round— cumulative across restartsticks— round lengthreward…
Merged into #32 — stall detection is an external concern; the runner just needs rich enough output.