Salvar dados do RustDesk diretamente no machine-agent.json pelo Rust

- Resolve conflito entre Tauri Store (TypeScript) e escrita direta (Rust)
- O Rust agora salva a chave "rustdesk" no arquivo apos provisionamento
- O TypeScript pode ler os dados via Store.load() normalmente
- Garante que os dados do RustDesk estejam disponiveis para sincronizacao

🤖 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:56:12 -03:00
parent 736282a805
commit 2c47e84cab

View file

@ -256,14 +256,32 @@ pub fn ensure_rustdesk(
let version = query_version(&exe_path).ok().or(installed_version); let version = query_version(&exe_path).ok().or(installed_version);
let last_provisioned_at = Utc::now().timestamp_millis();
let result = RustdeskProvisioningResult { let result = RustdeskProvisioningResult {
id: final_id.clone(), id: final_id.clone(),
password: password.clone(), password: password.clone(),
installed_version: version.clone(), installed_version: version.clone(),
updated: freshly_installed, updated: freshly_installed,
last_provisioned_at: Utc::now().timestamp_millis(), last_provisioned_at,
}; };
// Salva os dados do RustDesk diretamente no arquivo machine-agent.json
// para evitar conflitos com o Tauri Store do TypeScript
let rustdesk_data = serde_json::json!({
"id": final_id,
"password": password,
"installedVersion": version,
"updated": freshly_installed,
"lastProvisionedAt": last_provisioned_at,
"lastSyncedAt": serde_json::Value::Null,
"lastError": serde_json::Value::Null
});
if let Err(error) = upsert_machine_store_value("rustdesk", rustdesk_data) {
log_event(&format!("Aviso: falha ao salvar dados do RustDesk no store: {error}"));
} else {
log_event("Dados do RustDesk salvos no machine-agent.json");
}
log_event(&format!("Provisionamento concluído. ID final: {final_id}. Versão: {:?}", version)); log_event(&format!("Provisionamento concluído. ID final: {final_id}. Versão: {:?}", version));
Ok(result) Ok(result)