refactor: resolved metre layout is the runtime authority (L41, migration step 3); stamp covers plugin sources; R8

UVoxelStrateManager::Initialize resolves the layout width to integer micrometres before passages or
scheduling; each slot stores physical [bottom, top) bounds, transition mode/width and passage settings;
chunk indices remain a floor-based compatibility projection. The Core adapter derives interiors and L29
bands from those resolved values. verify: full-tier cost baseline is HEAD (or --baseline), tier timeout
7200 s with 1800 s per process; the source stamp now includes the plugin Source tree compiled on Linux
(it previously missed VoxelStrateManager.cpp and friends). Owner hashes identical to L37; fast, medium
and full PASS on a clean rebuild. Unreal manager/adapter edits are uncompiled on Windows.
Research R8: inventory of unit-bearing UPROPERTYs and a custom-version asset migration plan.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016dhxM43dnWvUu2B5Ph1iG1
This commit is contained in:
Fr0zkaandClaude Opus 5.5 committed 2026-10-23 19:36:51 +02:00
1 parent efa9e89468
commit 1abee91721
11 files changed
+662 -215

No files matched your search

+11 -3
View File
@@ -36,10 +36,18 @@ def manifest_entries(root: Path, include_unreal: bool = False) -> list[tuple[str
if helper.is_file():
files.add(helper)
# Plugin sources listed in core_sources.txt are compiled into the Linux binaries, and their
# headers are included by Core, so the whole plugin Source tree is always part of the stamp.
plugin_source = root / "Source" / "VoxelForge"
for suffix in ("*.h", "*.hpp", "*.cpp", "*.inl"):
files.update(plugin_source.rglob(suffix))
compat = standalone / "Compat"
for suffix in ("*.h", "*.hpp", "*.cpp"):
files.update(compat.rglob(suffix))
if include_unreal:
unreal = source / "VoxelForge"
for suffix in ("*.h", "*.hpp", "*.cpp", "*.cs"):
files.update(unreal.rglob(suffix))
for suffix in ("*.cs",):
files.update(plugin_source.rglob(suffix))
entries = [(path.relative_to(root).as_posix(), path.read_bytes())
for path in files if path.is_file()]