Corrigir sincronizacao automatica do RustDesk com o backend

- 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 <noreply@anthropic.com>
This commit is contained in:
rever-tecnologia 2025-12-05 14:42:49 -03:00
parent 01a16b7e5e
commit 736282a805

View file

@ -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,
}
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)
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<RustdeskProvisioningResult>("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
@ -916,7 +939,7 @@ const resolvedAppUrl = useMemo(() => {
syncRemoteAccessNow(rustdeskInfo)
}
}
}, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning])
}, [store, config?.machineId, rustdeskInfo, ensureRustdesk, syncRemoteAccessNow, isRustdeskProvisioning])
async function register() {
if (!profile) return