fix(lab): preserve replay view and restore SLAM semantics

This commit is contained in:
DCCONSTRUCTIONS
2026-08-26 23:37:05 +03:00
parent 46cef8df17
commit 296cf610cd
8 changed files with 230 additions and 45 deletions
@@ -79,6 +79,7 @@ def seal_m49_tgs_full_shadow(
destination_root: Path,
profile_path: Path,
linked_visual_result_id: str,
linked_semantic_result_id: str,
created_at_utc: str | None = None,
) -> M49TgsFullShadowResult:
source = source_root.expanduser().resolve(strict=True)
@@ -115,6 +116,11 @@ def seal_m49_tgs_full_shadow(
or len(linked_visual_result_id) != len("m4-threat-replay-") + 64
):
raise M49TgsFullShadowError("linked visual result is invalid")
if (
not linked_semantic_result_id.startswith("e47-semantic-slam-")
or len(linked_semantic_result_id) != len("e47-semantic-slam-") + 64
):
raise M49TgsFullShadowError("linked semantic result is invalid")
for name in EVIDENCE_FILES:
path = source / name
proof = worker.get("files", {}).get(name, {})
@@ -131,6 +137,7 @@ def seal_m49_tgs_full_shadow(
"input_manifest_sha256": worker["input_manifest_sha256"],
"config_sha256": worker["config_sha256"],
"linked_visual_result_id": linked_visual_result_id,
"linked_semantic_result_id": linked_semantic_result_id,
"files": {name: worker["files"][name]["sha256"] for name in EVIDENCE_FILES},
"authority": {
"commands_enabled": False,
@@ -154,6 +161,7 @@ def seal_m49_tgs_full_shadow(
"source_session_id": "20260720T065719Z_viewer_live",
"source_pack_sha256": worker["source_pack_sha256"],
"linked_visual_result_id": linked_visual_result_id,
"linked_semantic_result_id": linked_semantic_result_id,
},
"configuration": {
"profile_id": profile["profile_id"],
@@ -211,6 +219,7 @@ def seal_m49_tgs_full_shadow(
"visual_review": {
"instrument": "m4-canonical-reference-graph",
"linked_visual_result_id": linked_visual_result_id,
"linked_semantic_result_id": linked_semantic_result_id,
"frame_count": 4489,
"state_codes": profile["state_codes"],
},