Стабилизация переключения Bridge и Quick Connect
Безопасно восстанавливает управляющее подключение и локальные checkpoint без повторных команд сканеру. Добавляет PCAP/Bridge guardrails и регрессионные проверки одношагового переподключения. Известный дефект: после второго подключения интерфейс не присоединяется к новой генерации preview правой камеры. В живой Quick Connect-сессии STOP был принят, но READY не подтвердился до таймаута; автоматический повтор STOP запрещён.
This commit is contained in:
@@ -3045,16 +3045,25 @@ def _require_prepared_resolved_start_standby(
|
||||
raise ActiveAcquisitionRecoveryCheckpointTransitionError(
|
||||
"resolved START origin does not bind the exact prepared acquisition"
|
||||
)
|
||||
if (
|
||||
cessation_status_proof.binding.runtime_instance_id
|
||||
recovery_binding = cessation_status_proof.binding
|
||||
same_runtime = (
|
||||
recovery_binding.runtime_instance_id
|
||||
== checkpoint.prepared_binding.runtime_instance_id
|
||||
or cessation_status_proof.binding.control_session_id
|
||||
)
|
||||
if (
|
||||
recovery_binding.control_session_id
|
||||
== checkpoint.prepared_binding.control_session_id
|
||||
or cessation_status_proof.evidence_session_id
|
||||
== checkpoint.original_evidence_session_id
|
||||
or (
|
||||
same_runtime
|
||||
and recovery_binding.producer_generation
|
||||
<= checkpoint.prepared_binding.producer_generation
|
||||
)
|
||||
):
|
||||
raise ActiveAcquisitionRecoveryCheckpointTransitionError(
|
||||
"restart standby settlement requires new runtime, control and evidence sessions"
|
||||
"standby settlement requires a new control/evidence boundary; "
|
||||
"same-runtime recovery also requires a newer producer generation"
|
||||
)
|
||||
exact_terminal_lineage = bool(
|
||||
cessation_physical_proof.operation_id
|
||||
@@ -3474,7 +3483,7 @@ def _require_active_reconciled_standby_shape(
|
||||
or (
|
||||
same_runtime
|
||||
and recovery_binding.producer_generation
|
||||
== failed_binding.producer_generation
|
||||
<= failed_binding.producer_generation
|
||||
)
|
||||
):
|
||||
raise ActiveAcquisitionRecoveryCheckpointTransitionError(
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user