fix(simulation): address PR #125 review — tick truncation, ordering, perf, protocol test

- Widen EventPort tick methods from u32 to u64 (prevents overflow)
- Add is_identity() guard on hot-path String allocation in modifiers
- Replace Vec::remove(0) with VecDeque::pop_front() in price history
- Add .after(tick_economy_simulation) ordering for debug commands
- Fix stale PROTOCOL_VERSION assertion (20 → 21) in serialization test
- Add D-181 Phase 2 visibility scope comment on serve_econ_state_query
- Eliminate double lookup in rebuild_signals via single-pass extraction
- Track economy seed TODO with backlog ticket reference

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-10 14:06:54 +02:00
co-authored by Claude Opus 4.6
parent 77232434f4
commit 1498115aba
8 changed files with 37 additions and 32 deletions
+1 -2
View File
@@ -103,8 +103,7 @@ impl Simulation {
/// event port. Call once per economy tick (every ECON_TICK_RATE game ticks).
pub fn step(&mut self) {
// Activate any events scheduled for this tick (D-180)
let tick32 = self.tick as u32;
self.events.activate_scheduled(tick32);
self.events.activate_scheduled(self.tick);
let mods = self.events.compute_modifiers(&self.economy);