diff --git a/CHANGELOG.md b/CHANGELOG.md index 8bb3cfae6..514fadcc3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,26 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] +### Added +- Camera anchor test suite — 10 gdUnit4 tests verifying camera init, smoothing cycle, and player tracking +- Test architecture workshop brief — 4-track workshop covering integration tests, serialization boundaries, client test infra, and gap analysis for 6 real Sprint 6-7 bugs +- Entity position lerping — framerate-independent exponential smoothing so entities slide between tiles instead of snapping + +### Fixed +- Server never sends snapshots — blocking TCP read in receive_bridge_inputs stalled the entire bevy Update schedule; switched to non-blocking I/O with WouldBlock handling +- Camera doesn't center on player at startup — Camera2D smoothed_camera_pos starts at (0,0); now disable smoothing during init, snap to player, re-enable after first anchored frame +- Player moves while game is paused — movement commands now discarded when TickRate is Paused (pause/unpause still process) +- Spacebar only pauses, doesn't toggle — added UNPAUSE action with toggle logic based on tick_rate state +- MessagePack encodes tick 128 as -128 — off-by-one in signed int boundary checks (<=128 instead of <128) across int8/16/32/64 branches +- Monologue/dialogue lost on snapshot overwrite — one-shot events now carried forward when a newer snapshot replaces an unconsumed one +- Fog shader white screen on load failure — ColorRect defaults to transparent, shader load failure logged instead of crashing +- Fog desync during camera smooth pan — fog rect now tracks camera position instead of player position + +### Changed +- Server game loop throttled to ~20 ticks/sec (50ms frames) — non-blocking TCP loop no longer spins; remaining frame budget available for NPC AI +- Hold-to-move input model — movement polled each frame with stance-based throttle (Sprint=200ms, Walk=400ms, Careful=600ms, Crouch=800ms) and composite diagonals (W+D → northeast) +- D-053 updated with client throttle rates and input model documentation + ### Added - Dialogue box UI skeleton (#434, D-061) — bottom screen, max 20% height, ~65% width, NPC speech + max 3 response options, insert-styled colors, WASD walk-away with 300ms fade, no close button, diegetic on InsertOverlay z-layer 6 - Fog entity visualization (#431, D-059/D-060) — cognitive delay rendering: sonar-style sound pings (3 concentric rings, 1.5s fade), unrecognized grey blobs with 0.8s breathing pulse, D-033 color transition at 50% recognition progress, ±0.5 tile position drift, FogEntities node at z:950