fix(simulation): address PR #75 review — vision components, triangle validation, FNV-1a, KG gating

1. CRITICAL: spawn_template_npcs now inserts NpcVisionState, NpcMemory,
   PlayerAwareness on template-spawned NPCs — matches spawn_npc() pattern
   from PR #66. Without these, template NPCs were invisible to vision and
   awareness systems.

2. WARNING: generate_intra_template_triangles now calls validate_triangle_def
   before generating TriangleState — mirrors cross-template path. Updates
   test TriangleDefs and logistics-hub.yaml to pass all three quality checks
   (conflict viability, relationship coherence, interest divergence).

3. WARNING: state_hash in compute_observer_snapshot now uses FNV-1a instead
   of DefaultHasher — consistent with D-010 principle 4 and the pattern in
   TemplateId/TriangleId. Updates golden file for new hash value.

4. WARNING: TriangleCrisisEventWire.role_assignments now filtered against
   observer KnowledgeGraph — unknown NPCs redacted from wire event per
   D-010 principle 2 (information boundaries).

5. WARNING: ActiveTemplateInstances::insert now despawns previous instance
   entities before overwriting — prevents orphaned ECS entities.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-02-27 19:02:43 +01:00
co-authored by Claude Opus 4.6
parent 88fc6c30dc
commit dd00a9cd9e
6 changed files with 108 additions and 24 deletions
+7 -1
View File
@@ -171,9 +171,15 @@ triangles:
- "ring-contact"
conflict_type: AuthorityChallenge
interest_axes:
- Relationships
- Want
- Tolerance
- Secret
relationship_constraints:
- with_role: "security-guard"
kind: Superior
required_trust:
min: 0
max: 5
dialogue_pools:
- location: "the-terminal"