wip(k1): checkpoint connection recovery rewrite

Capture the current unreleased K1 connection, recovery, lifecycle, viewer, and test work as a single known-bad baseline for subsequent fixes.
This commit is contained in:
DCCONSTRUCTIONS
2026-08-14 14:57:50 +03:00
parent aff331082f
commit 0ca7316a24
157 changed files with 152962 additions and 4036 deletions
+23 -8
View File
@@ -104,8 +104,13 @@ def test_xgrids_frontend_uses_semantic_acquisition_actions_and_stable_identity()
assert hook_source.index("xgridsK1Api.prepareAcquisition") < hook_source.index(
"xgridsK1Api.startAcquisition"
)
assert "isSoftwareCommandedAcquisition(state)" in hook_source
assert '? "graceful" : "capture-only"' in hook_source
assert "isSoftwareCommandedAcquisition(currentState)" in hook_source
assert hook_source.index("isSoftwareCommandedAcquisition(currentState)") < (
hook_source.index('mode: "graceful"')
)
assert hook_source.index('mode: "graceful"') < hook_source.index(
'mode: "capture-only"'
)
assert "state.device_ref" in runtime_source
assert "instanceId: deviceRef.device_id" in runtime_source
assert "acquisition?.acquisition_id" in runtime_source
@@ -113,7 +118,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_one_response_gated_launch_intent() -> None:
def test_xgrids_live_copy_exposes_response_gated_prepare_and_one_physical_start() -> None:
repository_root = Path(__file__).resolve().parents[1]
connection_source = (
repository_root
@@ -125,16 +130,26 @@ def test_xgrids_live_copy_exposes_one_response_gated_launch_intent() -> None:
/ "K1AcquisitionPipeline.tsx"
).read_text("utf-8")
assert "Запустить сканирование и локальный приём" in connection_source
assert "Имя войдёт в единственный канонический START" in connection_source
assert "этапы идут строго по записанному порядку и только после ответов K1" in (
assert "Запустить приём" in connection_source
assert "Запустить K1" not in connection_source
assert "Одно нажатие выполняет каноническую подготовку и один START" in (
connection_source
)
assert "Проверить условия и отправить START" not in connection_source
assert "Физический START отправляется только после отдельного финального окна" not in (
connection_source
)
assert "Имя войдёт в единственный канонический START" in connection_source
assert "один START после подтверждённого READY" in connection_source
assert "Автоматических повторов команд нет" 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
assert "Аварийно завершить локальный приём" in connection_source
assert "Состояние сканирования остаётся неизвестным" in connection_source
assert "Физическое состояние сканера остаётся неизвестным" not in (
connection_source
)
def test_xgrids_start_uses_atomic_automatic_source_transition() -> None: