From 736282a805eaa3ec130e35468b81bb29ffb73372 Mon Sep 17 00:00:00 2001 From: rever-tecnologia Date: Fri, 5 Dec 2025 14:42:49 -0300 Subject: [PATCH] Corrigir sincronizacao automatica do RustDesk com o backend MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Corrigir indentacao do useEffect que dispara ensureRustdesk - Adicionar logs detalhados em handleRustdeskProvision e ensureRustdesk - Logs ajudam a diagnosticar falhas na sincronizacao do acesso remoto 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude --- apps/desktop/src/main.tsx | 49 ++++++++++++++++++++++++++++----------- 1 file changed, 36 insertions(+), 13 deletions(-) diff --git a/apps/desktop/src/main.tsx b/apps/desktop/src/main.tsx index d0f9512..fda3b94 100644 --- a/apps/desktop/src/main.tsx +++ b/apps/desktop/src/main.tsx @@ -831,40 +831,63 @@ const resolvedAppUrl = useMemo(() => { const handleRustdeskProvision = useCallback( async (payload: RustdeskProvisioningResult) => { - if (!store) return + logDesktop("rustdesk:provision:start", { id: payload.id, hasStore: !!store }) + if (!store) { + logDesktop("rustdesk:provision:skip:no-store") + return + } const normalized: RustdeskInfo = { ...payload, installedVersion: payload.installedVersion ?? null, lastSyncedAt: rustdeskInfoRef.current?.lastSyncedAt ?? null, lastError: null, } - await writeRustdeskInfo(store, normalized) + try { + await writeRustdeskInfo(store, normalized) + logDesktop("rustdesk:provision:saved", { id: normalized.id }) + } catch (error) { + logDesktop("rustdesk:provision:save-error", { error: String(error) }) + throw error + } setRustdeskInfo(normalized) - await syncRemoteAccessNow(normalized) + try { + await syncRemoteAccessNow(normalized) + logDesktop("rustdesk:provision:synced", { id: normalized.id }) + } catch (error) { + logDesktop("rustdesk:provision:sync-error", { error: String(error) }) + } }, [store, syncRemoteAccessNow] ) const ensureRustdesk = useCallback(async () => { - if (!store) return null + logDesktop("rustdesk:ensure:start", { hasStore: !!store, machineId: config?.machineId ?? null }) + if (!store) { + logDesktop("rustdesk:ensure:skip:no-store") + return null + } if (!config?.machineId) { logDesktop("rustdesk:skip:no-machine-id") return null } setIsRustdeskProvisioning(true) try { + logDesktop("rustdesk:ensure:invoking", { machineId: config.machineId }) const payload = await invoke("ensure_rustdesk_and_emit", { configString: RUSTDESK_CONFIG_STRING || null, password: RUSTDESK_DEFAULT_PASSWORD || null, machineId: config.machineId, }) + logDesktop("rustdesk:ensure:invoked", { id: payload.id, version: payload.installedVersion }) await handleRustdeskProvision(payload) + logDesktop("rustdesk:ensure:complete", { id: payload.id }) return payload } catch (error) { const message = error instanceof Error ? error.message : String(error) if (message.toLowerCase().includes("apenas no windows")) { console.info("Provisionamento do RustDesk ignorado (plataforma não suportada)") } else { + logDesktop("rustdesk:ensure:error", { error: message }) console.error("Falha ao provisionar RustDesk", error) } return null @@ -907,16 +930,16 @@ const resolvedAppUrl = useMemo(() => { ensureRustdesk().finally(() => { rustdeskBootstrapRef.current = false }) - return - } - if (rustdeskInfo && !isRustdeskProvisioning) { - const lastSync = rustdeskInfo.lastSyncedAt ?? 0 - const needsSync = Date.now() - lastSync > RUSTDESK_SYNC_INTERVAL_MS - if (needsSync) { - syncRemoteAccessNow(rustdeskInfo) + return } - } -}, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning]) + if (rustdeskInfo && !isRustdeskProvisioning) { + const lastSync = rustdeskInfo.lastSyncedAt ?? 0 + const needsSync = Date.now() - lastSync > RUSTDESK_SYNC_INTERVAL_MS + if (needsSync) { + syncRemoteAccessNow(rustdeskInfo) + } + } + }, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning]) async function register() { if (!profile) return