fix(simulation): Clippy cleanup and CI enforcement (#635)

Fix all Clippy warnings across the server codebase (2411 insertions, 1341
deletions). Raise type-complexity-threshold to 750 and too-many-arguments
to 12 in .clippy.toml for idiomatic Bevy ECS system signatures. The server
now passes `cargo clippy -- --deny warnings` cleanly.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-03-17 10:33:15 +01:00
co-authored by Claude Opus 4.6
parent 7f7706442a
commit aa79dd97e7
84 changed files with 2409 additions and 1339 deletions
+17 -15
View File
@@ -23,21 +23,21 @@
use bevy_ecs::prelude::*;
use bevy_ecs::schedule::Schedule;
use settled_reach_server::bridge::types::FacingDirection;
use settled_reach_server::knowledge::events::{
process_knowledge_events, KnowledgeEvent, KnowledgeEventQueue, KnowledgeEventType,
};
use settled_reach_server::knowledge::{
ContradictionDetectedQueue, EntityRegistry, KnowledgeGraph,
};
use settled_reach_server::knowledge::types::StableId;
use settled_reach_server::npc::{Npc, SecretSeverity};
use settled_reach_server::knowledge::{ContradictionDetectedQueue, EntityRegistry, KnowledgeGraph};
use settled_reach_server::npc::relationships::RelationshipGraph;
use settled_reach_server::npc::{Npc, SecretSeverity};
use settled_reach_server::perception::query::{NaturalVision, PerceptionQuery};
use settled_reach_server::simulation::movement::{TilePosition, WalkabilityMap};
use settled_reach_server::simulation::save_state::{NpcSaveState, SaveStateV1, SAVE_FORMAT_VERSION};
use settled_reach_server::simulation::save_state::{
NpcSaveState, SaveStateV1, SAVE_FORMAT_VERSION,
};
use settled_reach_server::simulation::tier::{ActiveSim, BackgroundSim};
use settled_reach_server::simulation::time::TickRate;
use settled_reach_server::bridge::types::FacingDirection;
// ===========================================================================
// Layer 1 — Pure unit: no ECS world, no subprocess
@@ -70,9 +70,7 @@ fn player_kg_has_no_passive_npc_leakage() {
// Negative assertion: spawning a bare ECS entity doesn't populate a KG.
// The knowledge graph is a component, not a global shared resource.
let mut world = World::new();
let player = world
.spawn(KnowledgeGraph::new())
.id();
let player = world.spawn(KnowledgeGraph::new()).id();
// Spawn an NPC in the same world — no observation system runs.
let _npc = world.spawn((Npc, TilePosition::new(50, 50, 0))).id();
@@ -110,7 +108,9 @@ fn snapshot_excludes_entities_outside_los() {
// --- Far entity: 45 tiles away, well outside FOV range (~12 tiles) ---
let far_npc_pos = TilePosition::new(50, 5, 0);
assert!(
!geometry.visible_positions.contains(&(far_npc_pos.x, far_npc_pos.y)),
!geometry
.visible_positions
.contains(&(far_npc_pos.x, far_npc_pos.y)),
"IB-2: entity at {:?} (45 tiles from observer) must NOT be in FOV — \
observer snapshot would exclude this entity (fog of perception, D-010 principle 2)",
far_npc_pos
@@ -118,14 +118,18 @@ fn snapshot_excludes_entities_outside_los() {
// --- Sanity check: the observer's own position is visible ---
assert!(
geometry.visible_positions.contains(&(observer_pos.x, observer_pos.y)),
geometry
.visible_positions
.contains(&(observer_pos.x, observer_pos.y)),
"IB-2 sanity: observer's own position must always be in the FOV set"
);
// --- Additional sanity: tile directly ahead (1 step north) is visible ---
let adjacent_pos = TilePosition::new(5, 4, 0);
assert!(
geometry.visible_positions.contains(&(adjacent_pos.x, adjacent_pos.y)),
geometry
.visible_positions
.contains(&(adjacent_pos.x, adjacent_pos.y)),
"IB-2 sanity: tile directly ahead of observer must be visible"
);
}
@@ -272,9 +276,7 @@ fn background_npc_kg_not_updated_by_active_tier_events() {
world.init_resource::<EntityRegistry>();
// Active-tier NPC: will be the observer in the knowledge event.
let active_npc = world
.spawn((Npc, ActiveSim, KnowledgeGraph::new()))
.id();
let active_npc = world.spawn((Npc, ActiveSim, KnowledgeGraph::new())).id();
// Background-tier NPC: must NOT be affected.
let background_npc = world