tools/parity.py traces each harness (its Python, Java oracle sources and
the Rust sources of the probes it runs, from Cargo's dep-info) and reruns
it only when one of those, the vanilla artifacts or the toolchains change.
Harnesses run in parallel within the available memory, and their probes
build without LTO and with 16 codegen units into .local/parity-target: a
one-line change rebuilds every horizon-world probe in 3 seconds instead of
122. The full suite takes about 20 minutes instead of an hour.
tools/gate.py is the check a branch passes before integration, and
tools/supervise.py manages the per-area worktrees: status, new worktrees,
saving unfinished work, and integrating a branch only when the gate passes.
Harnesses find probes through lab.cargo_target() instead of a hard-coded
target/, the save round-trip harness builds the binaries it launches, and
the mob AI harness now fails on divergences like every other harness
(--report-only keeps the old behaviour). Debug builds keep line tables
only, so worktrees stay small.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- Legacy jigsaw elements apply STRUCTURE_AND_AIR last, after jigsaw
replacement (outposts no longer carve air where jigsaws sat).
- Templates without a known shape run StructureTemplate's neighbor shape
updates (updateShapeAtEdge, then updateFromNeighbourShapes) through
level::Behaviours: snowy grass under igloos, stair shapes and fence
connections in shipwrecks.
- The placement oracle keeps going through structure entities (a level
stand-in with no enabled features) and compares brushable-block loot.
With block behavior exports present, 18 chunks of seed 1 covering
villages, igloo, outpost, mineshafts, shipwreck, warm ocean ruin, buried
treasure, ruined portal, trial chambers, monument, mansion, stronghold,
ancient city, trail ruins and a jungle temple match vanilla exactly,
blocks and block-entity loot seeds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
VanillaStructurePlacementOracle generates vanilla terrain with live
structure starts and references for the 3x3 chunks around a target, runs
the structure part of applyBiomeDecoration through a WorldGenRegion-like
level and dumps the target chunk's blocks and block entities. The
structure_blocks example does the same with Horizon's generator
(GeneratorWorker::set_structures_only skips placed features) and
tools/compare_structure_blocks.py reports the differences.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>