diff --git a/CHANGELOG.md b/CHANGELOG.md index a07197ed0..d05a6ab5b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,15 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). - D-095: Horizon stations and transport lore — span gates (human-built, dual-use), horizon stations (alien-built, 4-8 apertures), "The Ring" per-system naming, sequential hop travel, The Loop internal tram - Generator architecture workshop brief (ticket #562) — top-down pipeline for district generation, targeting Q-036 resolution +### Fixed +- Wire triangle crisis event queue into observer snapshot — clients now receive TriangleCrisisEventWire via protocol v16 (was always empty) +- Persist TriangleState in SaveStateV1 — triangle phase and tension survive save/load cycles +- Validate dangling with_role references in TriangleDef constraint validation +- Replace O(n²) fallback NPC assignment with BTreeSet; prevent same NPC assigned to two roles in one triangle +- Replace O(N*M) scan in apply_resolve_triangle with BTreeMap index for O(1) per-command lookup +- Add From impls for RoleId, TriangleId, StableId, TriangleCrisisEventWire — eliminate fragile .0 newtype access +- Consolidate near-identical unit tests with integration counterparts + ### Changed - Sova station profile updated — horizon gates located at The Krenn Ring (800 AU), not on Station Sova; Admin Hub houses transit processing facility only