#2429 fixed both Overview defects in the Darling Viewer. Two other surfaces have the same ones, verified in source.
Lite's card has the identical unexplained status
Lite/MainWindow.xaml:442:
<TextBlock Text="{Binding StatusDisplay}" Foreground="{Binding StatusBrush}"
FontSize="11" Margin="0,0,0,10"/>
Same bare binding, same absent ToolTip. A Lite user reads "Warning" and scans the metric rows for the yellow one, exactly as @ehaar had to on the Viewer in #2422.
This is a port rather than a wiring change, which is the whole difficulty: Lite has no FleetRollup and no BuildReason, so the reason has to be built rather than bound. The Viewer's version is worth copying carefully — BuildReason is deliberately assembled from the card's OWN metric displays so it can never drift from the six rows underneath, and a Lite implementation that recomputed severity independently would lose that property and be worse than no tooltip.
One difference in Lite's favour: it has no AwaitingFirstCollection flag, so the status/tooltip desync family that #2429 spent four review rounds on cannot occur there. Only the unexplained-word half applies.
The web dashboard's "+N more" is the same dead end
Darling/PerformanceMonitor.Darling.Service/wwwroot/js/pages/fleet.js:168:
nodes.push(el("div", { class: "muted", style: "margin:0.4rem 0 0.2rem",
text: "+ " + d.additional_problem_count + " more need attention" }));
A plain muted div, no handler, no navigation — the same "here is a number you cannot act on" the Viewer had.
This one should be easier than the WPF version was, because the seam already exists: fleetFilter is a module-level variable at line 33, redrawCards() at 183 already filters lastCards through cardMatches(c, fleetFilter) before sorting, and the count itself arrives on the payload as additional_problem_count. So option (a) from #2424 — make it a link that filters the grid to the servers behind the number — ports nearly as-is.
Keep the two properties #2429 settled on, since they are what make the filter safe rather than confusing: filter on the same predicate the count is computed from, so the destination cannot disagree with the label; and make the active state visible (showing 12 of 57) so a filtered grid can never be mistaken for an unfiltered one.
Worth doing together
They are the same two defects and the Viewer's answers are already reviewed, argued and merged. Doing them in one pass keeps the three surfaces saying the same thing — which is the actual goal, since a user moving between Lite, the Viewer and the dashboard should not have to learn three different levels of helpfulness.
#2429 fixed both Overview defects in the Darling Viewer. Two other surfaces have the same ones, verified in source.
Lite's card has the identical unexplained status
Lite/MainWindow.xaml:442:Same bare binding, same absent
ToolTip. A Lite user reads "Warning" and scans the metric rows for the yellow one, exactly as @ehaar had to on the Viewer in #2422.This is a port rather than a wiring change, which is the whole difficulty: Lite has no
FleetRollupand noBuildReason, so the reason has to be built rather than bound. The Viewer's version is worth copying carefully —BuildReasonis deliberately assembled from the card's OWN metric displays so it can never drift from the six rows underneath, and a Lite implementation that recomputed severity independently would lose that property and be worse than no tooltip.One difference in Lite's favour: it has no
AwaitingFirstCollectionflag, so the status/tooltip desync family that #2429 spent four review rounds on cannot occur there. Only the unexplained-word half applies.The web dashboard's "+N more" is the same dead end
Darling/PerformanceMonitor.Darling.Service/wwwroot/js/pages/fleet.js:168:A plain muted
div, no handler, no navigation — the same "here is a number you cannot act on" the Viewer had.This one should be easier than the WPF version was, because the seam already exists:
fleetFilteris a module-level variable at line 33,redrawCards()at 183 already filterslastCardsthroughcardMatches(c, fleetFilter)before sorting, and the count itself arrives on the payload asadditional_problem_count. So option (a) from #2424 — make it a link that filters the grid to the servers behind the number — ports nearly as-is.Keep the two properties #2429 settled on, since they are what make the filter safe rather than confusing: filter on the same predicate the count is computed from, so the destination cannot disagree with the label; and make the active state visible (
showing 12 of 57) so a filtered grid can never be mistaken for an unfiltered one.Worth doing together
They are the same two defects and the Viewer's answers are already reviewed, argued and merged. Doing them in one pass keeps the three surfaces saying the same thing — which is the actual goal, since a user moving between Lite, the Viewer and the dashboard should not have to learn three different levels of helpfulness.