fix: include recipients in artifact deployment and load shared scripts on startup

NotificationRepository.GetAllNotificationListsAsync() was missing
.Include(Recipients), causing artifact deployments to push empty recipient
lists to sites. Also load shared scripts from SQLite on DeploymentManager
startup so they're available before Instance Actors compile their scripts.
This commit is contained in:
Joseph Doherty
2026-03-18 09:13:10 -04:00
parent 78fbb13df7
commit db387c6613
2 changed files with 27 additions and 1 deletions

View File

@@ -147,6 +147,9 @@ public class DeploymentManagerActor : ReceiveActor, IWithTimers
return;
}
// Load and compile shared scripts from SQLite before creating Instance Actors
LoadSharedScriptsFromStorage();
var enabledConfigs = msg.Configs.Where(c => c.IsEnabled).ToList();
_totalDeployedCount = msg.Configs.Count;
_logger.LogInformation(
@@ -449,6 +452,29 @@ public class DeploymentManagerActor : ReceiveActor, IWithTimers
}
}
// ── Shared Script Loading ──
private void LoadSharedScriptsFromStorage()
{
try
{
var scripts = _storage.GetAllSharedScriptsAsync().GetAwaiter().GetResult();
var compiled = 0;
foreach (var script in scripts)
{
if (_sharedScriptLibrary.CompileAndRegister(script.Name, script.Code))
compiled++;
}
_logger.LogInformation(
"Loaded {Compiled}/{Total} shared scripts from SQLite",
compiled, scripts.Count);
}
catch (Exception ex)
{
_logger.LogError(ex, "Failed to load shared scripts from SQLite");
}
}
// ── Debug View routing ──
private void RouteDebugViewSubscribe(SubscribeDebugViewRequest request)