fix(simulation): thread body_params through DeriveStepCanvas terrain derive

The T-1184 merge seam: TerrainAnalysisCache::get_or_derive gained a
body_params parameter (real moisture ceiling for the hydrology solve);
the DeriveStepCanvas arm now passes its own body_params so step-canvas
requests get the same hydrology-carrying TerrainAnalysis the legacy
DeriveWindow path does. Acceptance gate + window goldens green
post-merge.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-25 03:14:52 +02:00
co-authored by Claude Fable 5
parent b7f54a4de0
commit c6f0bd6da2
+3 -1
View File
@@ -1183,10 +1183,12 @@ fn run_work_item(
// on body_id alone, so a step-canvas request and a legacy
// district_window request for the same body share one
// ~45 ms run_layer1 re-derive, never pay it twice.
// body_params threads the real moisture ceiling into the
// T-1184 hydrology solve (merge seam resolution).
let (l1, ta) = terrain_cache
.lock()
.unwrap()
.get_or_derive(body_id, &working);
.get_or_derive(body_id, &working, Some(body_params.as_ref()));
let climate = ClimateConstants::default();
let raw = crate::atlas::step_canvas::build_step_canvas(
*body_seed,