-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Description
Description
Adding a Shadow style class to a Border control via C# Hot Reload succeeds at the ENC level (delta applied, MetadataUpdateHandler fires) but the shadow does not render visually. Other property changes to the same Border (e.g., .Background(Colors.Red)) applied via Hot Reload in the same session render correctly.
Steps to Reproduce
- Create a .NET MAUI app using MauiReactor targeting
net10.0-maccatalyst - Add a
Bordercontrol wrapping some content - Start debugging (F5, Debug config)
- Edit the source to add
.Class(Bs.Shadow)to the Border (whereBs.Shadowapplies aShadowvia StyleClass) - Trigger Hot Reload (save file)
Before:
).Class(Bs.Card),After:
).Class(Bs.Card).Class(Bs.Shadow),Expected Behavior
The Border should render with a shadow after Hot Reload applies the change.
Actual Behavior
No shadow appears. The ENC engine reports success, the app-side MetadataUpdateHandler fires (confirmed via heartbeat endpoint with update counter advancing), but the shadow is not rendered.
In the same session, changing .Background(Colors.Red) on the same Border did render correctly via Hot Reload, confirming the reload pipeline is functional.
Hot Reload Evidence
- Session.log:
Module update: capabilities=[Baseline]— delta applied successfully - Heartbeat: Update counter advanced from 1 to 2 — app received the delta
- MetadataUpdateHandler: Fired (confirmed via HotReloadSentinel diagnostics)
- Artifact diff:
ThemesPage.2.2.old.cs/ThemesPage.2.2.new.cs— single line change adding.Class(Bs.Shadow)
Version Info
- .NET SDK: 10.0.100-preview.3
- MAUI: 10.0.31
- MauiReactor: 4.x
- Platform: Mac Catalyst (
net10.0-maccatalyst) - IDE: VS Code Insiders with C# Dev Kit
- Diagnostics: HotReloadSentinel 0.1.0
Additional Context
This was captured using HotReloadSentinel, which monitors Session.log, polls an app-side heartbeat endpoint, and records per-change developer confirmations. The three-layer diagnostic confirms:
| Layer | Status |
|---|---|
| IDE (Session.log) | Delta emitted successfully |
| App (heartbeat) | Update counter advanced, handler fired |
| Developer (visual) | Shadow did NOT render |
This suggests the issue is in how Shadow/StyleClass changes are applied to Border's native handler during a hot reload update, not in the hot reload transport itself.