fix: first native launch since refactor crashed — 3 stacked faults, all closed; RoundClip 'known failure' root-caused and green
User launch (2026-09-01 19:07) NRE'd in MainViewModel ctor:
1. SceneGraph (TASK 31) was 'null!'-declared, assigned mid-ctor, but Scenes is touched
~120 lines earlier — field-initialized now.
2. LeftPanel extraction (c9fd1bd) moved StaticResource users (EyeButton/EyeIconStyle)
into a UserControl while the styles stayed window-scope — invisible at parse time;
moved to Themes/Controls.xaml (app scope, the existing rule). Full audit: these were
the only two offenders (grep of Controls/*.xaml StaticResource keys vs app dictionary).
3. RoundClipInteractionTests — the second 'known failure' the map never explained: it
was two stale-test layers (window.FindName across the new UserControl namescope +
VisualTreeHelper.HitTest, which returned the IsHitTestVisible=False WebViewHostPanel
overlay for EVERY point; UIElement.InputHitTest — the real input pipeline — shows the
corner IS grabbable in both Traditional and Round). Test fixed, no product bug.
Verified: clean rebuild 0 warnings; app boots (log shows full MainWindow loaded; user
clicked + closed, zero new exceptions; real DB Webcam row = the genuine C920, untouched);
RoundClip + 6 RealApp classes pass natively per-class.
Docs: ai.md known-failure note → 246/247 (audio only); TASK 31 verification paragraph
corrected ('cannot run headless' overstated — per-class Windows-host vstest runs them);
MyMistakes: InputHitTest-vs-VTH recipe + namescope/app-style + shared-log facts.
Spin-guard citations: WPF Visual Tree Overview (InputHitTest vs VisualTreeHelper hit
semantics) + XAML namescope docs, learn.microsoft.com.
This commit is contained in:
@@ -1311,8 +1311,16 @@ What landed — core optimization + SceneGraph component, all in one commit:
|
||||
|
||||
**Verification:** SceneCompositorTests 4, StretchMathTests 4, BackgroundTests 16, SceneCatalogTests 18,
|
||||
LayoutStorePersistenceTests 12, FramePumpTests 9, SceneGraphTests 1 all green. RealAppHost GUI/collection
|
||||
tests (SourceNaming, RoundClip, BackgroundHeal, ...) construct a real `MainWindow` and cannot run in a
|
||||
headless WSL session (pre-existing limitation, not caused by this change).
|
||||
tests (SourceNaming, RoundClip, BackgroundHeal, ...) construct a real `MainWindow` — **CORRECTED
|
||||
2026-09-01:** they DO run from WSL when invoked per-class through the Windows `dotnet.exe` vstest host
|
||||
(the old "cannot run headless" claim conflated them with the full-suite WASAPI hang). Two first-launch
|
||||
crashes this refactor shipped with were caught on the first real native launch and fixed same day:
|
||||
ctor-order `SceneGraph` NRE (`null!` field assigned after first ctor use — now field-initialized) and
|
||||
window-scope `EyeButton`/`EyeIconStyle` consumed via `StaticResource` from the extracted `LeftPanel`
|
||||
(UserControl namescopes can't see window resources — styles moved to `Themes/Controls.xaml`, the
|
||||
app-scope rule honored). The RoundClip "known failure" was then root-caused to stale test code
|
||||
(`window.FindName` across namescopes + `VisualTreeHelper.HitTest` where `UIElement.InputHitTest`
|
||||
models input) — test green 2026-09-01, the sole remaining known failure is the audio one.
|
||||
|
||||
### Design
|
||||
|
||||
|
||||
Reference in New Issue
Block a user