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
This commit is contained in:
1 parent
1abee91721
commit
2566f53734
8 files changed
+204
-15
No files matched your search
@@ -0,0 +1,56 @@
|
||||
# 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.
|
||||
Reference in new issue
Block a user