Files
Fr0zkaandClaude Opus 5.5 2566f53734 refactor(core): boundary policy as resolved capabilities, not generator-name tests (L42, step 6); R9
ResolvedLayoutSnapshotV3::finalize maps each strate's generator and interface once into capability
records (FI gradient air-gap, surface/FI landing support, passage-anchor columns, SW-to-TN floor);
ApplyResolvedStrateBoundaryBand and passage composition read those instead of generator kinds. Derived
records stay out of canonical JSON, so layout identity is unchanged. Owner hashes identical to L41;
fast/medium/full PASS on clean Clang and GCC builds; cost within noise.
Research R9 (read-only): player-visible roadmap refresh.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
2026-10-23 20:22:49 +02:00

3.2 KiB
Raw Permalink Blame History

Linux 42 — resolved boundary capabilities

Migration step 6 is a Core-only pure refactor. No Unreal source changed.

Policy records

ResolvedLayoutSnapshotV3::finalize resolves the existing generator and interface fields once into runtime capabilities. ApplyResolvedStrateBoundaryBand reads lowerInterfaceCapabilities.preserveUpperBedrockAirGap for the FI Gradient gap. Passage composition reads passageCapabilities.hasSurfaceLanding for the SW landing/bridge profile and crossing extent, hasFloatingIslandLanding for the FI route support, and usePassageAnchorForColumns for its fixed passage-column center. surfaceToTunnelLandingSupport records the SW-to-TunnelNetwork floor profile. The derived records are omitted from canonical JSON, so the resolved layout identity is unchanged.

BindResolvedStratumFields still checks generatorKind once to bind SurfaceWorld, FloatingIslands, or legacy evaluation. finalize maps that resolved kind to capabilities once. PlanResolvedLayoutPassagesV1 still names SurfaceWorld/FloatingIslands for existing default mouth and anchor placement; that passage planning policy remains outside this boundary-composition step.

Ceiling → content → breakable bedrock order remains unchanged for every strate. The upper strate still controls Hard/Gradient/Interleaved. L29 transition sample arithmetic and the passage-mouth fade are unchanged.

Hashes and cost

Source stamp: a3a65e58a670399d9458aa2a9c99eddd7b541671f919a293f5b4086878e9eb78.

FI layout ID b7a7d9ecc48d8f26; SW layout ID 8a52e84c26ed92d2. All four 12-record FI/SW worker-1 and worker-12 hash signatures match L41 exactly: FI 9820f4f38b189b3f7263810e7b3ff62aa502b21f476ffcfdbc7761a65cb07d58; SW a1e9268a4bbcc77d2a1ac54095df6851a70bab65c43ae50b332ed75132617834. Worker-1 and worker-12 match each other for both recipes.

Full-tier five-pair whole-view-ready cost versus HEAD 1abee917215cd6f971e39dd3158cecf4c9992fbe: FI median 18.164 s → 18.189 s (+0.14%); SW 1.888 s → 1.877 s (−0.58%). No measured cost regression.

Verification

Tier Result
Fast PASS, 163.2 s; owner hashes, worker parity, and ring gates pass.
Medium PASS, 469.9 s; transition modes, hole controls, route proofs, owner passage matrix, ring and capture gates pass.
Full PASS, 1,637.0 s; 107 runs and 539 checks, including Clang/GCC, 30-cell determinism and paired cost.

Full used clean Clang 19 and GCC 14 builds from Saved/Linux/l42/final-clean-build, -j12, FP contraction off. The final source stamp was embedded in both binaries. All processes used CPUs 0–11, the 6 GiB address-space limit, and a 30-minute process timeout.

The first fast invocation stopped before running checks because the L42 binary had not yet been built; fast passed after the build. The mislabelled-owner and all-black capture negative controls are expected rejections and passed their verifier checks. No tier had an unexpected failed run.

Orchestrator review (Claude)

Accepted. The current tree stamp equals both L42 binaries (a3a65e58…), so the fast/medium/full evidence is from this exact source. Owner hashes are identical to L41. Passage planning (PlanResolvedLayoutPassagesV1) still names generators; that is a later step.