feat(k1): stabilize LAB bridge and isolate onboard device integration

This commit is contained in:
DCCONSTRUCTIONS
2026-09-07 10:31:33 +03:00
parent 020a878915
commit 63ea2bed67
115 changed files with 13700 additions and 988 deletions
+20 -6
View File
@@ -215,8 +215,8 @@ def default_environment_settings() -> EnvironmentSettingsDocument:
description=(
"Свести все сенсоры в синхронную и управляемую операторскую картину."
),
primary_workspace_id="spatial-scene",
secondary_workspace_id="cameras",
primary_workspace_id="cameras",
secondary_workspace_id="world-map",
background=background.model_copy(),
),
missions=EnvironmentPage(
@@ -372,10 +372,24 @@ def _upgrade_environment(payload: object) -> EnvironmentSettingsDocument:
raise ValueError("environment document must be an object")
schema_version = payload.get("schema_version")
if schema_version == "missioncore.operator-environment/v1":
return _upgrade_v1_environment(payload)
if schema_version == "missioncore.operator-environment/v2":
return _upgrade_v2_environment(payload)
return EnvironmentSettingsDocument.model_validate(payload)
document = _upgrade_v1_environment(payload)
elif schema_version == "missioncore.operator-environment/v2":
document = _upgrade_v2_environment(payload)
else:
document = EnvironmentSettingsDocument.model_validate(payload)
# The owner moved the local live scene to LAB. Retire only its old
# Control shortcuts, preserving custom copy, backgrounds and other links.
page = document.pages.observation
if page.primary_workspace_id == "spatial-scene":
page.primary_workspace_id = (
page.secondary_workspace_id
if page.secondary_workspace_id not in (None, "spatial-scene")
else "cameras"
)
page.secondary_workspace_id = None
elif page.secondary_workspace_id == "spatial-scene":
page.secondary_workspace_id = None
return document
class EnvironmentSettingsStore: