From 33aae625b2bc6d6d3f2dda275f56b82ba7ee6420 Mon Sep 17 00:00:00 2001 From: Erik Darling <2136037+erikdarlingdata@users.noreply.github.com> Date: Tue, 17 Mar 2026 20:46:01 -0400 Subject: [PATCH] Fix Dashboard drill-down: Unicode arrow in story path split MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SqlServerDrillDownCollector was splitting on ASCII ' -> ' but story paths use Unicode ' → '. The split produced the entire path as one key, so pathKeys.Contains("DEADLOCKS") always returned false. Single character fix: ' -> ' → ' → '. All 8 applicable findings now have populated drill-down data. Co-Authored-By: Claude Opus 4.6 (1M context) --- Dashboard/Analysis/SqlServerDrillDownCollector.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Dashboard/Analysis/SqlServerDrillDownCollector.cs b/Dashboard/Analysis/SqlServerDrillDownCollector.cs index 4010269..050ffe3 100644 --- a/Dashboard/Analysis/SqlServerDrillDownCollector.cs +++ b/Dashboard/Analysis/SqlServerDrillDownCollector.cs @@ -45,7 +45,7 @@ public async Task EnrichFindingsAsync(List findings, AnalysisCo try { finding.DrillDown = new Dictionary(); - var pathKeys = finding.StoryPath.Split(" -> ", StringSplitOptions.RemoveEmptyEntries).ToHashSet(); + var pathKeys = finding.StoryPath.Split(" → ", StringSplitOptions.RemoveEmptyEntries).ToHashSet(); if (pathKeys.Contains("DEADLOCKS")) await CollectTopDeadlocks(finding, context); @@ -90,7 +90,7 @@ public async Task EnrichFindingsAsync(List findings, AnalysisCo catch (Exception ex) { Logger.Error( - $"[SqlServerDrillDownCollector] Drill-down failed for {finding.StoryPath}: {ex.GetType().Name}: {ex.Message}"); + $"[SqlServerDrillDownCollector] Drill-down failed for {finding.StoryPath}: {ex.GetType().Name}: {ex.Message}\n{ex.StackTrace}"); // Don't null out -- keep whatever was collected before the error } }