diff --git a/apps/desktop/src/components/MachineStateMonitor.tsx b/apps/desktop/src/components/MachineStateMonitor.tsx index 0ed9e96..c3f220a 100644 --- a/apps/desktop/src/components/MachineStateMonitor.tsx +++ b/apps/desktop/src/components/MachineStateMonitor.tsx @@ -33,8 +33,26 @@ function MachineStateMonitorInner({ machineId, onDeactivated, onTokenRevoked }: useEffect(() => { if (!machineState) return - // Na primeira carga, apenas armazena os valores iniciais + // Na primeira carga, verifica estado inicial E armazena valores if (!initialLoadDone.current) { + console.log("[MachineStateMonitor] Carga inicial", { + isActive: machineState.isActive, + hasValidToken: machineState.hasValidToken, + found: machineState.found, + }) + + // Se já estiver desativado na carga inicial, chama callback + if (machineState.isActive === false) { + console.log("[MachineStateMonitor] Máquina já estava desativada") + onDeactivated?.() + } + + // Se token já estiver inválido na carga inicial, chama callback + if (machineState.hasValidToken === false) { + console.log("[MachineStateMonitor] Token já estava revogado") + onTokenRevoked?.() + } + previousIsActive.current = machineState.isActive previousHasValidToken.current = machineState.hasValidToken initialLoadDone.current = true diff --git a/apps/desktop/src/main.tsx b/apps/desktop/src/main.tsx index 2d0448c..7979f0e 100644 --- a/apps/desktop/src/main.tsx +++ b/apps/desktop/src/main.tsx @@ -1560,9 +1560,19 @@ const resolvedAppUrl = useMemo(() => { // Quando há token persistido (dispositivo já provisionado) e ainda não // disparamos o auto-launch, exibimos diretamente a tela de loading da // plataforma para evitar piscar o card de resumo/inventário. - if ((token && !autoLaunchRef.current) || (isLaunchingSystem && token)) { + // IMPORTANTE: Sempre renderiza o MachineStateMonitor para detectar desativação em tempo real + if (((token && !autoLaunchRef.current) || (isLaunchingSystem && token)) && isMachineActive) { return (
+ {/* Monitor de estado da máquina - deve rodar mesmo durante loading */} + {token && config?.machineId && convexClient && ( + + )}

Abrindo plataforma da Rever…