From 7af85f126fe6ea1989a41fbdb05c51d4c6f38131 Mon Sep 17 00:00:00 2001 From: Jeroen Schweitzer Date: Tue, 17 Feb 2026 18:13:07 +0100 Subject: [PATCH] chore(meta): update changelog for PR #26 review fixes Co-Authored-By: Claude Opus 4.6 --- CHANGELOG.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 121b23800..03e89fc08 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,7 +6,23 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] +### Fixed +- Speaker wire ID silent fallback — dialogue now warns and skips when target entity missing from registry (was silently using 0) +- Cross-plugin system ordering — trigger_recognition_monologue now runs after detect_anomalies (latent determinism bug) +- Walk-away ordering — process_walk_away now runs after process_talk_interaction (prevents same-tick race) +- ActiveDialogue overwrite — new Talk while in existing dialogue now emits IncompleteInteraction before replacing +- Server-side Talk range check — handle_talk now enforces CLOSE_RANGE before setting TalkRequest (was client-only) +- ExamineNpc label collision — VerbKind::ExamineNpc now uses "Examine NPC" label (was "Observe", same as generic Observe) +- Dead conditional in main.rs collapsed (both branches were identical) +- WalkAway variant added to all_player_action_variants_roundtrip serialization test + +### Changed +- DialogueCooldownTracker.used changed from Vec to BTreeMap for O(log n) lookup (D-041 compliance) +- MonologueState.shown_ids changed from Vec to HashSet for O(1) contains check (was O(n) per tick) +- Secret trust tier documented as unreachable with TODO for Phase 2 KG-gated unlock + ### Added +- Determinism test: different_seed_produces_different_replay — exercises SimRng via dialogue weighted selection - Dialogue selection pipeline (#305, D-028) — 4-layer filtering engine: access tier from KG relationship, situation derivation from game state, trust tier, weighted topic+mood scoring via SimRng. Full Talk verb → selected line → ObserverSnapshot pipeline with cooldown tracking - ContentSlug component (#452) — stable content identity from YAML (e.g. "kael-davan") independent of runtime Entity handles, for knowledge graph interaction memory across save/load - Walk-away KG recording (#427, D-064) — IncompleteInteraction knowledge events with Talk/Confront type, ActiveDialogue tracking, walk-away detection clears dialogue and records in KG