SvgImageSource diagnostics for Windows Companion nav-icon blank-out repro#576
SvgImageSource diagnostics for Windows Companion nav-icon blank-out repro#576RBrid wants to merge 1 commit into
Conversation
Adds passive, logging-only diagnostics to investigate Scott's report of WinUI 3 NavigationView SVG icons going blank after long uptime while FontIcons continue to render. No behavior change. Strategy (event-driven, no false-positive heuristics): - Subscribe to SvgImageSource.Opened/OpenFailed on all 20 sidebar icon resources at HubWindow construction; track which keys have ever opened. - Sanity-check on NavView.Loaded, XamlRoot.Changed, ActualThemeChanged, and a 60s repeating DispatcherQueue timer; warn when a NavigationView ImageIcon still references a tracked SvgImageSource that never saw Opened. - Capture correlation signals via Windows.System.MemoryManager (AppMemoryUsageIncreased / AppMemoryUsageLimitChanging) and snapshot uptime/handles/working-set/memory level on each warning. - Cap warnings at 50/session; defensive global-miss guard logs once if zero of N tracked sources ever opened (suggests handler attach raced decode) instead of burning the cap with per-icon noise. - Skip entirely when high-contrast fallback swaps SVGs for FontIcons. - TeardownSvgDiagnostics() in Closed handler stops the timer and unhooks static MemoryManager events to avoid window leaks across the App.xaml.cs open/close cycle. Reviewed via three rounds of dual-model adversarial review (Claude Opus 4.6 + GPT-5.2-Codex): - r1: replaced incorrect RasterizePixelWidth/Height heuristic (input property, not decode output) with event-driven Opened tracking; added TeardownSvgDiagnostics() to plug static MemoryManager leak; try/catch hardened OnAppMemoryUsageLimitChanging. - r2: disposed Process.GetCurrentProcess handle; added defensive guard for hypothetical Opened-before-attach race. - r3: clean. Validation: ./build.ps1, Shared 2023/29 skipped, Tray 862/0. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
|
Codex review: needs real behavior proof before merge. Reviewed June 4, 2026, 7:32 PM ET / 23:32 UTC. Summary Reproducibility: no. The underlying blank-icon condition is a long-uptime Windows UI failure, and the available evidence is the original occurrence screenshot plus source inspection, not a repeatable current-main reproduction or after-change runtime log. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Proof guidance:
Mantis proof suggestion Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Land only a rollback-safe, passive diagnostics patch with redacted real-run evidence from Windows Companion showing initialization and either useful warning output or clean teardown behavior. Do we have a high-confidence way to reproduce the issue? No. The underlying blank-icon condition is a long-uptime Windows UI failure, and the available evidence is the original occurrence screenshot plus source inspection, not a repeatable current-main reproduction or after-change runtime log. Is this the best way to solve the issue? Unclear as submitted. Passive diagnostics are a plausible investigation path, but the static event rollback issue and missing real-run proof need to be resolved before this is the best merge path. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model gpt-5.5, reasoning high; reviewed against 99efc50cbc22. Label changesLabel justifications:
Evidence reviewedWhat I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
Adds passive, logging-only diagnostics to investigate report of WinUI 3 NavigationView SVG icons going blank after long uptime while FontIcons continue to render. No behavior change.
Bug occurrence screenshot:

Strategy (event-driven, no false-positive heuristics):
Reviewed via three rounds of dual-model adversarial review (Claude Opus 4.6 + GPT-5.2-Codex):
Validation: ./build.ps1, Shared 2023/29 skipped, Tray 862/0.