From ae7a7db37e85914e3a249eee16ed85195bc8d51d Mon Sep 17 00:00:00 2001 From: SuperDooper <37051355+superdooper86@users.noreply.github.com> Date: Fri, 8 May 2026 21:05:59 +0200 Subject: [PATCH] debug: log org property names and capabilities value instead of truncated raw JSON --- windows/UsageViewModel.cs | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/windows/UsageViewModel.cs b/windows/UsageViewModel.cs index 210774f..8d7d0fb 100644 --- a/windows/UsageViewModel.cs +++ b/windows/UsageViewModel.cs @@ -179,10 +179,33 @@ public class UsageViewModel : INotifyPropertyChanged throw new Exception($"Bootstrap failed ({(int)bootstrapResp.StatusCode})."); var bootstrapJson = await bootstrapResp.Content.ReadAsStringAsync(); - // Save raw bootstrap for diagnostics — lets us see if 'capabilities' is returned - AppSettings.Default.DebugInfo = bootstrapJson.Length > 2000 - ? bootstrapJson.Substring(0, 2000) : bootstrapJson; - AppSettings.Default.Save(); + // Targeted debug: log org property names + capabilities value so we can see + // exactly what the HttpClient bootstrap response contains + try + { + using var dbgDoc = System.Text.Json.JsonDocument.Parse(bootstrapJson); + var dbgRoot = dbgDoc.RootElement; + var dbg = $"len:{bootstrapJson.Length}"; + if (dbgRoot.TryGetProperty("account", out var dbgAcct) && + dbgAcct.TryGetProperty("memberships", out var dbgMems) && + dbgMems.GetArrayLength() > 0 && + dbgMems[0].TryGetProperty("organization", out var dbgOrg)) + { + var keys = string.Join(",", dbgOrg.EnumerateObject().Select(p => p.Name)); + dbg += $"|org_keys:{keys}"; + if (dbgOrg.TryGetProperty("capabilities", out var dbgCaps)) + dbg += $"|caps:{dbgCaps.GetRawText()}"; + else + dbg += "|caps:MISSING"; + } + else + { + dbg += "|no_memberships"; + } + AppSettings.Default.DebugInfo = dbg; + AppSettings.Default.Save(); + } + catch { /* debug only — never block refresh */ } var (email, orgId, planLabel) = ParseBootstrap(bootstrapJson); if (string.IsNullOrEmpty(orgId))