Skip to content

Lite's card and the web dashboard have the two Overview defects #2429 just fixed in the Viewer #2437

Description

@erikdarlingdata

#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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions