Dependency addition
Blocks: #130 (runBattle orchestrator), #134 (BattleRunner process lifecycle). Server must be running before either can operate.
Dependency correction
Blocked by: #133 (not "nothing" as originally stated). The parser cannot be implemented until #133 defines the structured stdout output format from BattleRunner.java.
Dependency update
Implementation is tracked in child tickets #127–#134 (not #127–#132 as originally stated). #133 and #134 were added during spec grilling to cover Java-side modifications and…
Spec addition from grilling
- BattleRunner process completion timeout: 30s after battle should have ended.
- Use
deferfor process cleanup. - Detect hung process via stdout inactivity…
Spec addition from grilling
The structured stdout format is the contract between Java and Nim. Recommend JSON-lines, one JSON object per event:
{"event":"ready"}— server connected -…
Spec additions from grilling
- Document that this is a local development tool (no CI support planned).
- Document
nim ccompilation requirement (not nimble build). - Include troubleshooti…
Spec additions from grilling
runBattle()must usedeferblocks to clean up bot processes and BattleRunner process on any exception.- Overall timeout: 120s hard ceiling per…
Spec additions from grilling
- Use
nim cdirectly, NOTnimble build(nimble swallows compiler output, making errors hard to diagnose). - Compilation timeout: 30s per bot.
- Must handle…
Spec additions from grilling
- Server startup timeout: 15s default. If server doesn't print ready signal within this, raise error.
- Use
addExitProcto kill server process on program…
Grilling resolutions (from spec review)
Resolved
- Port wiring: BattleRunner handles bot-to-server connection internally. Nim framework only needs to pass server URL to the modified…
Implemented in commit a730a9e
Summary: Added GMM-based GA warm-starting from battle history. initPopulationSeeded now seeds PopSize/4 individuals from historical enemy movement patterns…