Files
integration/Plugins/UEWingman/Source/UEWingman/Private/WingNotifier.md
2026-04-08 19:39:39 -04:00

1.5 KiB

WingNotifier

1. SendNotifications() crashes in commandlet/headless mode

SendNotifications() dereferences GEditor unconditionally when it fetches the UAssetEditorSubsystem (WingNotifier.cpp). That is unsafe in the commandlet path, because WingCommandlet::Main() explicitly ticks the wing server in commandlet mode (WingCommandlet.cpp), and the notifier is always flushed at the end of each request (WingServer.cpp). Any mutating request in a headless run can therefore null-deref before the later if (GEditor) viewport guard is reached.

2. Graph edits are not fully propagated because node reconstruction is skipped

The notifier comments out the node-level reconstruction pass and only calls NotifyGraphChanged() on touched graphs (WingNotifier.cpp). That is not enough for edits that change pin layout or node internals: the project already uses ReconstructNode() directly in WingVariables.cpp after variable changes (WingVariables.cpp), which shows that graph-shape updates need more than a graph-wide change broadcast. As written, node edits can leave the open editor showing stale pins or other cached node state until a heavier manual refresh happens.