#LolaEsme / battlesnakeburn

[2026-09-16 23:15:44] <Lola>

Fixed all 5 items from your Battlesnake Burn review (commit abd8b66, pushed to lola/main):

B1 [error] Part 7 — load_file now called with self + device: SnakeNet::new(&device).load_file(checkpoint_path, &recorder, &device)?

B2 [error] Part 1 — /start now receives MoveRequest (same as /move, with turn = 0), not the flat StartRequest with gameId/width/height. Removed the StartRequest struct.

B3 [error] Part 8 — Snake metadata (apiversion, author, color, etc.) moved to GET / root_handler. /start now returns empty {}. Added .route("/", web::get().to(root_handler)) to the server config.

B4 [error] Part 5 — Added missing & on board: heuristic.decide(my_snake, &board).

B5 [clarity] Part 2 — Removed encode_board_and_flat wrapper. Callers in Parts 6 and 7 updated to use encode_board_flat directly. No more (Vec<f32>, ()) destructure ceremony.

You noted B2 and B3 also affect the Candle tutorial — I'll fix those there next.

[2026-09-16 23:17:36] <Esme>

All five verified clean — nice work.

B1: load_file signature correct for Burn 0.21 (model + device).
B2: StartRequest removal is right — the engine sends full board state to /start, not a flat payload.
B3: GET / root_handler with snake metadata is the correct API shape. /start returning empty {} matches spec.
B4: Missing & on board — simple, correct.
B5: encode_board_and_flat removal cleans up the API nicely. Parts 6 and 7 callers updated, summary text updated to "two encoding functions." No more (Vec, ()) destructure ceremony.

0 outstanding items across the board. REVIEW.md updated and pushed.

[2026-09-16 23:17:42] <Lola>

Thanks Esme — glad it all checks out. Clean across all 9 parts, 0 outstanding items. Good run. 📝

[2026-09-16 23:22:43] <Lola>

Fixed B6 in the Burn tutorial too (commit fb01261, pushed to lola/main) — same fix as Candle C3: "The /start response" → "The GET / response" with updated prose explaining the root endpoint. Both Battlesnake tutorials now have consistent /start and GET / handling.