(null);
const [ssid, setSsid] = useState("");
const [password, setPassword] = useState("");
@@ -1657,7 +1685,8 @@ export function K1ProvisioningPipeline({
? readOnlyReconnectPresentation
: null;
const connectionRecoveryVerificationPending =
- currentReadOnlyReconnectPresentation?.kind === "connection";
+ currentReadOnlyReconnectPresentation?.kind === "connection"
+ && currentReadOnlyReconnectPresentation.connectionMode === connectionMode;
const physicalRecoveryVerificationPending =
currentReadOnlyReconnectPresentation?.kind === "physical";
const provisioningMutationBusy = Boolean(
@@ -1796,7 +1825,7 @@ export function K1ProvisioningPipeline({
state,
connectionMode,
);
- const connectionRecoveryTarget = !physicalRecoveryRequired
+ const recommendedConnectionRecoveryTarget = !physicalRecoveryRequired
&& !unresolvedAppliedAttempt
&& !selectedModeConnected
&& !reconfigurationActive
@@ -1804,6 +1833,13 @@ export function K1ProvisioningPipeline({
&& connectionRecoveryObservationAllowed
? recommendedConnectionRecoveryObservationTarget(state)
: null;
+ // A durable recovery target remains available when the operator returns to
+ // its mode, but it must never leak a Bridge reconnect action into a freshly
+ // selected Quick Connect draft (or vice versa).
+ const connectionRecoveryTarget =
+ recommendedConnectionRecoveryTarget?.connectionMode === connectionMode
+ ? recommendedConnectionRecoveryTarget
+ : null;
const connectionRecoveryKey = connectionRecoveryEscapeKey({
snapshotRuntimeId,
attempt: connectionRecoveryAttempt,
@@ -3162,10 +3198,16 @@ export function K1ProvisioningPipeline({
disabled={modeResetInFlight}
variant="split"
/>
- {modeResetInFlight ? (
-
- Завершение прежней локальной границы. Новый поиск не начнётся автоматически.
-
+ {modeResetProgressVisible ? (
+
+
+
Переключаем способ подключения…
+
) : null}
{activeScenarioReset ? (
diff --git a/plugins/xgrids-k1/frontend/src/components/K1SpatialControls.tsx b/plugins/xgrids-k1/frontend/src/components/K1SpatialControls.tsx
index 9edaffe..be2ef37 100644
--- a/plugins/xgrids-k1/frontend/src/components/K1SpatialControls.tsx
+++ b/plugins/xgrids-k1/frontend/src/components/K1SpatialControls.tsx
@@ -197,6 +197,7 @@ export function K1SpatialControlsView({
&& canIssueCanonicalStop(state, physicalStopIntentSpent),
);
const physicalStopPresented = physicalStopInFlight || physicalStopExecutable;
+ const pluginCommandedAcquisition = acquisition?.control_mode === "plugin-commanded";
const stopping = ["awaiting_external_stop", "stopping", "finalizing"].includes(
acquisition?.state ?? "",
);
@@ -327,7 +328,10 @@ export function K1SpatialControlsView({
) : null}
- {!physicalStopPresented && localReceiverStopAllowed && !stopping ? (
+ {!physicalStopPresented
+ && localReceiverStopAllowed
+ && !pluginCommandedAcquisition
+ && !stopping ? (