diff --git a/CHANGELOG.md b/CHANGELOG.md index f9ba6e979..57b05e247 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,8 +12,18 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). - Content directory skeleton (#385, D-057) — district-as-atomic-pack layout with Sova Transit first district, 17 NPC stubs, 3 locations, 5 triangles, dialogue/monologue pools, factions, knowledge catalogs, enum definitions - Content schema definitions (#386) — 8 JSON Schema files (draft 2020-12) for district, location, npc-profile, dialogue-pool, monologue-pool, triangle, routine, fact-catalog validation +### Fixed +- Wire entity_id now uses StableId consistently across observer, observation, interpretation, and interaction systems (was Entity::to_bits() in some paths) +- Restored system/station/district hierarchical fields in district metadata (incorrectly removed during canonical_id cleanup) + ### Changed -- ObserverSnapshot protocol bumped to v4 — adds nearby_interactions field with serde default for backward compatibility +- ObserverSnapshot protocol bumped to v4 — adds nearby_interactions field, tick_rate replaces paused field in GameTime +- NearbyInteractionBuffer.interactions is now private with take() accessor (no per-frame clone) +- NearbyInteraction.distance changed from f32 to u32 (matches manhattan distance) +- Missing PlayerCharacter in input processing now panics instead of silent no-op +- Verb sort uses (priority, kind) tuple for deterministic ordering at equal priority +- Unregistered entity in knowledge events triggers debug_assert + error (was warn) +- District schema: canonical_id is now optional (derived from directory path at load time) - Skills trimmed for CLAUDE.md deduplication — search-docs (-48%), ticket (-17%), review-pr (-35%) now reference CLAUDE.md for basics instead of repeating them - Review-pr reviewer profiles extracted to `references/reviewer-profiles.md` for progressive disclosure