From 328415d9e9b0dbccb93de7a3f999323d92691755 Mon Sep 17 00:00:00 2001 From: Esdras Renan Date: Tue, 14 Oct 2025 23:15:11 -0300 Subject: [PATCH] Windows inventory: add osInfo fallback from sysinfo; portal detail spacing + subcategory --- apps/desktop/src-tauri/src/agent.rs | 16 +++++++++++++++- src/components/portal/portal-ticket-detail.tsx | 3 ++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/apps/desktop/src-tauri/src/agent.rs b/apps/desktop/src-tauri/src/agent.rs index f7ea877..696b629 100644 --- a/apps/desktop/src-tauri/src/agent.rs +++ b/apps/desktop/src-tauri/src/agent.rs @@ -294,7 +294,21 @@ fn build_inventory_metadata(system: &System) -> serde_json::Value { #[cfg(target_os = "windows")] { - let extended = collect_windows_extended(); + let mut extended = collect_windows_extended(); + // Fallback: se osInfo vier vazio, preenche com dados do sysinfo + if let Some(win) = extended.get_mut("windows").and_then(|v| v.as_object_mut()) { + let needs_os_info = match win.get("osInfo") { + Some(v) => v.as_object().map(|m| m.is_empty()).unwrap_or(true), + None => true, + }; + if needs_os_info { + let mut osmap = serde_json::Map::new(); + if let Some(name) = System::name() { osmap.insert("ProductName".into(), json!(name)); } + if let Some(ver) = System::os_version() { osmap.insert("Version".into(), json!(ver)); } + if let Some(build) = System::kernel_version() { osmap.insert("BuildNumber".into(), json!(build)); } + win.insert("osInfo".into(), serde_json::Value::Object(osmap)); + } + } if let Some(obj) = inventory.as_object_mut() { obj.insert("extended".into(), extended); } diff --git a/src/components/portal/portal-ticket-detail.tsx b/src/components/portal/portal-ticket-detail.tsx index 353e8f9..1fdf01f 100644 --- a/src/components/portal/portal-ticket-detail.tsx +++ b/src/components/portal/portal-ticket-detail.tsx @@ -169,7 +169,7 @@ export function PortalTicketDetail({ ticketId }: PortalTicketDetailProps) { {isCustomer ? null : } - + `n {ticket.assignee ? ( @@ -314,3 +314,4 @@ function DetailItem({ label, value, subtitle }: DetailItemProps) { +