diff --git a/CHANGELOG.md b/CHANGELOG.md index 00f5fcca7..9bbd157ab 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,10 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). ### Added - LocalBridge IPC over Unix domain sockets (#78) — length-prefixed MessagePack framing, SimBridge implementation, BridgeResource ECS wrapper -- Tile collision system (#236) — TilePosition component, WalkabilityMap resource with O(1) lookup, MoveIntent + validate_movement system -- 18 new tests (4 framing + 2 IPC integration + 11 movement unit + 1 movement integration), total 38 +- Tile collision system (#236) — TilePosition component, chunk-based WalkabilityMap (D-012), MoveIntent + validate_movement system +- TilePosition ↔ f32 render coordinate conversion (to_render_coords, from_render_coords) bridging simulation and wire format +- Chunk load/unload support in WalkabilityMap — HashMap with 32x32 tile chunks +- 21 new tests (4 framing + 2 IPC integration + 14 movement unit + 1 movement integration), total 41 - `db/connectors/ticket` CLI — ergonomic ticket management (list, show, create, assign, sprint, deps, search, epics, children, count) with JSON output - Sprint 1 "Run" created with 8 stories targeting moving character on screen via IPC bridge - Ticket skill rewritten to use ticket CLI instead of raw SQL wrapper scripts @@ -78,6 +80,9 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). - Rejected alternatives R-004 through R-010 documented (pure Bevy, pure Godot, GDExtension, C++ GDExtension, Fyrox, custom framework, protobuf) ### Fixed +- WalkabilityMap rewritten from flat Vec to chunk-based HashMap per D-012 architecture (Tyre review) +- LocalBridge mutex .unwrap() → .expect() for clearer panic messages (Hoshe review) +- Documented 16MB MAX_MESSAGE_SIZE rationale in framing.rs (Hoshe review) - Client input_mapper double-check bug (redundant event.pressed + is_action_pressed) - Bounds validation on snapshot position arrays in game_state.gd and entity_renderer.gd - Deterministic test snapshots (replaced Time.get_ticks_msec() with incrementing counter)