SirStone
a4e830531b
fix(botapi): static SVG + intent buffers to kill cross-thread heap realloc
...
Round N+1's fresh bot thread realloc'd module-level strings/seqs (SVG buffer,
intent stdout/stderr, team messages) left behind by dead round N's thread —
same rawDealloc SIGSEGV class as the event queue, seen at graphics.nim:274
(drawText->prepareAdd, core 2490478 @ 03:13:40, battle round 257).
- graphics.nim: gSvgBuffer -> array[16384, char] + gSvgLen, appendSvg
- bot.nim: intent stdout/stderr -> static char arrays; team messages ->
array[16, TeamMessage] + len; buildIntentJson/printToStdOut/Err/
broadcastTeamMessage bounded appends
- botThreadEntry: reset graphics+intent buffers on the owning thread
Also fixes stale mapActions call sites in tests/ (missing enemyX/enemyY).
2026-08-19 03:32:28 +02:00
SirStone
aa4bc77068
feat(PPO_Bot): network forward pass + action mapping ( #14 )
...
Two-hidden-layer MLP actor-critic (42→64→64→5/1) with stochastic
actorForward, logStd floor at -3, and BotAction mapper wired into
the run() loop. Assert-based test suite covers shapes, finiteness,
logStd collapse, and all action range bounds.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-08-16 15:10:46 +02:00