fix(k1): simplify response-gated launch UX

This commit is contained in:
DCCONSTRUCTIONS
2026-07-18 18:17:16 +03:00
parent 7b7b5d6cad
commit d7a2c22faf
10 changed files with 306 additions and 161 deletions
+9 -6
View File
@@ -113,7 +113,7 @@ def test_xgrids_frontend_uses_semantic_acquisition_actions_and_stable_identity()
assert 'id: "xgrids-k1-rerun-live"' not in runtime_source
def test_xgrids_live_copy_exposes_only_explicit_canonical_control_steps() -> None:
def test_xgrids_live_copy_exposes_one_response_gated_launch_intent() -> None:
repository_root = Path(__file__).resolve().parents[1]
connection_source = (
repository_root
@@ -125,11 +125,14 @@ def test_xgrids_live_copy_exposes_only_explicit_canonical_control_steps() -> Non
/ "K1AcquisitionPipeline.tsx"
).read_text("utf-8")
assert "Подключить управление K1" in connection_source
assert "Открыть рабочее пространство K1" in connection_source
assert "Сохранить проект и подготовить локальный приём" in connection_source
assert "Запустить сканирование K1" in connection_source
assert "никаких временных автопереходов и повторов нет" in connection_source
assert "Запустить сканирование и локальный приём" in connection_source
assert "Имя войдёт в единственный канонический START" in connection_source
assert "этапы идут строго по записанному порядку и только после ответов K1" in (
connection_source
)
assert "Подключить управление K1" not in connection_source
assert "Открыть рабочее пространство K1" not in connection_source
assert "Сохранить проект и подготовить локальный приём" not in connection_source
assert "Остановить локальный приём" in connection_source
assert "Физическое состояние сканера остаётся неизвестным" in connection_source
@@ -16,6 +16,7 @@ from k1link.device_plugins.xgrids_k1.facade import (
CameraPreviewSelectRequest,
CompatibilityAttestationRequest,
ConnectRequest,
OpenApplicationControlSessionRequest,
OperatorPresenceRequest,
PrepareAcquisitionRequest,
ShadowApplicationControlArmRequest,
@@ -169,6 +170,19 @@ PHYSICAL_ACCEPTANCE = OperatorPresenceRequest(
)
def test_control_session_transport_metadata_does_not_leak_into_confirmation() -> None:
request = OpenApplicationControlSessionRequest(
operator_present=True,
owner_controlled_device=True,
lixelgo_closed=True,
battery_storage_confirmed=True,
expected_physical_state_confirmed=True,
timezone_name="Europe/Moscow",
)
assert request.confirmation() == PHYSICAL_ACCEPTANCE.confirmation()
def service_with_fake_runtime(
tmp_path: Path,
) -> tuple[XgridsK1CompatibilityService, FakeVisualizationRuntime]: