jpmschweitzer and Claude Opus 4.6
d0663c4193
refactor(server): apply rustfmt and clippy suggestions
...
Formatting pass across simulation, perception, knowledge, NPC, and
test modules. Includes two clippy fixes in monologue.rs (.values()
instead of for (_, v) pattern).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-16 00:40:43 +01:00
jpmschweitzer and Claude Opus 4.6
0157d1fa38
test(server): add Entity::to_bits roundtrip and TickRate switch tests
...
- Entity::to_bits() roundtrip test guards against bevy version changes
silently breaking wire IDs (Hoshe #1 )
- PROTOCOL_VERSION constant used in test helpers instead of hardcoded 4
- TickRate switch mid-accumulation test verifies Half→Full→Paused→Half
transitions preserve accumulator state correctly (Tyre N3)
- POI mid-range test now asserts priority=1 (Hoshe #4 )
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 22:52:59 +01:00
jpmschweitzer and Claude Opus 4.6
9943684f2c
refactor(server): address PR #16 review feedback
...
Hoshe + Tyre review items:
- Use StableId consistently for wire entity_id (H4) across observer,
observation, interpretation, and interaction systems
- Make NearbyInteractionBuffer.interactions private with take() (H1/H20)
- Add system ordering constraint for compute_nearby_interactions (H5)
- Panic on missing PlayerCharacter in input processing (H2)
- Remove redundant paused field from GameTime (Tyre8)
- Remove #[serde(default)] from nearby_interactions (H3)
- Change NearbyInteraction.distance from f32 to u32 (H8)
- Add sort stability for equal verb priorities (H6)
- Scope constants to pub(crate) (H7)
- Add debug_assert for last_observed_tick ordering (H10)
- Strengthen unregistered entity handling to debug_assert + error (H11)
- Document fractional tick accumulation (Tyre9)
- Extract collect_remembered_entities helper (Tyre2/H17)
- Add half_rate_no_drift_over_10000_frames test (H14)
- Add mid-range and deterministic sort tests (H15)
- Add fixture version assertion (H16)
- Regenerate msgpack fixtures for wire format changes
146 unit + 19 integration tests pass, zero clippy warnings.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 20:14:35 +01:00
jpmschweitzer and Claude Opus 4.6
5afea99622
feat(simulation): add tick rate scaling system
...
Replace binary paused flag with TickRate enum (Full/Half/Paused)
per D-052. Full rate advances every frame, Half every 2 frames
via fractional accumulation, Paused blocks all advances. Add
SetTickRate player action for client-driven rate changes.
Implements ticket #406 .
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 19:48:43 +01:00
jpmschweitzer and Claude Opus 4.6
6bda4a7620
fix(simulation): address PR #2 review findings
...
- Fix Cargo.toml edition 2024 → 2021 (Hoshe #1 )
- Switch test runner to cargo-nextest in Makefile (Hoshe #2 , D-030)
- Add debug_assert tick ordering enforcement in InputQueue::push (Hoshe #4 )
- Add DayPhase Serialize/Deserialize derives (Tyre #6 )
- Add day phase boundary comments clarifying half-open ranges (Hoshe #3 )
- Add phase duration adjustability comment (Tyre #5 )
- Document ObserverSnapshot planned fields as TODO (Tyre #1 )
- Document entity_id as wire-format ID, not ECS Entity (Tyre #2 )
- Change Relationship.target_name to target_id: u64 (Tyre #3 )
- Clarify single app.update() is intentional boilerplate (Hoshe #8 , Tyre #7 )
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 17:53:01 +01:00
jpmschweitzer and Claude Opus 4.6
f67caf1986
feat(server): initialize Rust/bevy_ecs simulation server
...
Server boilerplate epic (276) complete. Establishes the Rust simulation
server foundation per D-020 (subprocess/IPC architecture).
Structure:
- bevy_ecs 0.18 + bevy_app 0.18, MessagePack serialization (rmp-serde)
- SimulationPlugin with deterministic resources: SimulationTime (D-031),
SimRng (D-030), InputQueue (D-010)
- Core IPC types: ObserverSnapshot, PlayerInput, SimBridge trait (D-020)
- CauseChain production component for provenance tracking (D-030)
- SimulationTier types with LRU eviction support (D-026)
- NPC 10-axis model components (D-024)
- 15 tests: inline unit tests + integration smoke/serialization tests
- make ci-server passes (clippy, fmt, build, test)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 16:54:40 +01:00