fix(simulation): address believability-stack review — all findings processed
Stack review (Hoshe + Tyre) of T-1083+T-1082+T-1080. Every finding fixed or disposed: - believability.rs sample_indices: replace the rejection-sampling loop (could stall when n ≈ take) with deterministic partial Fisher-Yates — O(n), guaranteed termination, distinct, sorted (Hoshe+Tyre). - believability.rs drainage proxy: exclude water-body districts (all elev 0, no banks) and require both wet + dry voxels — they were passing vacuously and inflating the metric (Hoshe). - believability.rs read_cities: log skipped malformed rows instead of dropping silently (Hoshe). - voxel.rs: add the 3 WaterBody zones to all_families_no_panic_at_extreme_positions + fix the "7 families" comment (Hoshe). - climate_constants.toml: bold warning that [moisture_gradient] is not loaded until T-1032 — tune ClimateConstants::default() (Tyre). - Q-123: record the per-zone "water renders wet" threshold + the land-relative vegetation-present denominator as calibration items (Tyre + the open 7th criterion). - T-1083 ticket: note the sampling-fix attribution (landed in the T-1082 commit). Believability golden regenerated (sampler + drainage fixes moved the metrics). clippy --all-targets -D warnings clean; 1580 lib tests + harness pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -87,6 +87,10 @@ subsurface_ice = 0.95
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
[moisture_gradient]
|
||||
# !! NOT LOADED AT RUNTIME until T-1032 wires TOML loading. The LIVE source is
|
||||
# !! ClimateConstants::default() in server/src/atlas/district_profile.rs — editing
|
||||
# !! these values here alone has NO effect (the file header's "tune: edit here"
|
||||
# !! does not yet apply to this table). Change BOTH, or change the Rust default.
|
||||
# Per-district moisture spatial gradient (T-1080, D-239 §2). Integer points
|
||||
# subtracted from the body's hydrosphere moisture *ceiling* so the field varies
|
||||
# across the body instead of being a single constant (the bug: moisture_q = 80 for
|
||||
|
||||
Reference in New Issue
Block a user