Files
jpmschweitzerandClaude Fable 5 0bd895fcac chore(engine): server hygiene batch — workers tests, surname dedup, save pin (T-1063, T-1064)
- workers/pool.rs: 5 new tests; catch_unwind keeps worker threads alive on
  handler panic (in-flight request loss unchanged, pinned by test + #843
  docs); stubs.rs no longer falsely claims the pool is tested
- save/load: execute_save_load pinned .after(Storyteller) so the scheduler
  cannot legally save pre-Input state; exclusive-system exception recorded
  in tick_phases.rs rules
- surname corpus extracted to bin/shared/surname_corpus.rs (both economy
  generators import it; byte-identical output verified on 23.6MB+1.45MB
  TOMLs); all three stamp/watch registries updated
- generator_spike gated behind non-default 'generator-spike' feature
- economy.rs: 11 new D-181 signal-derivation tests on the new
  econ_sim Simulation::from_economy in-memory constructor
- perception exemption comments now state the consumer sort contract;
  unused bytemuck removed; rayon comment corrected; the 22 allow(dead_code)
  documented as serde schema enforcement

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 16:22:28 +02:00

71 lines
2.7 KiB
TOML

[package]
name = "settled-reach-server"
version = "0.2.0"
edition = "2021"
publish = false
[dependencies]
bevy_ecs = "0.18"
bevy_app = "0.18"
# multi_threaded enables Bevy's parallel system executor (no explicit import needed —
# bevy_ecs detects the feature on its bevy_tasks dependency at compile time).
bevy_tasks = { version = "0.18", features = ["multi_threaded"] }
# Thread-pool/parallelism infrastructure. Used by the atlas generation worker
# pool (atlas/gen_queue.rs); data-parallel (par_iter) use in systems begins when
# profiling shows bottlenecks.
rayon = "1"
serde = { version = "1", features = ["derive"] }
ron = "0.8"
rmp-serde = "1"
rand = "0.9"
rand_chacha = "0.9"
pathfinding = "4.11"
thiserror = "2"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
clap = { version = "4", features = ["derive"] }
crossbeam-channel = "0.5"
sysinfo = "0.35"
serde_json = "1"
rusqlite = { version = "0.32", features = ["bundled"] }
png = "0.17"
toml = "0.8"
aho-corasick = "1"
# Economics simulation — Leontief + tâtonnement + D-180 event port (#821)
econ-sim = { path = "../tooling/econ-sim" }
[features]
default = ["gauntlet"]
gauntlet = []
# Gates the generator_spike binary (Sprint 25 proof-of-life, #612). The spike
# reimplements npc/generate.rs axes outside ECS and is kept for reference only —
# excluded from default builds so it cannot drift into production paths (T-1064).
generator-spike = []
# ---------------------------------------------------------------------------
# generator_spike is declared explicitly (instead of relying on src/bin auto-
# discovery) so it can be feature-gated: `cargo build --bin generator_spike
# --features generator-spike`. Other binaries remain auto-discovered.
# ---------------------------------------------------------------------------
[[bin]]
name = "generator_spike"
path = "src/bin/generator_spike.rs"
required-features = ["generator-spike"]
[dev-dependencies]
# Maintained drop-in fork of the deprecated serde_yaml 0.9 (#966). Test-only:
# the YAML round-trip in poi.rs and the trait-config fixture in trait_modifiers.rs.
serde_norway = "0.9"
# SHA-256 of the source heightmap.png in the cascade golden test (#952).
sha2 = "0.10"
# ---------------------------------------------------------------------------
# Explicit test target for the Layer 3 integration module (D-030, ticket #200).
# tests/integration/mod.rs cannot be auto-discovered by cargo (only top-level
# *.rs files in tests/ are auto-discovered). This declaration makes it a named
# test binary: `cargo test --test integration_layer3`.
# ---------------------------------------------------------------------------
[[test]]
name = "integration_layer3"
path = "tests/integration/mod.rs"